Bug 76224 - gcc fails to invoke ld properly, ld fails to examine ldconfig -32's libraries
Summary: gcc fails to invoke ld properly, ld fails to examine ldconfig -32's libraries
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: amd64 (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-amd64 (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-13 22:30 UTC by Jonathan Dama
Modified: 2005-01-14 00:20 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jonathan Dama 2005-01-13 22:30:35 UTC
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
Comment 1 David E. O'Brien freebsd_committer freebsd_triage 2005-01-14 00:19:46 UTC
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.