Linker error when building dmd backend

Thomas Mader thomas.mader at gmail.com
Sat Dec 22 23:29:13 UTC 2018


On Saturday, 22 December 2018 at 23:02:04 UTC, Thomas Mader wrote:
> It's always a fresh build when building a NixOS package.
> I looked into backend.a for the symbol:
>
> objdump -D backend.a | grep modulo
> 0000000000000040 <_Z7_moduloee>:
>   40:	e9 00 00 00 00       	jmpq   45 <_Z7_moduloee+0x5>
>
> Maybe that's connected to 
> https://forum.dlang.org/post/odimguuqtekosmtliyhf@forum.dlang.org

I enabled more debug output from the Nix environment so the 
compiler flags can be seen.

CC="c++" ldmd2 -of../generated/linux/release/64/dmd -m64 -vtls 
-J../generated/linux/release/64 -J../res -L-lstdc++  
-version=MARS -fPIC -J../generated/linux/release/64 -w -de -O 
-release -inline dmd/access.d dmd/aggregate.d dmd/aliasthis.d 
dmd/apply.d dmd/argtypes.d dmd/arrayop.d dmd/arraytypes.d 
dmd/astcodegen.d dmd/attrib.d dmd/builtin.d dmd/canthrow.d 
dmd/cli.d dmd/clone.d dmd/compiler.d dmd/complex.d dmd/cond.d 
dmd/constfold.d dmd/cppmangle.d dmd/cppmanglewin.d dmd/ctfeexpr.d 
dmd/ctorflow.d dmd/dcast.d dmd/dclass.d dmd/declaration.d 
dmd/delegatize.d dmd/denum.d dmd/dimport.d dmd/dinifile.d 
dmd/dinterpret.d dmd/dmacro.d dmd/dmangle.d dmd/dmodule.d 
dmd/doc.d dmd/dscope.d dmd/dstruct.d dmd/dsymbol.d 
dmd/dsymbolsem.d dmd/dtemplate.d dmd/dversion.d dmd/escape.d 
dmd/expression.d dmd/expressionsem.d dmd/func.d dmd/hdrgen.d 
dmd/id.d dmd/impcnvtab.d dmd/imphint.d dmd/init.d dmd/initsem.d 
dmd/inline.d dmd/inlinecost.d dmd/intrange.d dmd/json.d 
dmd/lambdacomp.d dmd/lib.d dmd/libelf.d dmd/libmach.d dmd/link.d 
dmd/mars.d dmd/mtype.d dmd/nogc.d dmd/nspace.d dmd/objc.d 
dmd/opover.d dmd/optimize.d dmd/parse.d dmd/permissivevisitor.d 
dmd/sapply.d dmd/templateparamsem.d dmd/sideeffect.d 
dmd/statement.d dmd/staticassert.d dmd/target.d dmd/typesem.d 
dmd/traits.d dmd/transitivevisitor.d dmd/parsetimevisitor.d 
dmd/visitor.d dmd/typinf.d dmd/utils.d dmd/scanelf.d 
dmd/scanmach.d dmd/statement_rewrite_walker.d dmd/statementsem.d 
dmd/staticcond.d dmd/safe.d dmd/blockexit.d dmd/printast.d 
dmd/semantic2.d dmd/semantic3.d dmd/irstate.d dmd/toctype.d 
dmd/glue.d dmd/gluelayer.d dmd/todt.d dmd/tocsym.d dmd/toir.d 
dmd/dmsc.d dmd/tocvdebug.d dmd/s2ir.d dmd/toobj.d dmd/e2ir.d 
dmd/eh.d dmd/iasm.d dmd/iasmdmd.d dmd/iasmgcc.d dmd/objc_glue.d 
dmd/backend/cc.d dmd/backend/cdef.d dmd/backend/cgcv.d 
dmd/backend/code.d dmd/backend/cv4.d dmd/backend/dt.d 
dmd/backend/el.d dmd/backend/global.d dmd/backend/obj.d 
dmd/backend/oper.d dmd/backend/outbuf.d dmd/backend/rtlsym.d 
dmd/backend/code_x86.d dmd/backend/iasm.d dmd/backend/ty.d 
dmd/backend/type.d dmd/backend/exh.d dmd/backend/mach.d 
dmd/backend/mscoff.d dmd/backend/dwarf.d dmd/backend/dwarf2.d 
dmd/backend/xmm.d dmd/backend/dlist.d dmd/backend/melf.d 
dmd/backend/varstats.d dmd/root/aav.d dmd/root/man.d 
dmd/root/response.d dmd/root/speller.d dmd/root/longdouble.d 
../generated/linux/release/64/newdelete.o 
../generated/linux/release/64/backend.a 
../generated/linux/release/64/lexer.a
HARDENING: disabled flags: pie
HARDENING: Is active (not completely disabled with "all" flag)
HARDENING: enabling fortify
HARDENING: enabling stackprotector
HARDENING: enabling strictoverflow
HARDENING: enabling format
HARDENING: enabling pic
extra flags before to 
/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/bin/g++:
   -O2
   -D_FORTIFY_SOURCE=2
   -fstack-protector-strong
   --param
   ssp-buffer-size=4
   -fno-strict-overflow
   -Wformat
   -Wformat-security
   -Werror=format-security
   -fPIC
   -Wl\,-dynamic-linker
   
-Wl\,/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib/ld-linux-x86-64.so.2
original flags to 
/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/bin/g++:
   ../generated/linux/release/64/dmd.o
   ../generated/linux/release/64/newdelete.o
   ../generated/linux/release/64/backend.a
   ../generated/linux/release/64/lexer.a
   -o
   ../generated/linux/release/64/dmd
   -fuse-ld=gold
   -lstdc++
   
-L/nix/store/r29igl9gz0r6cvb3i28xh03anx936qbl-ldcBuild-1.13.0/lib
   -lphobos2-ldc
   -ldruntime-ldc
   -Wl\,--gc-sections
   -lrt
   -ldl
   -lpthread
   -lm
   -m64
extra flags after to 
/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/bin/g++:
   -B/nix/store/x6inizi5ahlyhqxxwv1rvn05a25icarq-gcc-7.3.0-lib/lib
   -B/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib/
   -idirafter
   
/nix/store/psqblh5bsgkbkhn4r648pgjw5rq4npkv-glibc-2.27-dev/include
   -idirafter
   
/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/lib/gcc/x86_64-unknown-linux-gnu/7.3.0/include-fixed
   
-B/nix/store/klci955kxil7q32ggran6lnhpnkk8yjz-gcc-wrapper-7.3.0/bin/
   -isystem
   /nix/store/gvmijbjia22rskv7xfm36004zsyi62mr-ldc-1.13.0/include
   -isystem
   /nix/store/6yf8cndis3p9awh5wmwplyrqv55y4y3a-gdb-8.2/include
   -isystem
   
/nix/store/yhckr5a12np73av4c4k1v1ffqj0bx53h-curl-7.62.0-dev/include
   -isystem
   
/nix/store/s7f8awsadn61qmbz1mfniw2c3zxcifq0-nghttp2-1.35.0-dev/include
   -isystem
   
/nix/store/a50sg2xm6vflzx5kma3sih39dq9wv7z6-zlib-1.2.11-dev/include
   -isystem
   
/nix/store/jfyrrk9xkqm06x5vcx6cs4qm34bzl39h-libkrb5-1.15.2-dev/include
   -isystem
   
/nix/store/v7gs3pmbg43ys16fbhhc9sq89s4vj236-openssl-1.0.2q-dev/include
   -isystem
   
/nix/store/v42mn058w6gb8ycyf1phvi8f8c9a4k8m-libssh2-1.8.0-dev/include
   -isystem
   
/nix/store/9nzy5rd0mk57va1sr4br936pjk24ns8p-tzdata-2018g-dev/include
   -isystem
   /nix/store/gvmijbjia22rskv7xfm36004zsyi62mr-ldc-1.13.0/include
   -isystem
   /nix/store/6yf8cndis3p9awh5wmwplyrqv55y4y3a-gdb-8.2/include
   -isystem
   
/nix/store/yhckr5a12np73av4c4k1v1ffqj0bx53h-curl-7.62.0-dev/include
   -isystem
   
/nix/store/s7f8awsadn61qmbz1mfniw2c3zxcifq0-nghttp2-1.35.0-dev/include
   -isystem
   
/nix/store/a50sg2xm6vflzx5kma3sih39dq9wv7z6-zlib-1.2.11-dev/include
   -isystem
   
/nix/store/jfyrrk9xkqm06x5vcx6cs4qm34bzl39h-libkrb5-1.15.2-dev/include
   -isystem
   
/nix/store/v7gs3pmbg43ys16fbhhc9sq89s4vj236-openssl-1.0.2q-dev/include
   -isystem
   
/nix/store/v42mn058w6gb8ycyf1phvi8f8c9a4k8m-libssh2-1.8.0-dev/include
   -isystem
   
/nix/store/9nzy5rd0mk57va1sr4br936pjk24ns8p-tzdata-2018g-dev/include
   -Wl\,-rpath
   
-Wl\,/nix/store/r2xapv59sz4cpa9zy9ydzck857r6xmrx-dmdBuild-2.083.1/lib64
   -Wl\,-rpath
   
-Wl\,/nix/store/r2xapv59sz4cpa9zy9ydzck857r6xmrx-dmdBuild-2.083.1/lib
   -L/nix/store/gvmijbjia22rskv7xfm36004zsyi62mr-ldc-1.13.0/lib
   -L/nix/store/6yf8cndis3p9awh5wmwplyrqv55y4y3a-gdb-8.2/lib
   
-L/nix/store/9vh9ysqr8hahnph1gppniv7zrdf218ds-nghttp2-1.35.0-lib/lib
   -L/nix/store/nsrwlly5ikwhppcslaazp547kh7q7j6s-zlib-1.2.11/lib
   -L/nix/store/yi0pwf9hybx6vhj2qdfa6krvxgvcbyi0-libkrb5-1.15.2/lib
   -L/nix/store/3lk4hcp1r6pnrvf91kd5p0ni97nd2dj3-openssl-1.0.2q/lib
   -L/nix/store/za7psqbn9laq73vc5rh657jqpiqn0wag-libssh2-1.8.0/lib
   -L/nix/store/blrfb9855rrxva4xch4r7knwya0il5rl-curl-7.62.0/lib
   
-L/nix/store/9nzy5rd0mk57va1sr4br936pjk24ns8p-tzdata-2018g-dev/lib
   -L/nix/store/gvmijbjia22rskv7xfm36004zsyi62mr-ldc-1.13.0/lib
   -L/nix/store/6yf8cndis3p9awh5wmwplyrqv55y4y3a-gdb-8.2/lib
   
-L/nix/store/9vh9ysqr8hahnph1gppniv7zrdf218ds-nghttp2-1.35.0-lib/lib
   -L/nix/store/nsrwlly5ikwhppcslaazp547kh7q7j6s-zlib-1.2.11/lib
   -L/nix/store/yi0pwf9hybx6vhj2qdfa6krvxgvcbyi0-libkrb5-1.15.2/lib
   -L/nix/store/3lk4hcp1r6pnrvf91kd5p0ni97nd2dj3-openssl-1.0.2q/lib
   -L/nix/store/za7psqbn9laq73vc5rh657jqpiqn0wag-libssh2-1.8.0/lib
   -L/nix/store/blrfb9855rrxva4xch4r7knwya0il5rl-curl-7.62.0/lib
   
-L/nix/store/9nzy5rd0mk57va1sr4br936pjk24ns8p-tzdata-2018g-dev/lib
   -L/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib
   -L/nix/store/x6inizi5ahlyhqxxwv1rvn05a25icarq-gcc-7.3.0-lib/lib
HARDENING: disabled flags: pie
HARDENING: Is active (not completely disabled with "all" flag)
HARDENING: enabling bindnow
HARDENING: enabling relro
extra flags before to 
/nix/store/jdlb06c0kp6sms277xcclfr3gdl8pb9r-binutils-2.30/bin/ld.gold:
   -z
   now
   -z
   relro
original flags to 
/nix/store/jdlb06c0kp6sms277xcclfr3gdl8pb9r-binutils-2.30/bin/ld.gold:
   -plugin
   
/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/libexec/gcc/x86_64-unknown-linux-gnu/7.3.0/liblto_plugin.so
   
-plugin-opt=/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/libexec/gcc/x86_64-unknown-linux-gnu/7.3.0/lto-wrapper
   -plugin-opt=-fresolution=/build/ccNnlge1.res
   -plugin-opt=-pass-through=-lgcc_s
   -plugin-opt=-pass-through=-lgcc
   -plugin-opt=-pass-through=-lc
   -plugin-opt=-pass-through=-lgcc_s
   -plugin-opt=-pass-through=-lgcc
   --eh-frame-hdr
   -m
   elf_x86_64
   -dynamic-linker
   
/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib64/ld-linux-x86-64.so.2
   -o
   ../generated/linux/release/64/dmd
   
/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib/crt1.o
   
/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib/crti.o
   
/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/lib/gcc/x86_64-unknown-linux-gnu/7.3.0/crtbegin.o
   
-L/nix/store/r29igl9gz0r6cvb3i28xh03anx936qbl-ldcBuild-1.13.0/lib
   -L/nix/store/gvmijbjia22rskv7xfm36004zsyi62mr-ldc-1.13.0/lib
   -L/nix/store/6yf8cndis3p9awh5wmwplyrqv55y4y3a-gdb-8.2/lib
   
-L/nix/store/9vh9ysqr8hahnph1gppniv7zrdf218ds-nghttp2-1.35.0-lib/lib
   -L/nix/store/nsrwlly5ikwhppcslaazp547kh7q7j6s-zlib-1.2.11/lib
   -L/nix/store/yi0pwf9hybx6vhj2qdfa6krvxgvcbyi0-libkrb5-1.15.2/lib
   -L/nix/store/3lk4hcp1r6pnrvf91kd5p0ni97nd2dj3-openssl-1.0.2q/lib
   -L/nix/store/za7psqbn9laq73vc5rh657jqpiqn0wag-libssh2-1.8.0/lib
   -L/nix/store/blrfb9855rrxva4xch4r7knwya0il5rl-curl-7.62.0/lib
   
-L/nix/store/9nzy5rd0mk57va1sr4br936pjk24ns8p-tzdata-2018g-dev/lib
   -L/nix/store/gvmijbjia22rskv7xfm36004zsyi62mr-ldc-1.13.0/lib
   -L/nix/store/6yf8cndis3p9awh5wmwplyrqv55y4y3a-gdb-8.2/lib
   
-L/nix/store/9vh9ysqr8hahnph1gppniv7zrdf218ds-nghttp2-1.35.0-lib/lib
   -L/nix/store/nsrwlly5ikwhppcslaazp547kh7q7j6s-zlib-1.2.11/lib
   -L/nix/store/yi0pwf9hybx6vhj2qdfa6krvxgvcbyi0-libkrb5-1.15.2/lib
   -L/nix/store/3lk4hcp1r6pnrvf91kd5p0ni97nd2dj3-openssl-1.0.2q/lib
   -L/nix/store/za7psqbn9laq73vc5rh657jqpiqn0wag-libssh2-1.8.0/lib
   -L/nix/store/blrfb9855rrxva4xch4r7knwya0il5rl-curl-7.62.0/lib
   
-L/nix/store/9nzy5rd0mk57va1sr4br936pjk24ns8p-tzdata-2018g-dev/lib
   -L/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib
   -L/nix/store/x6inizi5ahlyhqxxwv1rvn05a25icarq-gcc-7.3.0-lib/lib
   -L/nix/store/x6inizi5ahlyhqxxwv1rvn05a25icarq-gcc-7.3.0-lib/lib
   -L/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib
   
-L/nix/store/klci955kxil7q32ggran6lnhpnkk8yjz-gcc-wrapper-7.3.0/bin
   
-L/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/lib/gcc/x86_64-unknown-linux-gnu/7.3.0
   
-L/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/lib/gcc/x86_64-unknown-linux-gnu/7.3.0/../../../../lib64
   
-L/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/lib/gcc/x86_64-unknown-linux-gnu/7.3.0/../../..
   -dynamic-linker
   
/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib/ld-linux-x86-64.so.2
   ../generated/linux/release/64/dmd.o
   ../generated/linux/release/64/newdelete.o
   ../generated/linux/release/64/backend.a
   ../generated/linux/release/64/lexer.a
   -lstdc++
   -lphobos2-ldc
   -ldruntime-ldc
   --gc-sections
   -lrt
   -ldl
   -lpthread
   -rpath
   
/nix/store/r2xapv59sz4cpa9zy9ydzck857r6xmrx-dmdBuild-2.083.1/lib64
   -rpath
   /nix/store/r2xapv59sz4cpa9zy9ydzck857r6xmrx-dmdBuild-2.083.1/lib
   -lstdc++
   -lm
   -lgcc_s
   -lgcc
   -lc
   -lgcc_s
   -lgcc
   
/nix/store/p7j7qg5cri229ihf8nllwjhzgbvgx5d0-gcc-7.3.0/lib/gcc/x86_64-unknown-linux-gnu/7.3.0/crtend.o
   
/nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib/crtn.o
extra flags after to 
/nix/store/jdlb06c0kp6sms277xcclfr3gdl8pb9r-binutils-2.30/bin/ld.gold:
   -rpath
   /nix/store/xdsjx0gba4id3yyqxv66bxnm2sqixkjj-glibc-2.27/lib
   -rpath
   /nix/store/x6inizi5ahlyhqxxwv1rvn05a25icarq-gcc-7.3.0-lib/lib
../generated/linux/release/64/backend.a(evalu8.o):dmd/backend/evalu8.d:function evalu8(elem*, unsigned int): error: undefined reference to '_Z7_moduloeS_'
../generated/linux/release/64/backend.a(evalu8.o):dmd/backend/evalu8.d:function evalu8(elem*, unsigned int): error: undefined reference to '_Z7_moduloeS_'
../generated/linux/release/64/backend.a(evalu8.o):dmd/backend/evalu8.d:function evalu8(elem*, unsigned int): error: undefined reference to '_Z7_moduloeS_'
collect2: error: ld returned 1 exit status


More information about the Digitalmars-d mailing list