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

redub build fails during linking when dub build passes #34

Open
nordlow opened this issue Nov 25, 2024 · 3 comments
Open

redub build fails during linking when dub build passes #34

nordlow opened this issue Nov 25, 2024 · 3 comments

Comments

@nordlow
Copy link

nordlow commented Nov 25, 2024

On Ubuntu 24.04, a private project of mine named mls fails to link via redub build as

Dependencies resolved - 18 ms "debug" using ~/.local/dlang/linux/bin64/dmd v2.110.0-beta.1-436-ge2778f49da [linux-x86_64] - leaves parallel
Built: blake3-d [unittest] - 123ms
Built: yyjson-d [unittest] - 622ms
Built: phobos-next [unittest] - 7547ms
Built: tcc-d2 - 360ms
Built: mls [unittest] - 1326ms
Linking Error at "mls". 
	Redub v1.17.17
	dmd 2.110.0-beta.1-436-ge2778f49da
	Failed with flags: 

	~/.local/dlang/linux/bin64/dmd -of~/.dub/.redub/0A6DB00BA3CAAE47/0A6DB00BA3CAAE47/mls ~/Work/mls/bin/mls.o '-Xcc=-fuse-ld=lld' -g -L--start-group -L~/Work/phobos-next/tcc-d2/libtcc-d2.a -L~/Work/phobos-next/bin/libphobos-next.a -L~/Work/yyjson-d/bin/libyyjson-d.a -L~/Work/blake3-d/bin/libblake3-d.a -L--end-group '-L-fuse-ld=lld' -L~/Work/mls//installs/tree-sitter/lib/libtree-sitter.a -L--export-dynamic -L-L~/Work/blake3-d//BLAKE3-build '-L-rpath=~/Work/blake3-d//BLAKE3-build' -L-L~/Work/yyjson-d//yyjson-build '-L-rpath=~/Work/yyjson-d//yyjson-build' -L~/Work/phobos-next//stringzilla-build/stringzilla.o '-L-lblake3' -L-lyyjson -L-ltcc
		  :
	ld.lld: error: duplicate symbol: nxt.git.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.git.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/git.d
>>>            git.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt3git5Depth3minySQuQsQq
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt3git5Depth3minySQuQsQq)
>>> defined at ~/Work/phobos-next/src/nxt/git.d
>>>            git.o:(.data+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt3git5Depth3maxySQuQsQq
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt3git5Depth3maxySQuQsQq)
>>> defined at ~/Work/phobos-next/src/nxt/git.d
>>>            git.o:(.data+0x4) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: initializer for nxt.git.RepoAndDir
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(initializer for nxt.git.RepoAndDir)
>>> defined at ~/Work/phobos-next/src/nxt/git.d
>>>            git.o:(.rodata+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.srx.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.srx.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/srx.d
>>>            srx.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.git
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.git)
>>> defined at ~/Work/phobos-next/src/nxt/git.d
>>>            git.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt3srx6Bounds3infym
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt3srx6Bounds3infym)
>>> defined at ~/Work/phobos-next/src/nxt/srx.d
>>>            srx.o:(.data+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.process.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.process.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt7process10ExitStatus2okySQBdQBcQx
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt7process10ExitStatus2okySQBdQBcQx)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.bss+0x3BC) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: initializer for nxt.process.Spawn
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(initializer for nxt.process.Spawn)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.rodata+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.process
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.process)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.logger.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.logger.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: initializer for nxt.logger.LogLevel
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(initializer for nxt.logger.LogLevel)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.data+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt6logger25g_nxtLoggerGlobalLogLevelyEQBoQBn8LogLevel
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt6logger25g_nxtLoggerGlobalLogLevelyEQBoQBn8LogLevel)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.data+0x1) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.logger
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.logger)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.path.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.path.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/path.d
>>>            path.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.srx
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.srx)
>>> defined at ~/Work/phobos-next/src/nxt/srx.d
>>>            srx.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.path
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.path)
>>> defined at ~/Work/phobos-next/src/nxt/path.d
>>>            path.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.result.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.result.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/result.d
>>>            result.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.result
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.result)
>>> defined at ~/Work/phobos-next/src/nxt/result.d
>>>            result.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
       cc ~/Work/mls/bin/mls.o -o ~/.dub/.redub/0A6DB00BA3CAAE47/0A6DB00BA3CAAE47/mls -g -m64 -fuse-ld=lld -Xlinker -fuse-ld=lld -Xlinker --export-dynamic -Xlinker -rpath=~/Work/blake3-d//BLAKE3-build -Xlinker -rpath=~/Work/yyjson-d//yyjson-build -Xlinker ~/Work/phobos-next//stringzilla-build/stringzilla.o -Xlinker --export-dynamic -Xlinker --start-group -Xlinker ~/Work/phobos-next/tcc-d2/libtcc-d2.a -Xlinker ~/Work/phobos-next/bin/libphobos-next.a -Xlinker ~/Work/yyjson-d/bin/libyyjson-d.a -Xlinker ~/Work/blake3-d/bin/libblake3-d.a -Xlinker --end-group -Xlinker ~/Work/mls//installs/tree-sitter/lib/libtree-sitter.a -L~/Work/blake3-d//BLAKE3-build -L~/Work/yyjson-d//yyjson-build -lblake3 -lyyjson -ltcc -L~/.local/dlang/linux/bin64/linux/lib64 -Xlinker -Bstatic -lphobos2 -Xlinker -Bdynamic -lpthread -lm -lrt -ldl 

Warning: If you think this is a bug on redub, do test with dub, if it works, do file an issue at https://github.com/MrcSnm/redub/issues/new/choose
Build Failure
Error Program exited with code 1

. The same project succesfully builds via dub build successfully as

Determined package version using GIT: mls ~main
Determined package version using GIT: blake3-d 0.1.14+commit.2.gdd0d590
  Found dependency blake3-d @../blake3-d
Note: Failed to determine version of package tcc-d2 at .. Assuming ~master.
  Found dependency tcc-d2 @../phobos-next/tcc-d2
Determined package version using GIT: phobos-next 0.6.17+commit.73.g1cf2adc
    Found dependency phobos-next @../phobos-next/
Determined package version using GIT: yyjson-d 0.1.7+commit.1.g4d9c847
      Found dependency yyjson-d @../yyjson-d
     Warning 
     Warning ## Warning for package mls, configuration unittest ##
     Warning 
     Warning The following compiler flags have been specified in the package description
     Warning file. They are handled by DUB and direct use in packages is discouraged.
     Warning Alternatively, you can set the DFLAGS environment variable to pass custom flags
     Warning to the compiler, or use one of the suggestions below:
     Warning 
     Warning -g: Call dub with --build=debug
     Warning -unittest: Call dub with --build=unittest
     Warning -debug: Call dub with --build=debug
     Warning 
Generating using build
Configuring dependent mls, deps:"blake3-d", "tcc-d2", "yyjson-d"
  Configuring dependent blake3-d, deps:
  Configuring dependent tcc-d2, deps:"phobos-next"
    Configuring dependent phobos-next, deps:"yyjson-d"
      Configuring dependent yyjson-d, deps:
    Starting Performing "debug" build using ~/.local/dlang/linux/bin64/dmd for x86_64.
  Up-to-date blake3-d 0.1.14+commit.2.gdd0d590: target for configuration [unittest] is up to date.
Using existing build in ~/.dub/cache/blake3-d/0.1.14+commit.2.gdd0d590/build/unittest-debug-VCeaauGaS9On4dvRtM_c-w.
Copying target from ~/.dub/cache/blake3-d/0.1.14+commit.2.gdd0d590/build/unittest-debug-VCeaauGaS9On4dvRtM_c-w/libblake3-d.a to ~/Work/blake3-d/bin
  Up-to-date yyjson-d 0.1.7+commit.1.g4d9c847: target for configuration [unittest] is up to date.
Using existing build in ~/.dub/cache/yyjson-d/0.1.7+commit.1.g4d9c847/build/unittest-debug-ucfqZn4Cfhwmr26Q112Iow.
Copying target from ~/.dub/cache/yyjson-d/0.1.7+commit.1.g4d9c847/build/unittest-debug-ucfqZn4Cfhwmr26Q112Iow/libyyjson-d.a to ~/Work/yyjson-d/bin
  Up-to-date phobos-next 0.6.17+commit.73.g1cf2adc: target for configuration [unittest] is up to date.
Using existing build in ~/.dub/cache/phobos-next/0.6.17+commit.73.g1cf2adc/build/unittest-debug-wT9m9fZ98jCpYzpyMUpelg.
Copying target from ~/.dub/cache/phobos-next/0.6.17+commit.73.g1cf2adc/build/unittest-debug-wT9m9fZ98jCpYzpyMUpelg/libphobos-next.a to ~/Work/phobos-next/bin
  Up-to-date tcc-d2 ~master: target for configuration [library] is up to date.
Using existing build in ~/.dub/cache/tcc-d2/~master/build/library-debug-0b72rinytZ6bCHsOSzppjw.
Copying target from ~/.dub/cache/tcc-d2/~master/build/library-debug-0b72rinytZ6bCHsOSzppjw/libtcc-d2.a to ~/Work/phobos-next/tcc-d2
File ../phobos-next/src/nxt/logger doesn't exist, triggering rebuild.
    Building mls ~main: building configuration [unittest]
   Pre-build Running commands
Running bash provision.sh
Using direct -l... flags for blake3, tcc, yyjson.
[cwd=~/Work/mls] ~/.local/dlang/linux/bin64/dmd -debug -g -unittest -w -version=Have_mls -version=Have_blake3_d -version=Have_tcc_d2 -version=Have_yyjson_d -version=Have_phobos_next -version=nxt_test -version=yyjson_test -Isrc -I../phobos-next/src -I../blake3-d/src/ -I../phobos-next/tcc-d2/src -I../yyjson-d/src ../phobos-next/src/nxt/effects.d ../phobos-next/src/nxt/file.d ../phobos-next/src/nxt/git.d ../phobos-next/src/nxt/lispy.d ../phobos-next/src/nxt/logger ../phobos-next/src/nxt/path.d ../phobos-next/src/nxt/process ../phobos-next/src/nxt/result.d ../phobos-next/src/nxt/srx.d ../phobos-next/src/nxt/stdio.d ../phobos-next/src/nxt/string_ex.d src/app.d src/dub.d src/mls.d src/ubs.d -Xcc=-fuse-ld=lld -preview=in -preview=fieldwise -preview=bitfields -preview=dip1000 -preview=dip1008 -preview=rvaluerefparam -checkaction=context -allinst -preview=in -preview=dip1000 -preview=dip1008 -checkaction=context -allinst -Xcc=-fuse-ld=lld -vcolumns -preview=in -dip1000 -vcolumns -preview=in -dip1000 -checkaction=context -allinst -preview=fieldwise -preview=rvaluerefparam -preview=bitfields -Xcc=-fuse-ld=lld -vcolumns -preview=dip1000 -preview=in -checkaction=context -allinst -Xcc=-fuse-ld=lld -vcolumns -preview=dip1000 -preview=in -checkaction=context -allinst -Xcc=-fuse-ld=lld -c -of~/.dub/cache/mls/~main/build/unittest-debug-a359euP2mEVxuj43887jOw/mls.o -vcolumns
     Linking mls
[cwd=~/Work/mls] ~/.local/dlang/linux/bin64/dmd -of~/.dub/cache/mls/~main/build/unittest-debug-a359euP2mEVxuj43887jOw/mls ~/.dub/cache/mls/~main/build/unittest-debug-a359euP2mEVxuj43887jOw/mls.o ../../.dub/cache/blake3-d/0.1.14+commit.2.gdd0d590/build/unittest-debug-VCeaauGaS9On4dvRtM_c-w/libblake3-d.a ../../.dub/cache/tcc-d2/~master/build/library-debug-0b72rinytZ6bCHsOSzppjw/libtcc-d2.a ../../.dub/cache/phobos-next/0.6.17+commit.73.g1cf2adc/build/unittest-debug-wT9m9fZ98jCpYzpyMUpelg/libphobos-next.a ../../.dub/cache/yyjson-d/0.1.7+commit.1.g4d9c847/build/unittest-debug-ucfqZn4Cfhwmr26Q112Iow/libyyjson-d.a -L--no-as-needed -L-fuse-ld=lld -L~/Work/mls/installs/tree-sitter/lib/libtree-sitter.a -L--export-dynamic -L-L~/Work/blake3-d/BLAKE3-build -L-rpath=~/Work/blake3-d/BLAKE3-build -L--export-dynamic -L~/Work/phobos-next/stringzilla-build/stringzilla.o -L-L~/Work/yyjson-d/yyjson-build -L-rpath=~/Work/yyjson-d/yyjson-build -L-L~/Work/yyjson-d/yyjson-build -L-rpath=~/Work/yyjson-d/yyjson-build -L-lblake3 -L-ltcc -L-lyyjson -g -Xcc=-fuse-ld=lld -Xcc=-fuse-ld=lld -Xcc=-fuse-ld=lld -Xcc=-fuse-ld=lld -Xcc=-fuse-ld=lld
Copying target from ~/.dub/cache/mls/~main/build/unittest-debug-a359euP2mEVxuj43887jOw/mls to ~/Work/mls/bin
    Finished To force a rebuild of up-to-date targets, run again with --force

I guess it might have to do with its dub.sdl contains use of sourceFiles in

name "mls"
targetType "executable"
targetPath "bin"

# TODO: Avoid depending on phobos-next:core for until phobos-next-core is created. Look in sdc/dub.json how it handles subPackages
importPaths "src" "../phobos-next/src"
sourceFiles "../phobos-next/src/nxt/path.d" "../phobos-next/src/nxt/file.d" "../phobos-next/src/nxt/git.d" "../phobos-next/src/nxt/process" "../phobos-next/src/nxt/logger" "../phobos-next/src/nxt/srx.d" "../phobos-next/src/nxt/result.d" "../phobos-next/src/nxt/effects.d" "../phobos-next/src/nxt/stdio.d" "../phobos-next/src/nxt/lispy.d" "../phobos-next/src/nxt/string_ex.d"
# dependency "phobos-next" path="../"
mainSourceFile "src/app.d"

dependency "blake3-d" path="../blake3-d"
dependency "yyjson-d" path="../yyjson-d"
dependency "tcc-d2" path="../phobos-next/tcc-d2" # TODO: apt install libtcc-dev on demand

# Building tree-sitter locally to get latest version having more commands available
# BUG?: Both `preBuildCommands` and `preRunCommands` is needed for `git clean -ffdx; dub test`
preBuildCommands "bash provision.sh" # ok because no-changes takes ~5ms
preRunCommands "bash provision.sh" # ok because no-changes takes ~5ms

# use better linker
dflags "-Xcc=-fuse-ld=lld"
lflags "-fuse-ld=lld"

# Disabled: Shared Library linking with libtree-sitter.so:
# lflags "-L$PACKAGE_DIR/installs/tree-sitter/lib" "-rpath=$PACKAGE_DIR/installs/tree-sitter/lib"
#libs "tree-sitter"

# Static linking of `libtree-sitter.a` to be sure the modified `struct TSNode` is used
lflags "$PACKAGE_DIR/installs/tree-sitter/lib/libtree-sitter.a"

dflags "-preview=in" "-preview=fieldwise" "-preview=bitfields" "-preview=dip1000" "-preview=dip1008" "-preview=rvaluerefparam" # TODO: "-preview=dip1021"

configuration "unittest" { # `redub` doesn't support custom `buildType`
   dflags "-g" "-checkaction=context" "-allinst" "-unittest"
   dflags "-fsanitize=address" platform="posix-ldc"
   dflags "-debug" platform="dmd"
   dflags "--d-debug" platform="ldc"
   lflags "--export-dynamic" platform="posix" # for ASan backtraces
}

buildType "unittest" {
   dflags "-g" "-checkaction=context" "-allinst" "-unittest"
   dflags "-fsanitize=address" platform="posix-ldc"
   dflags "-debug" platform="dmd"
   dflags "--d-debug" platform="ldc"
   lflags "--export-dynamic" platform="posix" # for ASan backtraces
}
@nordlow nordlow changed the title redub build fails during linking redub build fails during linking when dub build passes Nov 25, 2024
@MrcSnm
Copy link
Owner

MrcSnm commented Nov 25, 2024

Not really related to source files, but maybe, there is something making in your dub do not include source paths while redub IS including it.

I'll need the full verbose output, please post it here with the --force --verbose flags so it is easier to understand what is happening

@nordlow
Copy link
Author

nordlow commented Nov 25, 2024

Ok.

git clean -ffdx; redub build -v -f outputs

Parsing ~/Work/mls/dub.sdl at ~/Work/mls with : -c 
Added project mls to memory cache.
Parsing ~/Work/blake3-d/dub.sdl at ~/Work/blake3-d with : -c 
Parsing ~/Work/phobos-next/tcc-d2/dub.sdl at ~/Work/phobos-next/tcc-d2 with : -c 
Parsing ~/Work/yyjson-d/dub.sdl at ~/Work/yyjson-d with : -c 
Parsing ~/Work/phobos-next/dub.sdl at ~/Work/phobos-next with : -c 
Dependencies resolved - 9 ms "debug" using ~/.local/dlang/linux/bin64/dmd v2.110.0-beta.1-431-ge0bbbcdc47 [linux-x86_64] - leaves parallel
Built: blake3-d [unittest] - 83ms

	~/.local/dlang/linux/bin64/dmd '-color=on' -op -debug '-preview=in' '-preview=dip1000' '-preview=dip1008' -g '-checkaction=context' -allinst -unittest '-Xcc=-fuse-ld=lld' '-preview=fieldwise' '-preview=bitfields' '-preview=rvaluerefparam' '-version=Have_blake3_d' -I~/Work/blake3-d/src ~/Work/blake3-d/src/blake3/package.d -lib '-of=~/.dub/.redub/4181BE6DB73F1647/1A2E5FB1D2B01B32/libblake3-d.a' 

Built: yyjson-d [unittest] - 447ms

	~/.local/dlang/linux/bin64/dmd '-color=on' -op -vcolumns '-preview=dip1000' '-preview=in' -debug -g '-checkaction=context' -allinst -unittest -cov '-cov=ctfe' '-Xcc=-fuse-ld=lld' '-preview=fieldwise' '-preview=bitfields' '-preview=dip1008' '-preview=rvaluerefparam' '-dip1000' '-version=yyjson_test' '-version=nxt_test' '-version=Have_yyjson_d' -I~/Work/yyjson-d/src ~/Work/yyjson-d/src/yyjson/result.d ~/Work/yyjson-d/src/yyjson/package.d -lib '-of=~/.dub/.redub/4181BE6DB73F1647/EA49BFC9EFBB6B47/libyyjson-d.a' 

Built: phobos-next [unittest] - 5421ms

	~/.local/dlang/linux/bin64/dmd '-color=on' -op -vcolumns '-preview=in' '-dip1000' -debug -g '-checkaction=context' -allinst -unittest '-preview=fieldwise' '-preview=rvaluerefparam' '-preview=bitfields' '-Xcc=-fuse-ld=lld' '-preview=dip1000' '-preview=dip1008' -cov '-cov=ctfe' '-version=nxt_test' '-version=yyjson_test' '-version=Have_yyjson_d' '-version=Have_phobos_next' -I~/Work/phobos-next/src -I~/Work/yyjson-d/src ~/Work/phobos-next/src/nxt/numerals.d ~/Work/phobos-next/src/nxt/setops_ex.d ~/Work/phobos-next/src/nxt/traits_ex.d ~/Work/phobos-next/src/nxt/ipa.d ~/Work/phobos-next/src/nxt/uri.d ~/Work/phobos-next/src/nxt/color.d ~/Work/phobos-next/src/nxt/class_traits.d ~/Work/phobos-next/src/nxt/rational.d ~/Work/phobos-next/src/nxt/gettext.d ~/Work/phobos-next/src/nxt/iso_639_2.d ~/Work/phobos-next/src/nxt/reflection.d ~/Work/phobos-next/src/nxt/allocator_traits.d ~/Work/phobos-next/src/nxt/string_ex.d ~/Work/phobos-next/src/nxt/knuthhash64.d ~/Work/phobos-next/src/nxt/effects.d ~/Work/phobos-next/src/nxt/modulo.d ~/Work/phobos-next/src/nxt/fastcast.d ~/Work/phobos-next/src/nxt/diagnostics.d ~/Work/phobos-next/src/nxt/offset.d ~/Work/phobos-next/src/nxt/translation/package.d ~/Work/phobos-next/src/nxt/translation/google.d ~/Work/phobos-next/src/nxt/hybridsort.d ~/Work/phobos-next/src/nxt/persistence.d ~/Work/phobos-next/src/nxt/mmm.d ~/Work/phobos-next/src/nxt/dir.d ~/Work/phobos-next/src/nxt/find_ex.d ~/Work/phobos-next/src/nxt/unique_range.d ~/Work/phobos-next/src/nxt/behaviorism.d ~/Work/phobos-next/src/nxt/enum_ex.d ~/Work/phobos-next/src/nxt/construction.d ~/Work/phobos-next/src/nxt/dlang_traits.d ~/Work/phobos-next/src/nxt/borrowed.d ~/Work/phobos-next/src/nxt/stdio.d ~/Work/phobos-next/src/nxt/hash_functions.d ~/Work/phobos-next/src/nxt/appender_stack.d ~/Work/phobos-next/src/nxt/inplace_algorithm.d ~/Work/phobos-next/src/nxt/dip_traits.d ~/Work/phobos-next/src/nxt/meta_ex.d ~/Work/phobos-next/src/nxt/csunits.d ~/Work/phobos-next/src/nxt/conv_ex.d ~/Work/phobos-next/src/nxt/nullable_traits.d ~/Work/phobos-next/src/nxt/typedoc.d ~/Work/phobos-next/src/nxt/random.d ~/Work/phobos-next/src/nxt/sourced.d ~/Work/phobos-next/src/nxt/uri_algorithm.d ~/Work/phobos-next/src/nxt/clz.d ~/Work/phobos-next/src/nxt/algorithm/mutation.d ~/Work/phobos-next/src/nxt/algorithm/package.d ~/Work/phobos-next/src/nxt/algorithm/predicate.d ~/Work/phobos-next/src/nxt/algorithm/iteration.d ~/Work/phobos-next/src/nxt/algorithm/sortn.d ~/Work/phobos-next/src/nxt/algorithm/comparison/lcss.d ~/Work/phobos-next/src/nxt/algorithm/comparison/package.d ~/Work/phobos-next/src/nxt/algorithm/comparison/lcs.d ~/Work/phobos-next/src/nxt/algorithm/searching.d ~/Work/phobos-next/src/nxt/products.d ~/Work/phobos-next/src/nxt/nesses.d ~/Work/phobos-next/src/nxt/unsafe.d ~/Work/phobos-next/src/nxt/packed_string.d ~/Work/phobos-next/src/nxt/predicates.d ~/Work/phobos-next/src/nxt/flatten_trait.d ~/Work/phobos-next/src/nxt/numeric_ex.d ~/Work/phobos-next/src/nxt/bound.d ~/Work/phobos-next/src/nxt/sort_ex.d ~/Work/phobos-next/src/nxt/capitalization.d ~/Work/phobos-next/src/nxt/ada_defs.d ~/Work/phobos-next/src/nxt/expected.d ~/Work/phobos-next/src/nxt/bit_traits.d ~/Work/phobos-next/src/nxt/result.d ~/Work/phobos-next/src/nxt/string_traits.d ~/Work/phobos-next/src/nxt/emplace_all.d ~/Work/phobos-next/src/nxt/mmfile_ex.d ~/Work/phobos-next/src/nxt/wideint.d ~/Work/phobos-next/src/nxt/sumo_kif.d ~/Work/phobos-next/src/nxt/package.d ~/Work/phobos-next/src/nxt/lifetime.d ~/Work/phobos-next/src/nxt/gc_traits.d ~/Work/phobos-next/src/nxt/lazy_regex.d ~/Work/phobos-next/src/nxt/aggregate_layout.d ~/Work/phobos-next/src/nxt/digest/blake3.d ~/Work/phobos-next/src/nxt/digest/package.d ~/Work/phobos-next/src/nxt/digest/tiger.d ~/Work/phobos-next/src/nxt/digest/whirlpool.d ~/Work/phobos-next/src/nxt/digest/adler.d ~/Work/phobos-next/src/nxt/digest/fnv.d ~/Work/phobos-next/src/nxt/packed_variant.d ~/Work/phobos-next/src/nxt/cconv.d ~/Work/phobos-next/src/nxt/storage.d ~/Work/phobos-next/src/nxt/conv.d ~/Work/phobos-next/src/nxt/lingua.d ~/Work/phobos-next/src/nxt/json.d ~/Work/phobos-next/src/nxt/codec.d ~/Work/phobos-next/src/nxt/overlapping.d ~/Work/phobos-next/src/nxt/process.d ~/Work/phobos-next/src/nxt/path.d ~/Work/phobos-next/src/nxt/digest_ex.d ~/Work/phobos-next/src/nxt/hungarian.d ~/Work/phobos-next/src/nxt/cpuid_ex.d ~/Work/phobos-next/src/nxt/inplace_substitution.d ~/Work/phobos-next/src/nxt/syllables.d ~/Work/phobos-next/src/nxt/skip_ex.d ~/Work/phobos-next/src/nxt/elfdoc.d ~/Work/phobos-next/src/nxt/serialization.d ~/Work/phobos-next/src/nxt/borrown.d ~/Work/phobos-next/src/nxt/memuse.d ~/Work/phobos-next/src/nxt/iso_639_1.d ~/Work/phobos-next/src/nxt/concatenation.d ~/Work/phobos-next/src/nxt/chunking.d ~/Work/phobos-next/src/nxt/array_help.d ~/Work/phobos-next/src/nxt/ties.d ~/Work/phobos-next/src/nxt/filters.d ~/Work/phobos-next/src/nxt/sumo.d ~/Work/phobos-next/src/nxt/class_range.d ~/Work/phobos-next/src/nxt/align_reorder.d ~/Work/phobos-next/src/nxt/algorithm_ex.d ~/Work/phobos-next/src/nxt/quoting.d ~/Work/phobos-next/src/nxt/pythagorean_triples.d ~/Work/phobos-next/src/nxt/filetype.d ~/Work/phobos-next/src/nxt/qcmeman.d ~/Work/phobos-next/src/nxt/stemming.d ~/Work/phobos-next/src/nxt/logic.d ~/Work/phobos-next/src/nxt/probing.d ~/Work/phobos-next/src/nxt/bijections.d ~/Work/phobos-next/src/nxt/container/dense_map.d ~/Work/phobos-next/src/nxt/container/suffix_tree.d ~/Work/phobos-next/src/nxt/container/static_dense_set.d ~/Work/phobos-next/src/nxt/container/cyclic.d ~/Work/phobos-next/src/nxt/container/hybrid_array.d ~/Work/phobos-next/src/nxt/container/static_string.d ~/Work/phobos-next/src/nxt/container/traits.d ~/Work/phobos-next/src/nxt/container/variant_arrays.d ~/Work/phobos-next/src/nxt/container/dense_set.d ~/Work/phobos-next/src/nxt/container/package.d ~/Work/phobos-next/src/nxt/container/trie.d ~/Work/phobos-next/src/nxt/container/flat_hashmap.d ~/Work/phobos-next/src/nxt/container/soa.d ~/Work/phobos-next/src/nxt/container/static_dense_map.d ~/Work/phobos-next/src/nxt/container/nary_tree.d ~/Work/phobos-next/src/nxt/container/store.d ~/Work/phobos-next/src/nxt/container/hybrid_hashmap.d ~/Work/phobos-next/src/nxt/container/static_modarray.d ~/Work/phobos-next/src/nxt/container/array_map.d ~/Work/phobos-next/src/nxt/container/common.d ~/Work/phobos-next/src/nxt/container/static_bitarray.d ~/Work/phobos-next/src/nxt/container/sso_array.d ~/Work/phobos-next/src/nxt/container/static_array.d ~/Work/phobos-next/src/nxt/container/sorted.d ~/Work/phobos-next/src/nxt/container/array_store.d ~/Work/phobos-next/src/nxt/container/dynamic_array.d ~/Work/phobos-next/src/nxt/container/fixed_dynamic_array.d ~/Work/phobos-next/src/nxt/container/bitarray.d ~/Work/phobos-next/src/nxt/container/tree.d ~/Work/phobos-next/src/nxt/container/bimap.d ~/Work/phobos-next/src/nxt/container/bucket_array.d ~/Work/phobos-next/src/nxt/dbgio.d ~/Work/phobos-next/src/nxt/line_column.d ~/Work/phobos-next/src/nxt/io/package.d ~/Work/phobos-next/src/nxt/io/format.d ~/Work/phobos-next/src/nxt/io/dbg.d ~/Work/phobos-next/src/nxt/io/sink.d ~/Work/phobos-next/src/nxt/io/uda.d ~/Work/phobos-next/src/nxt/mml.d ~/Work/phobos-next/src/nxt/deepdup.d ~/Work/phobos-next/src/nxt/casing.d ~/Work/phobos-next/src/nxt/packed.d ~/Work/phobos-next/src/nxt/static_regex.d ~/Work/phobos-next/src/nxt/notnull.d ~/Work/phobos-next/src/nxt/assert_ex.d ~/Work/phobos-next/src/nxt/file.d ~/Work/phobos-next/src/nxt/masking.d ~/Work/phobos-next/src/nxt/suppressing.d ~/Work/phobos-next/src/nxt/region.d ~/Work/phobos-next/src/nxt/char_traits.d ~/Work/phobos-next/src/nxt/datetime_ex.d ~/Work/phobos-next/src/nxt/lsp/package.d ~/Work/phobos-next/src/nxt/lsp/messages.d ~/Work/phobos-next/src/nxt/patching.d ~/Work/phobos-next/src/nxt/optional.d ~/Work/phobos-next/src/nxt/combinations.d ~/Work/phobos-next/src/nxt/appending.d ~/Work/phobos-next/src/nxt/cli.d ~/Work/phobos-next/src/nxt/getopt_ex.d ~/Work/phobos-next/src/nxt/integer_sorting.d ~/Work/phobos-next/src/nxt/bitarray_algorithm.d ~/Work/phobos-next/src/nxt/sso_string.d ~/Work/phobos-next/src/nxt/visual.d ~/Work/phobos-next/src/nxt/visiting.d ~/Work/phobos-next/src/nxt/math_ex.d ~/Work/phobos-next/src/nxt/srx.d ~/Work/phobos-next/src/nxt/static_array_algorithm.d ~/Work/phobos-next/src/nxt/uncopyable_sample.d ~/Work/phobos-next/src/nxt/slicing.d ~/Work/phobos-next/src/nxt/static_iota.d ~/Work/phobos-next/src/nxt/digestion.d ~/Work/phobos-next/src/nxt/magics.d ~/Work/phobos-next/src/nxt/conv_itos.d ~/Work/phobos-next/src/nxt/soa_petar_kirov.d ~/Work/phobos-next/src/nxt/bcmm.d ~/Work/phobos-next/src/nxt/permutations.d ~/Work/phobos-next/src/nxt/git.d ~/Work/phobos-next/src/nxt/array_traits.d ~/Work/phobos-next/src/nxt/logger.d ~/Work/phobos-next/src/nxt/geodetic.d ~/Work/phobos-next/src/nxt/ixes.d ~/Work/phobos-next/src/nxt/rdf.d ~/Work/phobos-next/src/nxt/byline.d ~/Work/phobos-next/src/nxt/horspool.d ~/Work/phobos-next/src/nxt/bitop_ex.d ~/Work/phobos-next/src/nxt/dicom.d ~/Work/phobos-next/src/nxt/attributes.d ~/Work/phobos-next/src/nxt/assuming.d ~/Work/phobos-next/src/nxt/w3c.d ~/Work/phobos-next/src/nxt/benchmark.d ~/Work/phobos-next/src/nxt/xxhash64.d ~/Work/phobos-next/src/nxt/prime_modulo.d ~/Work/phobos-next/src/nxt/agnostics.d ~/Work/phobos-next/src/nxt/vector_traits.d ~/Work/phobos-next/src/nxt/range_ex.d ~/Work/phobos-next/src/nxt/graph.d ~/Work/phobos-next/src/nxt/limits.d ~/Work/phobos-next/src/nxt/mathml.d ~/Work/phobos-next/src/nxt/leb128.d ~/Work/phobos-next/src/nxt/substitution.d ~/Work/phobos-next/src/nxt/geometry.d ~/Work/phobos-next/src/nxt/variant.d ~/Work/phobos-next/src/nxt/fancyio.d ~/Work/phobos-next/src/nxt/owned.d ~/Work/phobos-next/src/nxt/mangling.d ~/Work/phobos-next/src/nxt/address.d ~/Work/phobos-next/src/nxt/enums.d ~/Work/phobos-next/src/nxt/parallelism_ex.d ~/Work/phobos-next/src/nxt/maxsize_trait.d ~/Work/phobos-next/src/nxt/lispy.d ~/Work/phobos-next/src/nxt/ansi_escape.d ~/Work/phobos-next/src/nxt/fast_appender.d ~/Work/phobos-next/src/nxt/functional_ex.d ~/Work/phobos-next/src/nxt/reduction.d ~/Work/phobos-next/src/nxt/sampling.d ~/Work/phobos-next/src/nxt/pcg.d ~/Work/phobos-next/src/nxt/semver.d ~/Work/phobos-next/src/nxt/typecons/cow.d ~/Work/phobos-next/src/nxt/typecons/package.d -lib '-of=~/.dub/.redub/4181BE6DB73F1647/DC9089723A609557/libphobos-next.a' 

