FS#45700 - [yasm] /usr/lib/yasm.a broken

Attached to Project: Arch Linux
Opened by Rémi Audebert (audebert) - Saturday, 18 July 2015, 14:58 GMT
Last edited by Jelle van der Waa (jelly) - Sunday, 06 January 2019, 12:52 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Levente Polyak (anthraxx)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

/usr/lib/yasm.a seems unlinkable, see this example:

$ cat > test.c <<EOF
#include <libyasm/module.h>

int main()
{
yasm_load_arch("x86");
return 0;
}
EOF
$ gcc -fPIC test.c -o test -lyasm
/usr/bin/ld: /usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/../../../../lib/libyasm.a(module.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/../../../../lib/libyasm.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status

Rebuilding the package seems to fix the issue.

Additional info:
* package version: yasm 1.3.0-1

$ md5sum /var/cache/pacman/pkg/yasm-1.3.0-1-x86_64.pkg.tar.xz
c96677f1d6d9daca104161eaf4f84ffe /var/cache/pacman/pkg/yasm-1.3.0-1-x86_64.pkg.tar.xz
This task depends upon

Closed by  Jelle van der Waa (jelly)
Sunday, 06 January 2019, 12:52 GMT
Reason for closing:  Deferred
Additional comments about closing:  Unable to reproduce, please re-open if it's reproducible.
Comment by Doug Newgard (Scimmia) - Saturday, 18 July 2015, 15:14 GMT
Get rid of -fPIC in your build command.
Comment by Rémi Audebert (audebert) - Saturday, 18 July 2015, 16:08 GMT
Same issue:

$ gcc test.c -o test -lyasm
/usr/bin/ld: /usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/../../../../lib/libyasm.a(module.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/../../../../lib/libyasm.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Comment by Eric Belanger (Snowman) - Wednesday, 22 July 2015, 01:17 GMT
I can't replicate. Maybe it's architecture dependent. What's the output of lscpu ?
Comment by Rémi Audebert (audebert) - Wednesday, 22 July 2015, 11:29 GMT
I tried on another system and could not reproduce either. Here is the lscpu of both machines.

broken$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
Stepping: 9
CPU MHz: 1604.109
CPU max MHz: 3900.0000
CPU min MHz: 1600.0000
BogoMIPS: 6786.92
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0-7

working$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 21
Model: 19
Model name: AMD A8-5550M APU with Radeon(tm) HD Graphics
Stepping: 1
CPU MHz: 1400.000
CPU max MHz: 2100.0000
CPU min MHz: 1400.0000
BogoMIPS: 4193.94
Virtualization: AMD-V
L1d cache: 16K
L1i cache: 64K
L2 cache: 2048K
NUMA node0 CPU(s): 0-3

Loading...