I'm a little confused by the current usage of getsectdatafromheader_64 in unwind-dw2-fde-darwin.c on Darwin PPC. I see a build warning of...
/sw/src/fink.build/gcc4-4.1.9999-20060928/darwin_objdir/./gcc/xgcc -B/sw/src/fink.build/gcc4-4.1.9999-20060928/darwin_objdir/./gcc/ -B/sw/lib/gcc4/powerpc-apple- darwin8/bin/ -B/sw/lib/gcc4/powerpc-apple-darwin8/lib/ -isystem /sw/lib/gcc4/powerpc-apple-darwin8/include -isystem /sw/lib/gcc4/powerpc-apple-darwin8/sys-includ e -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -Wa,-force_cpusubtyp e_ALL -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc-4.2-20060928/gcc -I../../gcc-4.2-20060928/gcc/. -I../../gcc-4.2-200 60928/gcc/../include -I./../intl -I../../gcc-4.2-20060928/gcc/../libcpp/include -I/sw/include -I../../gcc-4.2-20060928/gcc/../libdecnumber -I../libdecnumber -m6 4 -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../gcc-4.2-20060928/gcc/unwind-dw2-fde-darwin.c -o libgcc/ppc64/unwind-dw2-fde-darwin.o ../../gcc-4.2-20060928/gcc/unwind-dw2-fde-darwin.c: In function 'examine_objects': ../../gcc-4.2-20060928/gcc/unwind-dw2-fde-darwin.c:167: warning: passing argument 1 of 'getsectdatafromheader_64' from incompatible pointer type which leads to the code... /* For ppc only check whether or not we have __DATA eh frames. */ #ifdef __ppc__ fde = getsectdatafromheader (image->mh, "__DATA", "__eh_frame", &sz); #endif if (fde == NULL) { #if __LP64__ fde = getsectdatafromheader_64 ((struct mach_header_64 *) image->mh, "__TEXT", "__eh_frame", &sz); #else fde = getsectdatafromheader (image->mh, "__TEXT", "__eh_frame", &sz); #endif My first question is why is the external declaration... extern char *getsectdatafromheader_64 (struct mach_header*, const char* ...rather than... extern char *getsectdatafromheader_64 (struct mach_header_64*, const char* Also, why isn't the first getsectdatafromheader call wrappered with '#if __LP64__' like the second? Jack