Built: tcc-d2 - 267ms

	~/.local/dlang/linux/bin64/dmd '-color=on' -op -vcolumns '-preview=in' '-dip1000' '-Xcc=-fuse-ld=lld' '-preview=fieldwise' '-preview=bitfields' '-preview=dip1000' '-preview=dip1008' '-preview=rvaluerefparam' -debug -g '-checkaction=context' -allinst -unittest -cov '-cov=ctfe' '-version=nxt_test' '-version=yyjson_test' '-version=Have_yyjson_d' '-version=Have_phobos_next' '-version=Have_tcc_d2' -I~/Work/phobos-next/tcc-d2/src -I~/Work/phobos-next/src -I~/Work/yyjson-d/src ~/Work/phobos-next/tcc-d2/src/deimos/libtcc.d ~/Work/phobos-next/tcc-d2/src/tcc.d -lib '-of=~/.dub/.redub/4181BE6DB73F1647/F7FED6711EE78ED6/libtcc-d2.a' 

Built: mls [unittest] - 949ms

	~/.local/dlang/linux/bin64/dmd '-color=on' -op '-Xcc=-fuse-ld=lld' '-preview=in' '-preview=fieldwise' '-preview=bitfields' '-preview=dip1000' '-preview=dip1008' '-preview=rvaluerefparam' -debug -g '-checkaction=context' -allinst -unittest -vcolumns -cov '-cov=ctfe' '-dip1000' '-version=Have_blake3_d' '-version=yyjson_test' '-version=nxt_test' '-version=Have_yyjson_d' '-version=Have_phobos_next' '-version=Have_tcc_d2' '-version=Have_mls' -I~/Work/mls/src -I~/Work/phobos-next/src -I~/Work/blake3-d/src -I~/Work/yyjson-d/src -I~/Work/phobos-next/tcc-d2/src ~/Work/mls/src/ubs.d ~/Work/mls/src/mls.d ~/Work/mls/src/dub.d ~/Work/mls/src/app.d ~/Work/phobos-next/src/nxt/path.d ~/Work/phobos-next/src/nxt/file.d ~/Work/phobos-next/src/nxt/git.d ~/Work/phobos-next/src/nxt/process ~/Work/phobos-next/src/nxt/logger ~/Work/phobos-next/src/nxt/srx.d ~/Work/phobos-next/src/nxt/result.d ~/Work/phobos-next/src/nxt/effects.d ~/Work/phobos-next/src/nxt/stdio.d ~/Work/phobos-next/src/nxt/lispy.d ~/Work/phobos-next/src/nxt/string_ex.d -c '-of=~/.dub/.redub/4181BE6DB73F1647/4181BE6DB73F1647/mls.o' 

Linking Error at "mls". 
	Redub v1.17.17
	dmd 2.110.0-beta.1-431-ge0bbbcdc47
	Failed with flags: 

	~/.local/dlang/linux/bin64/dmd -of~/.dub/.redub/4181BE6DB73F1647/4181BE6DB73F1647/mls ~/Work/mls/bin/mls.o '-Xcc=-fuse-ld=lld' -g -L--start-group -L~/Work/phobos-next/tcc-d2/libtcc-d2.a -L~/Work/phobos-next/bin/libphobos-next.a -L~/Work/yyjson-d/bin/libyyjson-d.a -L~/Work/blake3-d/bin/libblake3-d.a -L--end-group '-L-fuse-ld=lld' -L~/Work/mls//installs/tree-sitter/lib/libtree-sitter.a -L--export-dynamic -L-L~/Work/blake3-d//BLAKE3-build '-L-rpath=~/Work/blake3-d//BLAKE3-build' -L-L~/Work/yyjson-d//yyjson-build '-L-rpath=~/Work/yyjson-d//yyjson-build' -L~/Work/phobos-next//stringzilla-build/stringzilla.o '-L-lblake3' -L-lyyjson -L-ltcc
		  :
	ld.lld: error: duplicate symbol: nxt.result.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.result.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/result.d
