[cfe-dev] add new clang option -fnovisibility.

digger lin via cfe-dev cfe-dev at lists.llvm.org
Wed Sep 9 06:57:18 PDT 2020


Hi All,

  In IBM compiler Xlclang , there is option -fnovisibiilty. The option is
description as

https://www.ibm.com/support/knowledgecenter/SSGH3R_16.1.0/com.ibm.xlcpp161.aix.doc/compiler_ref/opt_visibility.html


  we need to add the option -fnovisibiilty for clang in the IBM AIX OS(and
the option is enabled by default in AIX OS).
  I will implement the option in the other OS platform.(but the option is
disabled by default in other OS).

  For example, the file test.c

 bash-4.2$ test.c
 __attribute__((visibility ("protected"))) int b;

 1 In AIX OS:

 1.1 Compiled with

*  clang -fnovisibility    -target powerpc-unknown-aix  -emit-llvm  -S
test.c*
 or
  *clang -target powerpc-unknown-aix  -emit-llvm  -S test.c * ( the
-fnovisibility is *enabled* by default in AIX OS)

 Generate IR as :

  *@b = global i32 0, align 4*

 1.2 Compiled with
  (If have "-fnovisibility  -fvisibility=*" at the same time.  the compile
will ignore the -fnovisibility).

  *clang -fnovisibility  -fvisibility=default   -target powerpc-unknown-aix
  -emit-llvm  -S test.c*

Or

  *clang -fvisibility=default   -target powerpc-unknown-aix   -emit-llvm
 -S test.c*

  Generate IR as :
  *@b = protected global i32 0, align 4*

 2. In Other OS(not AIX)
   2.1* clang -fnovisibility    -target powerpc-unknown-linux  -emit-llvm
 -S test.c*

    Generate IR as :
    *@b = global i32 0, align 4*

  2.2
   * clang -target powerpc-unknown-linux  -emit-llvm  -S test.c* ( the
-fnovisibility is *disabled *by default in not AIX OS)
  Or
    (if have "-fnovisibility  -fvisibility=*" at the same time.  the
compile will ignore the -fnovisibility).
    *clang -fnovisibility  -fvisibility=default   -target
powerpc-unknown-linux   -emit-llvm  -S test.c*
  Or
    *clang -fvisibility=default   -target powerpc-unknown-linux
-emit-llvm  -S test.c*

   Generate IR as :
    *@b = protected global i32 0, align 4 *

Thanks
  Digger Lin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20200909/732700d8/attachment.html>


More information about the cfe-dev mailing list