This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/32462] [4.3 regression] Linking libgcj.so fails on Solaris 10/x86
- From: "ro at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Jul 2007 10:18:06 -0000
- Subject: [Bug target/32462] [4.3 regression] Linking libgcj.so fails on Solaris 10/x86
- References: <bug-32462-81@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from ro at gcc dot gnu dot org 2007-07-12 10:18 -------
I've now identified the patch that caused this regression:
2007-04-03 Andrew Haley <aph@redhat.com>
* jvgenmain.c (main): Change main to use class$, not class$$.
(do_mangle_classname): Likewise.
* class.c (hide): New function.
(add_field): Hide everything that shouldn't be visible outside a
DSO.
(build_static_class_ref): Likewise.
(build_classdollar_field): Likewise.
(make_class_data): Likewise.
(layout_class_method): Likewise.
* expr.c (special_method_p): New function.
* class.c (push_class): Don't bogusly guess the source filename.
* jcf-parse.c (give_name_to_class): Don't set input_location from
DECL_ARTIFICIAL decls.
The problem is that it assumes that the platform has support for the visibility
attribute, which is not true if using /usr/sfw/bin/gas (2.15) with Sun ld.
While it would work on Solaris 10, it might require linker patches on older
releases and is probably hard to detect via autoconf.
During the build, there are many warnings
/mnt/gcc-reghunt/libjava/java/lang/Class.java:1379: warning: visibility
attribute not supported in this configuration; ignored
but I hadn't seen the connection before.
Rainer
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32462