Question about -fvisibility=hidden
Paul Hohensee
paul.hohensee at oracle.com
Wed Sep 1 16:18:33 PDT 2010
I googled this and found
http://gcc.gnu.org/wiki/Visibility
which has some pretty amazing claims, but I can actually believe them
given the
number of symbols in a typical C++ compiled object file. Coleen
mentioned to
me (she's just down the hall, which isn't typical of those working on
hotspot)
that the only problem she thinks might exist with this is that hs_err
files and core
files won't have the symbols we've come to expect. So that would have to be
investigated. Other than that, this looks like all upside and no downside.
Paul
On 9/1/10 6:54 PM, Coleen Phillimore wrote:
>
> We have a bug that claims on linux we can get a big performance
> improvement with this flag. Is anyone in the openjdk community able
> to try this out and/or verify this claim?
>
> Thanks,
> Coleen
>
> http://bugs.sun.com/view_bug.do?bug_id=6588413
>
> "On compiling the JDK [JVM actually] code with the new gcc compiler
> option "-fvisibility=hidden"quite some speed improvements on all
> platforms are observed, but for it to work, SAP code which is marked
> with "JNI_EXPORT" needs to be exported correctly by the compiler. The
> attached patch fixes this.
>
> The attached "jni_md.h.new" file is a version of the file, how it
> could look like.
> % more jni_md.h.diff
> --- jni_md.h 2007-07-19 15:13:07.661299000 +0200
> +++ jni_md.h.new 2007-07-19 15:12:02.826109000 +0200
> @@ -8,9 +8,16 @@
> #ifndef _JAVASOFT_JNI_MD_H_
> #define _JAVASOFT_JNI_MD_H_
>
> -#define JNIEXPORT
> -#define JNIIMPORT
> -#define JNICALL
> +#if defined(__GNUC__) && (__GNUC__ >= 4)
> +# define JNIEXPORT __attribute__((visibility("default")))
> +# define JNIIMPORT __attribute__((visibility("default")))
> +# define JNICALL
> +#else
> +# define JNIEXPORT
> +# define JNIIMPORT
> +# define JNICALL
> +#endif
> +
>
> typedef int jint;
> #ifdef _LP64 /* 64-bit Solaris */
>
>
More information about the hotspot-runtime-dev
mailing list