Thread overview
[Issue 14942] dmd linking error with SHA and SSSE3
Aug 20, 2015
Tomáš Chaloupka
Sep 01, 2015
Vladimir Panteleev
Sep 01, 2015
Tomáš Chaloupka
Feb 04, 2016
Yawniek
Feb 04, 2016
Yawniek
Feb 04, 2016
Sobirari Muhomori
August 20, 2015
https://issues.dlang.org/show_bug.cgi?id=14942

--- Comment #1 from Tomáš Chaloupka <chalucha@gmail.com> ---
linking output with -v switch:

binary    dmd
version   v2.068.0
config    /opt/dmd-2.068/bin/dmd.conf
gcc test.o -o test -g -m64 -Xlinker --no-as-needed -Xlinker --export-dynamic
-Xlinker --demangle=dlang -L/opt/dmd-2.068/lib64 -Xlinker -rpath -Xlinker
/opt/dmd-2.068/lib64 -lphobos2 -lpthread -lm -lrt
test.o: In function `std.digest.sha.SHA!(512, 160).SHA._sharedStaticCtor330()':
app.d:(.text._D3std6digest3sha20__T3SHAVii512Vii160Z3SHA20_sharedStaticCtor330FNbNiNfZv+0x45):
undefined reference to `std.internal.digest.sha_SSSE3.transformSSSE3(uint[5]*,
const(ubyte[64])*)'

--
September 01, 2015
https://issues.dlang.org/show_bug.cgi?id=14942

Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thecybershadow@gmail.com

--- Comment #2 from Vladimir Panteleev <thecybershadow@gmail.com> ---
I can't reproduce this.
What package did you install?
What happens if you build D 2.068 from source (e.g. using Digger)?

--
September 01, 2015
https://issues.dlang.org/show_bug.cgi?id=14942

Tomáš Chaloupka <chalucha@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |INVALID

--- Comment #3 from Tomáš Chaloupka <chalucha@gmail.com> ---
I've tried it with the gentoo dlang overlay [1]

There is not yet an ebuild for 2.068 so I tried that from binary package [2].

Thanks for pointing me to digger, I tested it with:
./digger build v2.068.1-b2
sudo ./digger install

and it built!

With ./digger build v2.068.0 it won't.

When I tried to bisect it, it became strange as it was ok even with 2.068.0.
So it seems to be something with the system configuration. When I manually
passed the --conf pointing to diggers dmd.conf it was also ok.
I guess it had to be something with the phobos lib. Maybe shared phobos lib
used by gentoo ebuild mixed with static libs?

So I unmerged all dlang ebuilds, checked bin and lib paths for remaining files
and installed dmd manually from zip file.
After that it builds ok, so problem solved.

[1] https://github.com/gentoo/dlang/blob/master/dev-lang/dmd/dmd-2.067.1.ebuild [2] http://downloads.dlang.org/releases/2015/dmd.2.068.0.zip

--
February 04, 2016
https://issues.dlang.org/show_bug.cgi?id=14942

Yawniek <dlang@srtnwz.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |dlang@srtnwz.com
         Resolution|INVALID                     |---

--- Comment #4 from Yawniek <dlang@srtnwz.com> ---
i can reproduce this  on an up to date archlinux system:

ws02% dub init -t vibe.d ugah
Successfully created an empty project in '/home/yannick/code/d/test/ugah'.
ws02% cd ugah
ws02% ls
dub.json  public  source  views
ws02% dub build --compiler=ldc
Performing "debug" build using ldc for x86_64.
vibe-d:utils 0.7.27: building configuration "library"...
vibe-d:data 0.7.27: building configuration "library"...
vibe-d:core 0.7.27: building configuration "libevent"...
vibe-d:http 0.7.27: building configuration "library"...
hvibe-d:diet 0.7.27: building configuration "library"...
vibe-d:mail 0.7.27: building configuration "library"...
vibe-d:mongodb 0.7.27: building configuration "library"...
vibe-d:redis 0.7.27: building configuration "library"...
vibe-d:web 0.7.27: building configuration "library"...
vibe-d 0.7.27: building configuration "libevent"...
ugah ~master: building configuration "application"...
/usr/include/dlang/ldc/std/digest/sha.d:224: error: undefined reference to
'_D3std8internal6digest9sha_SSSE314transformSSSE3FNaNbNiPG5kPxG64hZv'
/usr/include/dlang/ldc/std/digest/sha.d:224: error: undefined reference to
'_D3std8internal6digest9sha_SSSE314transformSSSE3FNaNbNiPG5kPxG64hZv'
/usr/include/dlang/ldc/std/digest/sha.d:224: error: undefined reference to
'_D3std8internal6digest9sha_SSSE314transformSSSE3FNaNbNiPG5kPxG64hZv'
/usr/include/dlang/ldc/std/digest/sha.d:224: error: undefined reference to
'_D3std8internal6digest9sha_SSSE314transformSSSE3FNaNbNiPG5kPxG64hZv'
collect2: error: ld returned 1 exit status
Error: /usr/sbin/gcc failed with status: 1
ldc failed with exit code 1.



ws02% pacman -Q | grep ldc
ldc 1:0.16.1-4



ws02% ldc --version
LDC - the LLVM D compiler (0.16.1):
  based on DMD v2.067.1 and LLVM 3.7.1
  Default target: x86_64-unknown-linux-gnu
  Host CPU: haswell
  http://dlang.org - http://wiki.dlang.org/LDC

  Registered Targets:
    aarch64    - AArch64 (little endian)
    aarch64_be - AArch64 (big endian)
    amdgcn     - AMD GCN GPUs
    arm        - ARM
    arm64      - ARM64 (little endian)
    armeb      - ARM (big endian)
    bpf        - BPF (host endian)
    bpfeb      - BPF (big endian)
    bpfel      - BPF (little endian)
    cpp        - C++ backend
    hexagon    - Hexagon
    mips       - Mips
    mips64     - Mips64 [experimental]
    mips64el   - Mips64el [experimental]
    mipsel     - Mipsel
    msp430     - MSP430 [experimental]
    nvptx      - NVIDIA PTX 32-bit
    nvptx64    - NVIDIA PTX 64-bit
    ppc32      - PowerPC 32
    ppc64      - PowerPC 64
    ppc64le    - PowerPC 64 LE
    r600       - AMD GPUs HD2XXX-HD6XXX
    sparc      - Sparc
    sparcel    - Sparc LE
    sparcv9    - Sparc V9
    systemz    - SystemZ
    thumb      - Thumb
    thumbeb    - Thumb (big endian)
    x86        - 32-bit X86: Pentium-Pro and above
    x86-64     - 64-bit X86: EM64T and AMD64
    xcore      - XCore


ws02% dub --version
DUB version 0.9.24+95-g20d74e8, built on Jan  5 2016

--
February 04, 2016
https://issues.dlang.org/show_bug.cgi?id=14942

--- Comment #5 from Yawniek <dlang@srtnwz.com> ---
sorry wrong issue tracker. this is a LDC or arch bug.

--
February 04, 2016
https://issues.dlang.org/show_bug.cgi?id=14942

Sobirari Muhomori <dfj1esp02@sneakemail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |INVALID

--