bug/0042755007460400013440000000000007332046135012124 5ustar irrercsestudentsbug/prog.c0100644007460400013440000000037107331534427013240 0ustar irrercsestudents extern int multiply (int a, int b); main () { printf ("Starting.\n"); #if 1 printf ("The first answer is: %d\n", multiply (3, 7)); printf ("The second answer is: %d\n", multiply (4, 9)); #endif printf ("Done.\n"); exit (0); } bug/doit0100755007460400013440000000025007332046075013004 0ustar irrercsestudents for c in prog multiply ; do cc -g -c -o ${c}.o ${c}.c done cc -g prog.o multiply.o -o prog libc=/usr/lib/libc.a ld prog -o aprog /usr/lib/libc.a -T ./prog.lnk bug/prog.lnk0100644007460400013440000000036707332045734013606 0ustar irrercsestudents SECTIONS { /* . = 0x10000; */ . = main + 0x4000; .text : { ?multiply(.text) } /* . = 0x8000000; */ .data : { ?multiply(.data) } .bss : { ?multiply(.bss) } /* xmultiply = multiply; */ /* multiply = amultiply; */ } bug/multiply.c0100644007460400013440000000013207331534431014136 0ustar irrercsestudents int multiply (int x, int y) { printf ("In regular multiply.\n"); return x * y; }