Though /usr/bin/ld reports that it can make elf_i386_fbsd, cc -m32 simple-c-file.c does not properly build gcc does not translate -m32 to mean that ld must be envoked with /usr/lib32 bits instead of /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o also mistakenly gives: -dynamic-linker /libexec/ld-elf.so.1 and -L/usr/lib instead of -dynamic-linker /libexec/ld-elf32.so.1 and -L/usr/lib32 How-To-Repeat: Following simple test program (main.c): #include <stdio.h> int main() { printf("Hello world\n"); return 0; } Run: jd@carbon:~/tmp/cdemo>cc -m32 -v -o test main.c Result: Using built-in specs. Configured with: FreeBSD/amd64 system compiler Thread model: posix gcc version 3.4.2 [FreeBSD] 20040728 /usr/libexec/cc1 -quiet -v -D_LONGLONG main.c -quiet -dumpbase main.c -m32 -aux base main -version -o /var/tmp//ccGKzqtl.s ignoring duplicate directory "/usr/include" #include "..." search starts here: #include <...> search starts here: /usr/include End of search list. GNU C version 3.4.2 [FreeBSD] 20040728 (amd64-fbsdproj-freebsd) compiled by GNU C version 3.4.2 [FreeBSD] 20040728. GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 /usr/bin/as -V -Qy --32 -o /var/tmp//ccdmrhyt.o /var/tmp//ccGKzqtl.s GNU assembler version 2.15 [FreeBSD] 2004-05-23 (x86_64-obrien-freebsd) using BF D version 2.15 [FreeBSD] 2004-05-23 /usr/bin/ld -m elf_i386_fbsd -V -dynamic-linker /libexec/ld-elf.so.1 -o test /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib -melf_i386_fbsd /var/tmp//ccdmrhyt.o -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o GNU ld version 2.15 [FreeBSD] 2004-05-23 Supported emulations: elf_i386_fbsd elf_x86_64_fbsd /usr/bin/ld: skipping incompatible /usr/lib/libgcc.a when searching for -lgcc /usr/bin/ld: cannot find -lgcc
State Changed From-To: open->closed Know issue. We don't yet support building 32-bit apps on a a 64-bit system. We only barely support *running* them at this point.