[LLVMbugs] [Bug 9375] New: __private_extern__ should not be recognized on non-Darwin platforms

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Mar 2 12:55:30 PST 2011


http://llvm.org/bugs/show_bug.cgi?id=9375

           Summary: __private_extern__ should not be recognized on
                    non-Darwin platforms
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: FreeBSD
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: dimitry at andric.com
                CC: llvmbugs at cs.uiuc.edu


Currently, libdispatch's configure script tries to detect support for
__private_extern__ by simply seeing if a program containing it compiles.
Only if that compilation fails, does it attempt to use the other
approach of __attribute__((visibility("hidden"))).

However, on non-Darwin OSes, __private_extern__ results in a regular
extern symbol, and this causes symbols using it to be visible, leading
to link problems.

Of course, libdispatch's configure script can be fixed to only check for
__private_extern__ on Darwin.

However, if __private_extern__ is a Darwin-only feature, I think it
should simply result in a compile error on non-Darwin platforms.  This
will prevent problems with any other scripts that try to detect this
feature.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list