This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

target/8250: The "-b MACHINE" flag is passed to the Solaris linker, which doesn't understand it


>Number:         8250
>Category:       target
>Synopsis:       The "-b MACHINE" flag is passed to the Solaris linker, which doesn't understand it
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 17 06:06:04 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     uddeborg@carmen.se
>Release:        3.2
>Organization:
>Environment:
sparc-sun-solaris2.8
sundance> uname -a
SunOS sundance 5.8 Generic_108528-16 sun4u sparc SUNW,Sun-Fire-280R
>Description:
I tried to use the same driver program to compile both on Solaris 2.6 and on Solaris 8.  I separated the drivers and libraries with "--enable-version-specific-runtime-libs", and made a little script selecting the correct -b option.  I configured to use the native linker rather than the GNU one.

This fails.  Apparently the "-b MACHINE" flag is passed to the linker from "collect2".  That would make sense if I had the GNU linker installed, but not with the native linker.  (It does accept the -b flag, but it means something completely different and doesn't take any argument.)
>How-To-Repeat:
Create a minimal C file containing an empty main function:

  sundance> echo "main(){}" > x.c

Compile that, on a Solaris 8 system, with a Solaris 2.6 driver and the appropriate -b flag:

  sundance> gcc -b sparc-sun-solaris2.8 x.c -o x
  ld: fatal: file sparc-sun-solaris2.8: open failed: No such file or directory
  collect2: ld returned 1 exit status

Here follows the same command with -v flag, and -Wl,-v to see what collect2 does too.

sundance> gcc -b sparc-sun-solaris2.8 -v -Wl,-v x.c -o x
Reading specs from /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/specs
Configured with: ../configure --enable-languages=c,c++,java --enable-version-specific-runtime-libs --prefix=/opt/gnu --disable-multilib --with-system-zlib
Thread model: posix
gcc version 3.2
 /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/cc1 -lang-c -v -iprefix /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/sparc-sun-solaris2.8/3.2/ -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__PRAGMA_REDEFINE_EXTNAME -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__PRAGMA_REDEFINE_EXTNAME -D__sparc -D__sun -D__unix -Asystem=unix -Asystem=svr4 -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__WCHAR_TYPE__=long int -D__WINT_TYPE__=long int -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc x.c -quiet -dumpbase x.c -version -o /var/tmp//ccvU0mbI.s
GNU CPP version 3.2 (cpplib) (sparc ELF)
GNU C version 3.2 (sparc-sun-solaris2.8)
        compiled by GNU C version 3.2.
ignorerar ej existerande katalog "/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/sparc-sun-solaris2.8/3.2/include"
ignorerar ej existerande katalog "/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/sparc-sun-solaris2.8/3.2/../../../../sparc-sun-solaris2.8/include"
ignorerar ej existerande katalog "/opt/gnu/sparc-sun-solaris2.8/include"
#include "..." sökning startar här:
#include <...> sökning startar här:
 /usr/local/include
 /opt/gnu/include
 /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/include
 /usr/include
Slut på söklistan.
 /usr/ccs/bin/as -V -Qy -s -o /var/tmp//ccGVopDl.o /var/tmp//ccvU0mbI.s
/usr/ccs/bin/as: Sun WorkShop 6 99/08/18
 /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/collect2 -V -b sparc-sun-solaris2.8 -Y P,/usr/ccs/lib:/usr/lib -Qy -o x /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crt1.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crti.o /usr/ccs/lib/values-Xa.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crtbegin.o -L/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2 -L/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2 -L/usr/ccs/bin -L/usr/ccs/lib -L/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/../../.. -v /var/tmp//ccGVopDl.o -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crtend.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crtn.o
collect2 version 3.2 (sparc ELF)
/usr/ccs/bin/ld -V -b sparc-sun-solaris2.8 -Y P,/usr/ccs/lib:/usr/lib -Qy -o x /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crt1.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crti.o /usr/ccs/lib/values-Xa.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crtbegin.o -L/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2 -L/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2 -L/usr/ccs/bin -L/usr/ccs/lib -L/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/../../.. -v /var/tmp//ccGVopDl.o -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crtend.o /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.8/3.2/crtn.o
ld: fatal: file sparc-sun-solaris2.8: open failed: No such file or directory
collect2: ld returned 1 exit status
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]