17684 – [3.4/4.0 Regression] /usr/ccs/bin/ld: Can't create libgcc_s.sl (original) (raw)

Description John David Anglin 2004-09-27 00:06:21 UTC

In stage 2:

./xgcc -B./ -B/opt/gnu/gcc/gcc-4.0.0/hppa2.0w-hp-hpux11.11/bin/ -isystem /opt/gn u/gcc/gcc-4.0.0/hppa2.0w-hp-hpux11.11/include -isystem /opt/gnu/gcc/gcc-4.0.0/hp pa2.0w-hp-hpux11.11/sys-include -L/mnt/gnu/gcc-3.3/objdir/gcc/../ld -O2 -DIN_GC C -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-sty le-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D_ _GCC_FLOAT_NOT_NEEDED -shared -nodefaultlibs -o libgcc_s.sl libgcc/./_muldi3 .o libgcc/./_negdi2.o libgcc/./_lshrdi3.o libgcc/./_ashldi3.o libgcc/./_ashrdi3. o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o libgcc/./_floatdidf.o libgcc/./_floatdi sf.o libgcc/./_fixunsdfsi.o libgcc/./_fixunssfsi.o libgcc/./_fixunsdfdi.o libgcc /./_fixdfdi.o libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o lib gcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o libgcc/./_fixtf di.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o libgcc/./_clear_cache.o libgcc /./_enable_execute_stack.o libgcc/./_trampoline.o libgcc/./__main.o libgcc/./_ab svsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o libgcc/./_addvdi3.o libgcc/./_su bvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o libgcc/./_mulvdi3.o libgcc/./_ne gvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o libgcc/./_ffssi2.o libgcc/./_ffsdi 2.o libgcc/./_clz.o libgcc/./_clzsi2.o libgcc/./_clzdi2.o libgcc/./_ctzsi2.o lib gcc/./_ctzdi2.o libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popco untdi2.o libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_divdi3.o libgcc/. /_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o libgcc/./_udiv_w_sdiv.o libgc c/./_udivmoddi4.o libgcc/./lib2funcs.o libgcc/./quadlib.o libgcc/./unwind-dw2.o libgcc/./unwind-dw2-fde.o libgcc/./unwind-sjlj.o libgcc/./gthr-gnat.o libgcc/./ unwind-c.o -lc && rm -f libgcc_s.1 && ln -s libgcc_s.sl libgcc_s.1 /usr/ccs/bin/ld: Can't create libgcc_s.sl /usr/ccs/bin/ld: Text file busy collect2: ld returned 1 exit status make[3]: *** [libgcc_s.sl] Error 1

This is probably caused by this change:

2004-09-23 H.J. Lu <hongjiu.lu@intel.com>

    [PR bootstrap/17369](show%5Fbug.cgi?id=17369 "RESOLVED FIXED - [3.4/4.0 regression] [ia64] Bootstrap failure with binutils-2.15.90.0.1.1")
    * Makefile.in (@set_gcc_lib_path@): Added.

    * configure.ac: Include ../config/gcc-lib-path.m4. Use
    TL_AC_GNU_MAKE_GCC_LIB_PATH.
    * configure: Regenerated.

It's not possible to replace a shared library that's busy on any 32-bit HP-UX port.

Comment 1 Drea Pinski 2004-09-27 00:13:23 UTC

This is also a 3.4 regression also because that patch was applied to the 3.4 branch.

Comment 2 dave 2004-09-27 02:54:09 UTC

Subject: Re: [3.4/4.0 Regression] /usr/ccs/bin/ld: Can't

This is also a 3.4 regression also because that patch was applied to the 3.4 branch.

Confirmed as 3.4 regression as well.

Dave

Comment 3 Drea Pinski 2004-09-27 11:42:57 UTC

Confirmed.

Comment 5 John David Anglin 2004-09-27 20:54:49 UTC

The patch doesn't actually change the file that needs to change, config/pa/t-hpux-shlib. The suggested change shown for the t' files in the patch doesn't work. The rm' fails for the same reason as the link.

I don't know what's actually using the library. However, it's generally possible to rename libraries. I'm trying that approach.

Comment 7 dave 2004-09-27 21:43:34 UTC

Subject: Re: [3.4/4.0 Regression] /usr/ccs/bin/ld: Can't

It is possible that GNU "make" may be linked against -lgcc_s on some platforms.

Actually, it looks like its bash. It is linked against libreadline. For some reason, libreadline has SHLIB_PATH enabled and it has a dependency on libgcc_s.sl.

Dave

Subject: Re: [3.4/4.0 Regression] /usr/ccs/bin/ld: Can't

Oops. Please try this one

http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02821.html

Works.

Suggestions:

  1. Remove `t' from stage suffix.
  2. Use -f' in first mv'.
  3. Make sure that `make clean' removes these files.

In my testing, I found that I didn't need separate files for each stage.

Dave

Subject: Re: [3.4/4.0 Regression] /usr/ccs/bin/ld: Can't

Here is the new one:

http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02881.html

Clean isn't right:

make clean ... rm -f libgcc_s.sl libgcc_s.sl.1 libgcc_s.sl.1.stage? ...

ls -d libgcc*

libgcc_s.1 libgcc_s.sl.stage1 libgcc_s.sl.stage2

Otherwise, the patch works for me.

Dave

Comment 18 Drea Pinski 2004-10-18 17:00:13 UTC

Fixed.