>>>            result.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.result
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.result)
>>> defined at ~/Work/phobos-next/src/nxt/result.d
>>>            result.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.path.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.path.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/path.d
>>>            path.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.process.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.process.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt7process10ExitStatus2okySQBdQBcQx
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt7process10ExitStatus2okySQBdQBcQx)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.bss+0x3BC) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: initializer for nxt.process.Spawn
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(initializer for nxt.process.Spawn)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.rodata+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.process
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.process)
>>> defined at ~/Work/phobos-next/src/nxt/process.d
>>>            process.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.path
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.path)
>>> defined at ~/Work/phobos-next/src/nxt/path.d
>>>            path.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.file.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.file.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/file.d
>>>            file.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.srx.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.srx.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/srx.d
>>>            srx.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt3srx6Bounds3infym
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt3srx6Bounds3infym)
>>> defined at ~/Work/phobos-next/src/nxt/srx.d
>>>            srx.o:(.data+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: nxt.logger.__coverage
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(nxt.logger.__coverage)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.bss+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: initializer for nxt.logger.LogLevel
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(initializer for nxt.logger.LogLevel)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.data+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: _D3nxt6logger25g_nxtLoggerGlobalLogLevelyEQBoQBn8LogLevel
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(_D3nxt6logger25g_nxtLoggerGlobalLogLevelyEQBoQBn8LogLevel)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.data+0x1) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.logger
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.logger)
>>> defined at ~/Work/phobos-next/src/nxt/logger.d
>>>            logger.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.file
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.file)
>>> defined at ~/Work/phobos-next/src/nxt/file.d
>>>            file.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a

ld.lld: error: duplicate symbol: ModuleInfo for nxt.srx
>>> defined at ~/Work/phobos-next/src/nxt/string_ex.d
>>>            ~/Work/mls/bin/mls.o:(ModuleInfo for nxt.srx)
>>> defined at ~/Work/phobos-next/src/nxt/srx.d
>>>            srx.o:(.data.rel.ro+0x0) in archive ~/Work/phobos-next/bin/libphobos-next.a
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
       cc ~/Work/mls/bin/mls.o -o ~/.dub/.redub/4181BE6DB73F1647/4181BE6DB73F1647/mls -g -m64 -fuse-ld=lld -Xlinker -fuse-ld=lld -Xlinker --export-dynamic -Xlinker -rpath=~/Work/blake3-d//BLAKE3-build -Xlinker -rpath=~/Work/yyjson-d//yyjson-build -Xlinker ~/Work/phobos-next//stringzilla-build/stringzilla.o -Xlinker --export-dynamic -Xlinker --start-group -Xlinker ~/Work/phobos-next/tcc-d2/libtcc-d2.a -Xlinker ~/Work/phobos-next/bin/libphobos-next.a -Xlinker ~/Work/yyjson-d/bin/libyyjson-d.a -Xlinker ~/Work/blake3-d/bin/libblake3-d.a -Xlinker --end-group -Xlinker ~/Work/mls//installs/tree-sitter/lib/libtree-sitter.a -L~/Work/blake3-d//BLAKE3-build -L~/Work/yyjson-d//yyjson-build -lblake3 -lyyjson -ltcc -L~/.local/dlang/linux/bin64/linux/lib64 -Xlinker -Bstatic -lphobos2 -Xlinker -Bdynamic -lpthread -lm -lrt -ldl 

Warning: If you think this is a bug on redub, do test with dub, if it works, do file an issue at https://github.com/MrcSnm/redub/issues/new/choose
Build Failure
Error Program exited with code 1

@MrcSnm
Copy link
Owner

MrcSnm commented Nov 25, 2024

Ok so both mls and phobos next are building the same files, why are you specifying source files in the mls package?

Also please post theh dub --force --verbose output

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

No branches or pull requests

2 participants