FS#62651 - [fribidi] 1.0.5-1 does not export fribidi_unicode_version symbol when built inside ABS

Attached to Project: Arch Linux
Opened by Mohammad Rasim (moham96) - Thursday, 16 May 2019, 20:51 GMT
Last edited by freswa (frederik) - Thursday, 20 February 2020, 21:23 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

when compiling the package inside ABS the resulting .so file is missing symbols like `fribidi_unicode_version` this is required by some packages to be compiled like in [0], after investigating this seems to be caused by the default optimization flags set in /etc/makepkg.conf (i.e CFLAGS and LDFLAGS) unsetting these variables result in an .so file that has the fribidi_unicode_version symbol but there are warnings like:

/usr/include/features.h:382:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
^~~~~~~

so I'm not sure if disabling optimization results in a working library after all


some investigations were done on the github page of text-bidi in [1]

[0] https://aur.archlinux.org/packages/perl-text-bidi/
[1] https://github.com/mkamensky/Text-Bidi/issues/9
This task depends upon

Closed by  freswa (frederik)
Thursday, 20 February 2020, 21:23 GMT
Reason for closing:  Upstream
Comment by loqs (loqs) - Thursday, 16 May 2019, 23:59 GMT Comment by Mohammad Rasim (moham96) - Tuesday, 21 May 2019, 06:50 GMT
@logs I don't know much about ELF, or meson hopefully the maintainer of the package can answer.
I did notice one more thing, the fribidi_unicode_version along with some other symbols are saved in the `symtab` table and not the `dynsym` table, the `symtab` table is stripped by ABS when it runs the `.so` through the strip utility so i had to modify the PKGBUILD one more time by disabling the strip option, like so

> options=(!strip)
Comment by Mohammad Rasim (moham96) - Friday, 24 May 2019, 10:24 GMT
using the ./autogen.sh and make to compile this package solves the issue (no need to disable optimizations or strip) so maybe this package needs to be switched to build using the gnu autotools and make
Comment by Mohammad Rasim (moham96) - Friday, 24 May 2019, 22:06 GMT
@logs your suspicion was right.
A fix is submitted for the fribidi upstream project to solve this issue under meson [0], in the meantime it would be nice to have this fix applied by the PKGBUILD as a patch since it will probably be a long time before the fribidi upstream maintainer will release a new version with the fix included


[0] https://github.com/fribidi/fribidi/pull/110

Loading...