Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DrNim build fails due to missing -lpthread #16050

Closed
lainy opened this issue Nov 19, 2020 · 1 comment
Closed

DrNim build fails due to missing -lpthread #16050

lainy opened this issue Nov 19, 2020 · 1 comment
Labels

Comments

@lainy
Copy link

lainy commented Nov 19, 2020

Building DrNim from devel and version-1-4 branches fails on Debian Buster and Arch Linux (did not test others).

Example

$ ./koch drnim

Current Output

Full link stage output (Debian Buster):

$ ./koch drnim
-- snipped a couple thousand lines for brevity --
Hint:  [Link]
/usr/bin/ld: dist/z3/build/libz3.a(scoped_timer.cpp.o): undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
/usr/bin/ld: //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++   -o /home/lain/Nim/bin/drnim  /home/lain/.cache/nim/drnim_d/stdlib_assertions.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_dollars.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_formatfloat.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_io.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_system.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_parseutils.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_math.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_algorithm.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_unicode.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_strutils.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_pathnorm.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_posix.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_times.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_os.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_parseopt.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_hashes.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_tables.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_packedsets.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@spathutils.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sropes.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@slineinfos.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_strtabs.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_sets.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@splatform.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sprefixmatches.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_strformat.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_terminal.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@soptions.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@swordrecg.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sidents.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sint128.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sast.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@srodutils.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sstrutils2.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@smsgs.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sastalgo.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@strees.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sllstream.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@snimlexbase.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@slexer.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@srenderer.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@stypes.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@scondsyms.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_streams.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_osproc.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_sha1.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_lexbase.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_parsejson.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_json.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sextccomp.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@snimblecmd.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sincremental.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@scommands.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sbtrees.nim.cpp.o /home/lain/.cache/nim/drnim_d/stdlib_md5.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@smodulegraphs.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@smagicsys.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sbitsets.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@snimsets.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssaturate.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sguards.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sparser.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sfilters.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sfilter_tmpl.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssyntaxes.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@smodulepaths.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sreorder.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@spasses.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@smodules.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssemfold.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svmdef.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssemdata.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@slinter.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@snimfix@sprettybase.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@slookups.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssemtypinst.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sparampatterns.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@slowerings.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssigmatch.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@simporter.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sprocfind.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@spragmas.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@stypeallowed.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sisolation_check.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svarpartitions.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssighashes.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sliftdestructors.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssempass2.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@scgmeth.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sliftlocals.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@slambdalifting.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sclosureiters.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@stransf.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svmgen.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svmdeps.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svmmarshal.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sgorgeimpl.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@smacrocacheimpl.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svmprofiler.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sevaltempl.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svmconv.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@svm.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@saliases.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@spatterns.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssemmacrosanity.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@spluginsupport.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@splugins@slocals.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@splugins@sitersgen.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@splugins@sactive.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sspawn.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@ssem.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@sscriptconfig.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@snimconf.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@scmdlinehelper.nim.cpp.o /home/lain/.cache/nim/drnim_d/@m..@scompiler@spassaux.nim.cpp.o /home/lain/.cache/nim/drnim_d/@mdrnim.nim.cpp.o  -lm -lm -lrt dist/z3/build/libz3.a   -ldl'
FAILURE

Note the same error occurs on Arch Linux as well.

Expected Output

The build should succeed.

Possible Solution

Adding -lpthread to the link arguments solves this.

Additional Information

Tested on Arch Linux and Debian Buster, both installed a few hours before filing this issue.
Tested on the following Nim versions:

$ nim -v
Nim Compiler Version 1.5.1 [Linux: amd64]
Compiled at 2020-11-19
Copyright (c) 2006-2020 by Andreas Rumpf

git hash: 1bcc3521371ec6a8c136e42d902a0be7c50d9745
active boot switches: -d:release
$ nim -v
Nim Compiler Version 1.4.0 [Linux: amd64]
Compiled at 2020-10-18
Copyright (c) 2006-2020 by Andreas Rumpf

git hash: bdcd87afca238a0a7b2c70971827cf9172817b12
active boot switches: -d:release
@ringabout
Copy link
Member

Threads are now the default, it should not happen now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants