[Bug java/38298] New: libjava link failures.

View: New views
12 Messages — Rating Filter:   Alert me  

[Bug java/38298] New: libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

during building latest 4.4 snapshot i've got a linker error:

(...)
/bin/sh ./libtool --tag=GCJ --mode=link
/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/gcc/gcj
-B/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/x86_64-pld-linux/libjava/
-B/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/gcc/
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/x86_64-pld-linux/libjava
-fomit-frame-pointer -O2 -march=x86-64  -Wl,--as-needed -Wl,-z,relro
-Wl,-z,combreloc  -o grmic --main=gnu.classpath.tools.rmic.Main -rpath
/usr/lib64/../lib64 -shared-libgcc  
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/x86_64-pld-linux/libjava/.libs
libgcj-tools.la
libtool: link: /home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/gcc/gcj
-B/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/x86_64-pld-linux/libjava/
-B/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/gcc/
-fomit-frame-pointer -O2 -march=x86-64 -Wl,--as-needed -Wl,-z -Wl,relro -Wl,-z
-Wl,combreloc -o .libs/grmic --main=gnu.classpath.tools.rmic.Main
-shared-libgcc
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/x86_64-pld-linux/libjava/.libs
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081121/builddir/x86_64-pld-linux/libjava
./.libs/libgcj-tools.so -Wl,-rpath -Wl,/usr/lib64/../lib64
./.libs/libgcj-tools.so: undefined reference to `fmod'
collect2: ld returned 1 exit status
make[3]: *** [grmic] Error 1


--
           Summary: libjava link failures.
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pluto at agmk dot net
GCC target triplet: x86_64-gnu-linux


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #1 from pinskia at gcc dot gnu dot org  2008-12-24 01:37 -------
fmod should be in libm, do you know if -lm is being included on the link line
or are we linking with gcj?


--

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
          Component|java                        |libgcj


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #2 from pinskia at gcc dot gnu dot org  2008-12-24 01:38 -------
Also this works for me and many other folks, can you try making sure that you
run gcc_update --touch before building the snapshot, it could be that configure
is being marked as older than configure.ac and breaking the build.


--


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #3 from pluto at agmk dot net  2008-12-24 12:57 -------
passing -Wl,--as-needed to LDFLAGS_FOR_TARGET causing this failure.
4.3 works fine with --as-needed.


--

pluto at agmk dot net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |4.4.0
      Known to work|                            |4.3.2


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #4 from pinskia at gcc dot gnu dot org  2008-12-24 13:49 -------
Not a GCC bug, please report this to the binutils project which controls ld.


--

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |INVALID


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #5 from pluto at agmk dot net  2008-12-24 17:02 -------
(In reply to comment #4)
> Not a GCC bug, please report this to the binutils project which controls ld.
>

link failure with --as-needed is not a linker bug.
it's strictly related to bugs in makefiles.
i'll analyze gcc build logs and post conclusions...


--


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #6 from pluto at agmk dot net  2008-12-29 09:59 -------
during standard build (w/o --as-needed) the libgcj-tools.so is linked
in the following way:

(...)
libtool: link:
/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/./gcc/xgcc -shared-libgcc
-B/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/./gcc -nostdinc++
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/x86_64-pld-linux/libstdc++-v3/src
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/x86_64-pld-linux/libstdc++-v3/src/.libs
-B/usr/x86_64-pld-linux/bin/ -B/usr/x86_64-pld-linux/lib/ -isystem
/usr/x86_64-pld-linux/include
-isystem /usr/x86_64-pld-linux/sys-include -shared -nostdlib
/usr/lib/../lib64/crti.o
/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/./gcc/crtbeginS.o
classpath/tools/.libs/libgcj_tools_la-tools.o
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/x86_64-pld-linux/libstdc++-v3/src
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/x86_64-pld-linux/libstdc++-v3/src/.libs
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/x86_64-pld-linux/libjava
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/./gcc -L/lib/../lib64
-L/usr/lib/../lib64 -lc -lgcc_s
/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/./gcc/crtendS.o
/usr/lib/../lib64/crtn.o  -march=x86-64 -Wl,-z -Wl,relro -Wl,-z -Wl,combreloc
-Wl,--version-script=../../../libjava/libgcj.ver -Wl,-Bsymbolic-functions
-Wl,-soname -Wl,libgcj-tools.so.10 -o .libs/libgcj-tools.so.10.0.0


$ ldd -r x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0
        linux-vdso.so.1 =>  (0x00007fffa2fff000)
        libc.so.6 => /lib64/libc.so.6 (0x00002abf084bc000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002abf08813000)
        /lib64/ld-linux-x86-64.so.2 (0x00002abf07b02000)

undefined symbol: _Jv_charClass
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_floatClass      
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_shortClass      
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_byteClass
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_booleanClass    
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_doubleClass      
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_longClass
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_intClass
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _ZTVN4java4lang5ClassE      
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_ThrowAbstractMethodError
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: __gcj_personality_v0
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_IsInstanceOf    
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_NewPrimArray    
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_Throw    
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_CheckArrayStore  
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_CheckCast
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_LookupInterfaceMethodIdx
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_RegisterResource
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_NewMultiArray    
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_ResolvePoolEntry
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_AllocObjectNoFinalizer  
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_ThrowNoSuchFieldError    
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_ThrowBadArrayIndex      
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_ThrowNullPointerException
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: fmod  (x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_InitClass
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_MonitorExit      
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_NewObjectArray  
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_MonitorEnter    
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)
undefined symbol: _Jv_AllocObject      
(x86_64-pld-linux/libjava/.libs/libgcj-tools.so.10.0.0)

$ cat x86_64-pld-linux/libjava/.libs/libgcj-tools.la
# libgcj-tools.la - a libtool library file
# Generated by ltmain.sh (GNU libtool) 2.2.6
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

# The name that we can dlopen(3).
dlname='libgcj-tools.so.10'

# Names of this library.
library_names='libgcj-tools.so.10.0.0 libgcj-tools.so.10 libgcj-tools.so'

# The name of the static archive.
old_library='libgcj-tools.a'

# Linker flags that can not go in dependency_libs.
inherited_linker_flags=''

# Libraries that this one depends upon.
dependency_libs='
-L/home/users/pluto/rpm/BUILD/gcc-4.4-20081219/builddir/x86_64-pld-linux/libjava'

# Names of additional weak libraries provided by this library
weak_library_names=''

# Version information for libgcj-tools.
current=10
age=0
revision=0

# Is this an already installed library?
installed=no

# Should we warn about portability when linking against -modules?
shouldnotlink=no

# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''

# Directory that this library needs to be installed in:
libdir='/usr/lib64/../lib64'


as you can see, there's undefined fmod symbol and related .la doesn't
contain required -lm. the --as-needed feature only exposes this bug.


--

pluto at agmk dot net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #7 from pinskia at gcc dot gnu dot org  2008-12-29 14:19 -------
How did you configure GCC?  How did you invoke make?  What environment
variables are set?

I know building libgcj on x86_64-linux-gnu works so it has something to do with
your environment.


--


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #8 from pluto at agmk dot net  2008-12-29 14:28 -------
Created an attachment (id=17000)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17000&action=view)
full log (configure & build without --as-needed flag).


--


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #9 from rwild at gcc dot gnu dot org  2009-09-26 09:03 -------
proposed patch at <http://gcc.gnu.org/ml/gcc-patches/2009-09/msg01850.html>.


--

rwild at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-09-26 09:03:36
               date|                            |


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #10 from rwild at gcc dot gnu dot org  2009-09-27 06:49 -------
Subject: Bug 38298

Author: rwild
Date: Sun Sep 27 06:49:33 2009
New Revision: 152215

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152215
Log:
Fix library dependencies for -Wl,--as-needed.

gcc/:
        PR bootstrap/40928
        * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS.
        * configure: Regenerate.

libjava/:
        PR libgcj/38298
        * Makefile.am (libgcj_tools_la_LIBADD): Add '-lm'.
        * Makefile.in: Regenerate.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/configure
    trunk/gcc/configure.ac
    trunk/libjava/ChangeLog
    trunk/libjava/Makefile.am
    trunk/libjava/Makefile.in


--


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


[Bug libgcj/38298] libjava link failures.

by Bugzilla from gcc-bugzilla@gcc.gnu.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



------- Comment #11 from rwild at gcc dot gnu dot org  2009-09-27 06:56 -------
Fixed in trunk.


--

rwild at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|4.3.2                       |4.3.2 4.5.0


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