[LLVMbugs] [Bug 4957] New: find-cycles.pl incompatible with MinGW headers

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Sep 11 16:18:03 PDT 2009


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

           Summary: find-cycles.pl incompatible with MinGW headers
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Keywords: build-problem, portability
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: deeppatel1987 at gmail.com
                CC: asl at math.spbu.ru, llvmbugs at cs.uiuc.edu


When I build a stage2 compiler hosted on MinGW, find-cycles.pl fails. (Stage 1
is darwin->mingw32.)

The culprits are the ctype.h functions provided in MinGW. They're "inline" in
C++ and an out-of-line copy of isalnum() is generated inside
libLLVMCppBackend.a (among others).

MinGW uses "extern __inline__" and "extern inline
__attribute__((__gnu_inline__)) in C depending on the version of GCC, but just
"inline" in C++.

Some crazy thoughts:

1. Build with -ffunction-sections and have a libbing step remove all
out-of-line ctype functions during MinGW builds.

2. Implement the gnu_inline attribute in llvm-gcc and clang and then change
_mingw.h accordingly. The original implementation of gnu_inline is after GCC
went GPLv3, so this would have to be done from scratch.

3. Find some other way to mark these functions with availableExternally instead
of linkonce_odr.

This blocks non-debug builds on MinGW.


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