haskell / haskell/text-icu

Problem with static linknig

Open
#39 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
50
Forks
41
PR merge metrics
No merged PRs in 30d

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](https://github.com/4e6/text-icu-static-example/blob/a1b5fb33fb508855617727375d82864819f42863/default.nix#L8-L16):

```
# 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](https://github.com/4e6/text-icu-static-example/blob/a1b5fb33fb508855617727375d82864819f42863/default.nix#L27-L33):

```
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](https://github.com/4e6/text-icu-static-example/blob/a1b5fb33fb508855617727375d82864819f42863/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?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.