Skip to content

link error with undefined reference to `main' on Arch #23

@clux

Description

@clux

I tried running an internal project through tarpaulin today and it appears to fail in the link stage. I'm not really sure what's going on here, but it does work inside an ubuntu xenial docker container on the same project (running docker in --privileged mode to work around ASLR errors from lacking EPERM), so I'm guessing it's something to do with gcc7.

Here is the output after all the Compiling lines:

   Compiling indicatif v0.3.3
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/clux/sqbu/lal/target/debug/deps/serde_derive-0c82b8e5158c5e10.0.o" "-o" "/home/clux/sqbu/lal/target/debug/deps/libserde_derive-0c82b8e5158c5e10.so" "/home/clux/sqbu/lal/target/debug/deps/serde_derive-0c82b8e5158c5e10.crate.metadata.o" "-nodefaultlibs" "-L" "/home/clux/sqbu/lal/target/debug/deps" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/clux/sqbu/lal/target/debug/deps/libserde_codegen_internals-d56dd4dc3a22cef8.rlib" "/home/clux/sqbu/lal/target/debug/deps/libsyn-593a087ca2571565.rlib" "/home/clux/sqbu/lal/target/debug/deps/libsynom-1fddc0802262e2b9.rlib" "/home/clux/sqbu/lal/target/debug/deps/libquote-565e17019bbf404d.rlib" "/home/clux/sqbu/lal/target/debug/deps/libunicode_xid-0718538d6479f922.rlib" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bdynamic" "-l" "proc_macro-21659b2d231fd6e3" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "syntax-93b867817c21b413" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "rustc_data_structures-7c7ac4ebfcbb1807" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "rustc_errors-8975c93dcf60bb3d" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "syntax_pos-364f7f3b054e6796" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "serialize-204d1e77b99bcb91" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "term-4959b4e709084e0a" "-L" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "std-35ad9950c7e5074b" "-Wl,-Bstatic" "/home/clux/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-863b57a66ba6c3e1.rlib" "-Wl,-Bdynamic" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util" "-shared" "-no-pie"
  = note: /usr/lib/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../lib/crt1.o: In function `_start':
          (.text+0x20): undefined reference to `main'
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error(s)

error: Could not compile `serde_derive`.
Build failed, waiting for other jobs to finish...

system:

$ uname -a
Linux kjttks 4.12.3-1-ARCH #1 SMP PREEMPT Sat Jul 22 15:32:02 UTC 2017 x86_64 GNU/Linux
$ rustc --version
rustc 1.19.0 (0ade33941 2017-07-17)
$ cargo tarpaulin --version
cargo-tarpaulin version: 0.3.9
$ cc -Q -v
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/7.1.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release --enable-default-pie --enable-default-ssp
Thread model: posix
gcc version 7.1.1 20170630 (GCC) 

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions