Opened 3 months ago
Last modified 2 months ago
#70609 assigned defect
perl5.34 fails to build on riscv64: undefined reference to `libintl_textdomain'
Reported by: | barracuda156 | Owned by: | mojca (Mojca Miklavec) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.10.0 |
Keywords: | linux, riscv64 | Cc: | |
Port: | perl5.34 |
Description
/usr/bin/clang -L/opt/local/lib -Wl,--enable-new-dtags -Wl,-rpath,/opt/local/lib -fstack-protector-strong -o miniperl \ opmini.o perlmini.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o caretx.o dquote.o time64.o miniperlmain.o -lpthread -ldl -lm -lutil -lc /usr/bin/riscv64-pine64-linux-ld: locale.o: in function `.LBB1_125': locale.c:(.text+0x83c): undefined reference to `libintl_textdomain' /usr/bin/riscv64-pine64-linux-ld: locale.c:(.text+0x844): undefined reference to `libintl_textdomain' clang-14: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [makefile:363: lib/buildcustomize.pl] Error 1 make: *** Waiting for unfinished jobs.... 390 warnings generated.
Any idea how to fix this?
Change History (6)
comment:1 follow-up: 5 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)
Owner: | set to mojca |
---|---|
Status: | new → assigned |
comment:2 follow-up: 3 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)
You could try this patch: https://lore.kernel.org/r/all/20210221174549.3764415-1-fontaine.fabrice@gmail.com/T/
comment:3 Changed 3 months ago by barracuda156
Replying to ryandesign:
You could try this patch: https://lore.kernel.org/r/all/20210221174549.3764415-1-fontaine.fabrice@gmail.com/T/
Thank you, I will try that.
Yes, I do have gettext installed by now, but something easily can be missing. This should not be considered a bug report against MacPorts, I just did not know what to do about that error. (We can’t file proper bug reports for non-MacOS systems at the moment, since unmodified MacPorts won’t even build.)
comment:4 Changed 2 months ago by barracuda156
Interestingly, this error happens with perl5.34
and perl5.32
, but not with perl5.30
and perl5.28
.
comment:5 Changed 2 months ago by barracuda156
Replying to ryandesign:
I don't see
-lintl
on the line that invokes clang as a linker. That would be required to link with the libintl library that contains that symbol. If you attach the main.log file maybe it will provide insight into why that flag was omitted though of course as you know we have no experience building anything on Linux. Do you have the gettext and gettext-runtime ports installed? The perl5.34 port doesn't declare a build dependency on gettext nor a library dependency on gettext-runtime so I guess it was not expected that it would use them, and it doesn't seem to use them on macOS.Here is an upstream bug report matching yours: https://github.com/Perl/perl5/issues/18467
How do I pass flags to perl? It seems to ignore standard ways of doing it.
Both adding -lintl
into existing configure arg and specifying via configure.ldflags
have no effect.
comment:6 Changed 2 months ago by barracuda156
Turns out, it conflicts with gettext libraries (build-time).
I don't see
-lintl
on the line that invokes clang as a linker. That would be required to link with the libintl library that contains that symbol. If you attach the main.log file maybe it will provide insight into why that flag was omitted though of course as you know we have no experience building anything on Linux. Do you have the gettext and gettext-runtime ports installed? The perl5.34 port doesn't declare a build dependency on gettext nor a library dependency on gettext-runtime so I guess it was not expected that it would use them, and it doesn't seem to use them on macOS.Here is an upstream bug report matching yours: https://github.com/Perl/perl5/issues/18467