-
Notifications
You must be signed in to change notification settings - Fork 13.5k
disassembler map file problems on OpenBSD #8037
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Sounds like really ancient ld. |
This is the same version of ld FreeBSD uses. The changes between versions of binutils tend to break ld on non x86 architectures, especially when they are something other than Linux. |
I can confirm that this OpenBSD bug is still around in llvm/clang trunk from a month ago, 124477 to be exact. For some reason the exports.map files that are generated are missing a line at the top of the file. In FreeBSD, the second line of each of these map files says "global:" but that's missing on OpenBSD. I added that in manually and clang built fine on OpenBSD 4.8 i386. Presumably some bug in the build system, but I haven't looked into where that's generated. |
I no longer see this problem, closing. |
To support stepping in Swift async code, LLDB uses the memory region (ie stack vs heap) of the Canonical Frame Address (CFA) to identify when an async function calls a synchronous function. But this has resulted in a performance regression, as determining the memory region of the CFA is not free, and eagerly performing this query for every `StackID`, particularly during backtracing/unwinding – when stepping is not yet occurring, is wasteful. This change proposes a solution that defers the memory region query until required to perform stepping logic. The logic that checks heaps vs stacks was moved into `ThreadPlan`, the only place that currently needs to make that determination. Performing this check in `ThreadPlan` provides access to the process, allowing stack/heap determination to happen as needed. Previously, the stack/heap determination was made eagerly when the `StackID` was constructed. rdar://117505613 (cherry-picked from commit c58c369)
Extended Description
LLVM svn (108643) on OpenBSD/i386 -current doesn't seem to build:
llvm[2]: Compiling EDDisassembler.cpp for Release+Asserts build (PIC)
llvm[2]: Compiling EDInst.cpp for Release+Asserts build (PIC)
llvm[2]: Compiling EDMain.cpp for Release+Asserts build (PIC)
llvm[2]: Compiling EDOperand.cpp for Release+Asserts build (PIC)
llvm[2]: Compiling EDToken.cpp for Release+Asserts build (PIC)
llvm[2]: Linking Release+Asserts Shared Library EnhancedDisassembly.so
/usr/bin/ld:/usr/users/jsg/src/llvm/tools/edis/Release+Asserts/EnhancedDisassembly.exports.map:38: syntax error in VERSION script
collect2: ld returned 1 exit status
gmake[2]: *** [/usr/users/jsg/src/llvm/Release+Asserts/lib/libEnhancedDisassembly.so] Error 1
$ ld --version
GNU ld version 2.15
$ cc -v
Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd4.7/4.2.1/specs
Target: i386-unknown-openbsd4.7
Configured with: OpenBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070719
$ libtool --version
ltmain.sh (GNU libtool) 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
The text was updated successfully, but these errors were encountered: