------- Comment #4 from dave at hiauly1 dot hia dot nrc dot ca  2006-03-26 
21:28 -------
Subject: Re:   New: Incorrect handling of -B by gfortran driver

> Executing on host: /test/gnu/gcc-4.1/objdir/gcc/testsuite/../gfortran
> -B/test/gn
> u/gcc-4.1/objdir/gcc/testsuite/../
> /test/gnu/gcc-4.1/gcc/gcc/testsuite/gfortran.
> dg/PR19754_2.f90   -O0   -pedantic-errors 
> -L/test/gnu/gcc-4.1/objdir/hppa64-hp-
> hpux11.11/./libgfortran/.libs
> -L/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./l
> ibgfortran/.libs -L/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libiberty 
> -lm
>    -o ./PR19754_2.exe    (timeout = 300)
> PASS: gfortran.dg/PR19754_2.f90  -O0  (test for excess errors)
> Setting LD_LIBRARY_PATH to
> .:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libg
> fortran/.libs:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libgfortran/.libs:/
> test/gnu/gcc-4.1/objdir/gcc:.:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./lib
> gfortran/.libs:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libgfortran/.libs:
> /test/gnu/gcc-4.1/objdir/gcc
> /usr/lib/pa20_64/dld.sl: Unsatisfied code symbol '_Jv_RegisterClasses' in load
> m
> odule './PR19754_2.exe'.

Sorry, the subject of this PR is wrong.  I thought that the driver
was not generating the -L option for the build directory with libgcc_s.sl.
However, it's there.

I now think the problem is the link command for libgfortran:

/bin/sh ./libtool --mode=link /test/gnu/gcc-4.1/objdir/./gcc/gfortran -B/test/g
nu/gcc-4.1/objdir/./gcc/ -B/opt/gnu64/gcc/gcc-4.1.0/hppa64-hp-hpux11.11/bin/ -B
/opt/gnu64/gcc/gcc-4.1.0/hppa64-hp-hpux11.11/lib/ -isystem /opt/gnu64/gcc/gcc-4
.1.0/hppa64-hp-hpux11.11/include -isystem /opt/gnu64/gcc/gcc-4.1.0/hppa64-hp-hp
ux11.11/sys-include -I . -Wall -fno-repack-arrays -fno-underscoring -g -O2   -o
 libgfortran.la -rpath /opt/gnu64/gcc/gcc-4.1.0/lib -version-info `grep -v '^#'
  ../../../gcc/libgfortran/libtool-version` -lm  compile_options.lo environ.lo
  error.lo fpu.lo main.lo memory.lo pause.lo stop.lo string.lo select.lo
  all_l4.lo ...

# chatr libgfortran.sl
libgfortran.sl:
         64-bit ELF shared library
         shared library dynamic path search:
             LD_LIBRARY_PATH    enabled  first
             SHLIB_PATH         enabled  second
             embedded path      enabled  third  /opt/gnu64/gcc/gcc-4.1.0/lib
         internal name:
             libgfortran.sl.1
         shared library list:
             libm.2
             libc.2
             libgcc_s.sl

It appears the presence of the embedded path causes the linker to use
the installed version of libgcc_s.sl for the link rather than the new
version.  Then, the definition of LD_LIBRARY_PATH causes the new
version of libgcc_s.sl to be used when the test is executed.

The -rpath option seems to be the problem.

Dave


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26876

Reply via email to