[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