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]

[Bug target/32462] [4.3 regression] Linking libgcj.so fails on Solaris 10/x86



------- 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


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