Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#394 assembly code not PIC-friendly

Portability
open
nobody
Libraries (86)
5
2011-04-03
2011-04-03
Anonymous
No

lame-3.98.4/libmp3lame/i386/{choose_table,fft,fftsse,fft3dn}.nas contain code that cause text relocations. As a result, systems which compile everything as PIC consistently will run into issues when dealing with programs linked against libmp3lame.so.0.0.0.

$ scanelf -qT /usr/lib/libmp3lame.so.0.0.0
libmp3lame.so.0.0.0: (memory/data?) [0x3132E] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x31335] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x3135A] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x31361] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x31368] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x313EB] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x313F3] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x31460] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x3146A] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x31474] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x31482] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x3150C] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x3151D] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: (memory/data?) [0x31659] in (optimized out: previous fht_3DN) [0x31640]
libmp3lame.so.0.0.0: (memory/data?) [0x31676] in (optimized out: previous fht_3DN) [0x31640]
libmp3lame.so.0.0.0: (memory/data?) [0x31748] in (optimized out: previous fht_3DN) [0x31640]
libmp3lame.so.0.0.0: (memory/data?) [0x31762] in (optimized out: previous fht_3DN) [0x31640]
libmp3lame.so.0.0.0: (memory/data?) [0x3188E] in (optimized out: previous fht_3DN) [0x31640]
libmp3lame.so.0.0.0: (memory/data?) [0x318D9] in (optimized out: previous fht_E3DN) [0x318C0]
libmp3lame.so.0.0.0: (memory/data?) [0x318F6] in (optimized out: previous fht_E3DN) [0x318C0]
libmp3lame.so.0.0.0: (memory/data?) [0x319B8] in (optimized out: previous fht_E3DN) [0x318C0]
libmp3lame.so.0.0.0: (memory/data?) [0x31AEE] in (optimized out: previous fht_E3DN) [0x318C0]
libmp3lame.so.0.0.0: (memory/data?) [0x31B4C] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31B9A] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31BA8] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31BE4] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31BF9] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31C07] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31CF0] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31D04] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31D2B] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: (memory/data?) [0x31D39] in (optimized out: previous fht_SSE) [0x31B30]
libmp3lame.so.0.0.0: largetbl [0x3139E] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: largetbl [0x313C5] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: largetbl [0x313CF] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: t1l [0x31449] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: table23 [0x31505] in (optimized out: previous choose_table_MMX) [0x312D0]
libmp3lame.so.0.0.0: table56 [0x31516] in (optimized out: previous choose_table_MMX) [0x312D0]
/usr/lib/libmp3lame.so.0.0.0

Discussion