[LLVMbugs] [Bug 18242] New: Inline assembly in C++ fails to link on leppc Debian ABI 0.2

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Dec 13 10:17:11 PST 2013


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

            Bug ID: 18242
           Summary: Inline assembly in C++ fails to link on leppc Debian
                    ABI 0.2
           Product: libraries
           Version: trunk
          Hardware: Other
                OS: other
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: PowerPC
          Assignee: unassignedbugs at nondot.org
          Reporter: stevchen at ca.ibm.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

On little-endian PowerPC Debian API 0.2, the opcode opd is no longer allowed.
Normally when a source is compiled with GCC, GCC will not generate these
opcodes; however, some sources for building LLVM libraries unfortunately use
inline asm which hardcodes the section odp.

g++  -O3 -rdynamic -Wl,-R -Wl,'$ORIGIN/../lib'
-L/home/build/clang/dev/testbld/builds/Release+Asserts/lib
-L/home/build/clang/dev/testbld/builds/Release+Asserts/lib    -o
/home/build/clang/dev/testbld/builds/Release+Asserts/bin/opt 
/home/build/clang/dev/testbld/builds/tools/opt/Release+Asserts/AnalysisWrappers.o
/home/build/clang/dev/testbld/builds/tools/opt/Release+Asserts/GraphPrinters.o
/home/build/clang/dev/testbld/builds/tools/opt/Release+Asserts/PrintSCC.o
/home/build/clang/dev/testbld/builds/tools/opt/Release+Asserts/opt.o  \
        -lLLVMPowerPCAsmParser -lLLVMPowerPCCodeGen -lLLVMSelectionDAG
-lLLVMAsmPrinter -lLLVMMCParser -lLLVMCodeGen -lLLVMPowerPCDesc
-lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter -lLLVMCppBackendCodeGen
-lLLVMCppBackendInfo -lLLVMipo -lLLVMVectorize -lLLVMObjCARCOpts
-lLLVMScalarOpts -lLLVMInstCombine -lLLVMInstrumentation -lLLVMTransformUtils
-lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMIRReader
-lLLVMAsmParser -lLLVMBitWriter -lLLVMBitReader -lLLVMCore -lLLVMSupport   -lz
-lpthread -ldl -lm
/usr/bin/ld.bfd.real: .opd not allowed in ABI version 2
/home/build/clang/dev/testbld/builds/Release+Asserts/lib/libLLVMPowerPCCodeGen.a:
error adding symbols: Bad value

In the assembly code for PPCJITInfo.o, there is:
.section ".opd","aw", at progbits

This is from: llvm-dev.src/lib/Target/PowerPC/PPCJITInfo.cpp
asm(
    ".text\n"
    ".align 2\n"
    ".globl PPC64CompilationCallback\n"
    ".section \".opd\",\"aw\", at progbits\n"
    ".align 3\n"
"PPC64CompilationCallback:\n"
    ".quad .L.PPC64CompilationCallback,.TOC. at tocbase,0\n"
    ".size PPC64CompilationCallback,24\n"
    ".previous\n"
    ".align 4\n"
    ".type PPC64CompilationCallback, at function\n"
".L.PPC64CompilationCallback:\n"
#  else

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20131213/69a75cc1/attachment.html>


More information about the llvm-bugs mailing list