Skip to content

Error in compiling OAT trampoline lib #6

@teozoia

Description

@teozoia

I am interested in reproducing your work, I've first compile OAT with:

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_INCLUDE_TESTS=OFF -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-none-elf -DLLVM_TARGET_ARCH=AArch64 -DLLVM_TARGETS_TO_BUILD=AArch64  ../oat-llvm40/

When I try to compile the trampoline library:

$ cd oat-trampoline-lib
$ make lib-arch64
clang  -I/usr/aarch64-linux-gnu/include -fPIC -g -c -Wall nova.c
clang  -I/usr/aarch64-linux-gnu/include -fPIC -g -c -Wall cfv_bellman.c
cfv_bellman.c:206:43: warning: value size does not match register size specified
      by the constraint and modifier [-Wasm-operand-widths]
        asm volatile("msr pmcr_el0, %0" : : "r" (17));
                                                 ^
cfv_bellman.c:206:30: note: use constraint modifier "w"
        asm volatile("msr pmcr_el0, %0" : : "r" (17));
                                    ^~
                                    %w0
cfv_bellman.c:208:49: warning: value size does not match register size specified
      by the constraint and modifier [-Wasm-operand-widths]
        asm volatile("msr PMCNTENSET_EL0, %0" : : "r" (0x8000000f));
                                                       ^
cfv_bellman.c:208:36: note: use constraint modifier "w"
        asm volatile("msr PMCNTENSET_EL0, %0" : : "r" (0x8000000f));
                                          ^~
                                          %w0
cfv_bellman.c:210:47: warning: value size does not match register size specified
      by the constraint and modifier [-Wasm-operand-widths]
        asm volatile("msr PMOVSCLR_EL0, %0" : : "r" (0x8000000f));
                                                     ^
cfv_bellman.c:210:34: note: use constraint modifier "w"
        asm volatile("msr PMOVSCLR_EL0, %0" : : "r" (0x8000000f));
                                        ^~
                                        %w0
cfv_bellman.c:217:45: warning: value size does not match register size specified
      by the constraint and modifier [-Wasm-operand-widths]
        asm volatile("mrs %0, PMCCNTR_EL0" : "=r" (cc));
                                                   ^
cfv_bellman.c:217:20: note: use constraint modifier "w"
        asm volatile("mrs %0, PMCCNTR_EL0" : "=r" (cc));
                          ^~
                          %w0
4 warnings generated.

There are some errors in the linker:

clang  -I/usr/aarch64-linux-gnu/include -fPIC -g -c -Wall trampoline.S
clang  -I/usr/aarch64-linux-gnu/include -L/usr/aarch64-linux-gnu/lib -shared -Wl,-soname,libnova.so.1 -o libnova.so.1.0.1 nova.o trampoline.o cfv_bellman.o -lc

ld: Unknown command line argument '-plugin'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-debug'?
ld: Unknown command line argument '-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper'?
ld: Unknown command line argument '-plugin-opt=-fresolution=/tmp/ccUosbZ3.res'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=-fresolution=/tmp/ccUosbZ3.res'?
ld: Unknown command line argument '-plugin-opt=-pass-through=-lgcc'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=-pass-through=-lgcc'?
ld: Unknown command line argument '-plugin-opt=-pass-through=-lgcc_s'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=-pass-through=-lgcc_s'?
ld: Unknown command line argument '-plugin-opt=-pass-through=-lc'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=-pass-through=-lc'?
ld: Unknown command line argument '-plugin-opt=-pass-through=-lgcc'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=-pass-through=-lgcc'?
ld: Unknown command line argument '-plugin-opt=-pass-through=-lgcc_s'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=-pass-through=-lgcc_s'?
ld: Unknown command line argument '--sysroot=/'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-import=/'?
ld: Unknown command line argument '--build-id'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-help-list'?
ld: Unknown command line argument '--eh-frame-hdr'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-override'?
ld: Unknown command line argument '-m'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-S'?
ld: Unknown command line argument '--hash-style=gnu'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-rng-seed=gnu'?
ld: Unknown command line argument '--as-needed'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-only-needed'?
ld: Unknown command line argument '-shared'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-stats'?
ld: Unknown command line argument '-z'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-S'?
ld: Unknown command line argument '-L/usr/aarch64-linux-gnu/lib'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-summary-index'?
ld: Unknown command line argument '-L/usr/aarch64-linux-gnu/include/../lib'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-asm-macro-max-nesting-depth'?
ld: Unknown command line argument '-L/usr/lib/gcc/x86_64-linux-gnu/5'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-disable-force-link-odr'?
ld: Unknown command line argument '-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-disable-force-link-odr'?
ld: Unknown command line argument '-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-disable-force-link-odr'?
ld: Unknown command line argument '-L/lib/x86_64-linux-gnu'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-disable-force-link-odr'?
ld: Unknown command line argument '-L/lib/../lib'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-help-list'?
ld: Unknown command line argument '-L/usr/lib/x86_64-linux-gnu'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-disable-force-link-odr'?
ld: Unknown command line argument '-L/usr/lib/../lib'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-help-list'?
ld: Unknown command line argument '-L/usr/aarch64-linux-gnu/include'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-ignore-empty-index-file'?
ld: Unknown command line argument '-L.'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-S'?
ld: Unknown command line argument '-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-disable-force-link-odr'?
ld: Unknown command line argument '-soname'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-stats'?
ld: Unknown command line argument '-lc'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-S'?
ld: Unknown command line argument '-lgcc'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-S'?
ld: Unknown command line argument '--as-needed'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-only-needed'?
ld: Unknown command line argument '-lgcc_s'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-stats'?
ld: Unknown command line argument '--no-as-needed'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-only-needed'?
ld: Unknown command line argument '-lc'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-S'?
ld: Unknown command line argument '-lgcc'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-S'?
ld: Unknown command line argument '--as-needed'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-only-needed'?
ld: Unknown command line argument '-lgcc_s'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-stats'?
ld: Unknown command line argument '--no-as-needed'.  Try: '/usr/bin/ld -help'
ld: Did you mean '-only-needed'?
collect2: error: ld returned 1 exit status
clang-4.0: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
Makefile:30: recipe for target 'lib-aarch64' failed
make: *** [lib-aarch64] Error 1

There is something missing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions