-
Notifications
You must be signed in to change notification settings - Fork 41
Problem with static linknig #39
Copy link
Copy link
Open
Description
I'm trying to create a static executable which depends on text-icu.
Here is the minified example https://github.com/4e6/text-icu-static-example
To enable static linking, I build icu with --enable-static flag here:
# http://userguide.icu-project.org/packaging#TOC-Link-to-ICU-statically
icu-static = pkgs.icu.overrideAttrs (attrs: {
dontDisableStatic = true;
configureFlags = (attrs.configureFlags or "") + " --enable-static";
outputs = attrs.outputs ++ [ "static" ];
postInstall = ''
mkdir -p $static/lib
mv -v lib/*.a $static/lib
'' + (attrs.postInstall or "");
});
And add following ghc options here:
configureFlags = [
"--ghc-option=-optl=-static"
"--ghc-option=-optl=-pthread"
"--ghc-option=-optl=-L${pkgs.glibc.static}/lib"
"--ghc-option=-optl=-L${pkgs.gmp6.override { withStatic = true; }}/lib"
"--ghc-option=-optl=-L${icu-static.static}/lib"
];
As a result of nix-build ., I'm getting a lot of errors about undefined references, see nix-build.log:
/nix/store/2h1il2pyfh20kc5rh7vnp5a564alxr21-icu4c-59.1-static/lib/libicui18n.a(regexcmp.ao):(.text+0x7805): more undefined references to `icu_59::UVector64::setElementAt(long, int)' follow
/nix/store/2h1il2pyfh20kc5rh7vnp5a564alxr21-icu4c-59.1-static/lib/libicui18n.a(regexcmp.ao): In function `icu_59::RegexCompile::compile(UText*, UParseError&, UErrorCode&)':
(.text+0x8355): undefined reference to `__cxa_throw_bad_array_new_length'
/nix/store/2h1il2pyfh20kc5rh7vnp5a564alxr21-icu4c-59.1-static/lib/libicui18n.a(regexcmp.ao):(.data.rel.ro._ZTIN6icu_5912RegexCompileE[_ZTIN6icu_5912RegexCompileE]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
collect2: error: ld returned 1 exit status
`cc' failed in phase `Linker'. (Exit code: 1)
This setup works with other libraries but fails with text-icu. Any ideas on what I'm doing wrong?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels