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: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to