Skip to content

Error in compiling OAT trampoline lib #6

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions