On Sunday, 4 June 2017 at 16:13:22 UTC, Jacob Carlborg wrote:
On 2017-06-04 12:45, Nordlöw wrote:
My gmp-d tests successfully on Linux as
dub test
but on OS X it fails as
Undefined symbols for architecture x86_64:
"free", referenced from:
...
"malloc", referenced from:
...
Any ideas on why?
https://github.com/nordlow/gmp-d/issues/4#issuecomment-305974761
I would recommend adding the --verbose flag to see the exact
commands invoked. That will print how the D compiler was
invoked. The copy-paste the exact command and add the -v flag
(for verbose). To the same with the C compiler and the linker.
The flag -L-lc seems to have been passed to the library.
This is the full error message after running it with dub test
--verbose
Using dub registry url 'http://code.dlang.org/'
Refreshing local packages (refresh existing: true)...
Looking for local package map at
/var/lib/dub/packages/local-packages.json
Looking for local package map at
/Users/kdkdk/.dub/packages/local-packages.json
Determined package version using GIT: gmp-d
0.0.3+commit.16.gedb1291
Refreshing local packages (refresh existing: false)...
Looking for local package map at
/var/lib/dub/packages/local-packages.json
Looking for local package map at
/Users/kdkdk/.dub/packages/local-packages.json
Found dependency libgmp 1.0.0
Refreshing local packages (refresh existing: false)...
Looking for local package map at
/var/lib/dub/packages/local-packages.json
Looking for local package map at
/Users/kdkdk/.dub/packages/local-packages.json
Found dependency libgmp 1.0.0
Checking for upgrades.
Using cached upgrade results...
Generating test runner configuration 'gmp-d-test-library' for
'library' (library).
Get module name from path:
/Users/kdkdk/Documents/psi/gmp-d/src/gmp/dbgio.d
Get module name from path:
/Users/kdkdk/Documents/psi/gmp-d/src/gmp/f.d
Excluding package.d file from test due to
https://issues.dlang.org/show_bug.cgi?id=11847
Get module name from path:
/Users/kdkdk/Documents/psi/gmp-d/src/gmp/q.d
Get module name from path:
/Users/kdkdk/Documents/psi/gmp-d/src/gmp/traits.d
Get module name from path:
/Users/kdkdk/Documents/psi/gmp-d/src/gmp/z.d
Refreshing local packages (refresh existing: false)...
Looking for local package map at
/var/lib/dub/packages/local-packages.json
Looking for local package map at
/Users/kdkdk/.dub/packages/local-packages.json
Found dependency libgmp 1.0.0
Generate target gmp-d (executable
/Users/kdkdk/Documents/psi/gmp-d gmp-d-test-library)
Generate target libgmp (staticLibrary
/Users/kdkdk/.dub/packages/libgmp-1.0.0/libgmp libgmp)
Performing "unittest" build using dmd for x86_64.
libgmp 1.0.0: target for configuration "library" is up to date.
Using existing build in
/Users/kdkdk/.dub/packages/libgmp-1.0.0/libgmp/.dub/build/library-unittest-posix.osx-x86_64-dmd_2074-0CBFB25E65B46672F7CAF7CC5BABCE87/.
Copying target from
/Users/kdkdk/.dub/packages/libgmp-1.0.0/libgmp/.dub/build/library-unittest-posix.osx-x86_64-dmd_2074-0CBFB25E65B46672F7CAF7CC5BABCE87/liblibgmp.a to /Users/kdkdk/.dub/packages/libgmp-1.0.0/libgmp
Target
'/Users/kdkdk/Documents/psi/gmp-d/.dub/build/gmp-d-test-library-unittest-posix.osx-x86_64-dmd_2074-6A4F59B4FBEFFE587575F03F4A8B5BD0/gmp-d-test-library' doesn't exist, need rebuild.
gmp-d 0.0.3+commit.16.gedb1291: building configuration
"gmp-d-test-library"...
Using direct -l... flags for gmp, c.
dmd -c
-of.dub/build/gmp-d-test-library-unittest-posix.osx-x86_64-dmd_2074-6A4F59B4FBEFFE587575F03F4A8B5BD0/gmp-d-test-library.o -debug -g -unittest -w -version=VibeCustomMain -version=Have_gmp_d -version=Have_libgmp -Isrc/ -I../../../.dub/packages/libgmp-1.0.0/libgmp/source/ ../../../../../var/folders/7s/rl2b7bj92t7c2dlnnmgzmc200000gn/T/dub_test_root-94ea7d66-86c6-4a27-9ede-42b0d74e6604.d src/gmp/dbgio.d src/gmp/f.d src/gmp/package.d src/gmp/q.d src/gmp/traits.d src/gmp/z.d -vcolumns
Linking...
dmd
-of.dub/build/gmp-d-test-library-unittest-posix.osx-x86_64-dmd_2074-6A4F59B4FBEFFE587575F03F4A8B5BD0/gmp-d-test-library .dub/build/gmp-d-test-library-unittest-posix.osx-x86_64-dmd_2074-6A4F59B4FBEFFE587575F03F4A8B5BD0/gmp-d-test-library.o ../../../.dub/packages/libgmp-1.0.0/libgmp/.dub/build/library-unittest-posix.osx-x86_64-dmd_2074-0CBFB25E65B46672F7CAF7CC5BABCE87/liblibgmp.a -L-lgmp -L-lc -g
Undefined symbols for architecture x86_64:
"free", referenced from:
_D3gmp1z3MpZ6__ctorMFNaNbNcNiNexAyakZS3gmp1z3MpZ in
gmp-d-test-library.o
_D3gmp1z3MpZ10fromStringMFNaNbNcNiNjNexAyakZS3gmp1z3MpZ in
gmp-d-test-library.o
(maybe you meant:
_D2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap8freeNodeFNbNiPS2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap4NodeZv, _D2gc4impl12conservative2gc3Gcx8log_freeMFNbPvZv , _D2gc4impl12conservative2gc15LargeObjectPool9freePagesMFNbmmZv , _D4core6memory2GC4freeFNaNbPvZv , _D2gc4impl12conservative2gc14ConservativeGC163__T9runLockedS63_D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZvS37_D2gc4impl12conservative2gc8freeTimelS37_D2gc4impl12conservative2gc8numFreeslTPvZ9runLockedMFNbKPvZv , _D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZv , _D2gc4impl12conservative2gc8freeTimel , _D2rt5minfo11ModuleGroup4freeMFZv , _gc_free , _D2gc4impl6manual2gc8ManualGC4freeMFNbPvZv , _D2rt7dwarfeh15ExceptionHeader4freeFPS2rt7dwarfeh15ExceptionHeaderZv , _D2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap8freeNodeFNbNiPS2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap4NodeZv , _D2gc4impl12conservati!
ve2gc4Pool12freePageBitsMFNbmKxG4mZv ,
_D2gc4impl12conservative2gc14ConservativeGC4freeMFNbPvZv )
"malloc", referenced from:
_D3gmp1z3MpZ19_allocStringzCopyOfMFNaNbNiNexAyaZPa in
gmp-d-test-library.o
(maybe you meant:
_D2gc4impl12conservative2gc3Gcx10log_mallocMFNbPvmZv,
_D2gc4impl6manual2gc8ManualGC6mallocMFNbmkxC8TypeInfoZPv ,
_D2gc4impl12conservative2gc14ConservativeGC207__T9runLockedS83_D2gc4impl12conservative2gc14ConservativeGC13reallocNoSyncMFNbPvmKkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTPvTmTkTmTxC8TypeInfoZ9runLockedMFNbKPvKmKkKmKxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC200__T9runLockedS79_D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTmTkTmTxC8TypeInfoZ9runLockedMFNbKmKkKmKxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC6mallocMFNbmkxC8TypeInfoZPv , _D2gc4impl12conservative2gc10mallocTimel , _D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPv , _D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv , _gc_malloc , _D2rt4util9container6common7xmallocFNbNimZPv )
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to
see invocation)
Error: linker exited with status 1
FAIL
.dub/build/gmp-d-test-library-unittest-posix.osx-x86_64-dmd_2074-6A4F59B4FBEFFE587575F03F4A8B5BD0/ gmp-d-test-library executable
dmd failed with exit code 1.