Must compile with -fPIC flag on Linux x64, results with crash on run time: free(): invalid pointer: 0x00007f6e8c04c5c0

21 views
Skip to first unread message

barak...@gmail.com

unread,
May 22, 2018, 6:09:10 AM5/22/18
to LibTom Projects
Hello

When I compile libtomcrypt on Linux x86 I can link it with my shared library as is without changing the make file. Then x86 version works fine on all Linux versions. When I try it with x64 version I get linking erro indicating that libtomcrypt must be compiled with -fPIC flag

libexec/gcc/x86_64-redhat-linux/4.8.2/ld: /usr/local/lib/Athena/libtomcrypt.a(aes.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/Athena/libtomcrypt.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status

When I add -fPIC flag to the make file my library compiled correctly but I have a run time crash

*** Error in `/home/athena/Dev/PkcsTest/build-QtPkcsTest-Desktop_Qt_4_8_7_GCC_64bit-Debug/QtPkcsTest': free(): invalid pointer: 0x00007f6e8c04c5c0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7908b)[0x7f6e8d67a08b]
/lib/x86_64-linux-gnu/libc.so.6(+0x82c3a)[0x7f6e8d683c3a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f6e8d687d2c]
/usr/lib/x64-athena/libASEP11.so(_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE+0x142)[0x7f6e8bb86d82]
/usr/lib/x64-athena/libASEP11.so(_ZNSt6locale5_ImplC1Em+0x1e3)[0x7f6e8bb84e53]
/usr/lib/x64-athena/libASEP11.so(_ZNSt6locale18_S_initialize_onceEv+0x15)[0x7f6e8bb85dc5]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xec59)[0x7f6e8d3f1c59]
/usr/lib/x64-athena/libASEP11.so(_ZNSt6locale13_S_initializeEv+0x21)[0x7f6e8bb85e11]
/usr/lib/x64-athena/libASEP11.so(_ZNSt6localeC1Ev+0x13)[0x7f6e8bb85e53]
/usr/lib/x64-athena/libASEP11.so(_ZNSt8ios_base4InitC1Ev+0xbc)[0x7f6e8bb871dc]
/usr/lib/x64-athena/libASEP11.so(+0x42d518)[0x7f6e8b749518]
/usr/lib/x64-athena/libASEP11.so(+0x42d623)[0x7f6e8b749623]
/lib64/ld-linux-x86-64.so.2(+0x109ca)[0x7f6e8e66f9ca]
/lib64/ld-linux-x86-64.so.2(+0x10adb)[0x7f6e8e66fadb]
/lib64/ld-linux-x86-64.so.2(+0x15a76)[0x7f6e8e674a76]
/lib64/ld-linux-x86-64.so.2(+0x10874)[0x7f6e8e66f874]
/lib64/ld-linux-x86-64.so.2(+0x15059)[0x7f6e8e674059]
/lib/x86_64-linux-gnu/libdl.so.2(+0xee9)[0x7f6e8e45bee9]
/lib64/ld-linux-x86-64.so.2(+0x10874)[0x7f6e8e66f874]
/lib/x86_64-linux-gnu/libdl.so.2(+0x1581)[0x7f6e8e45c581]
/lib/x86_64-linux-gnu/libdl.so.2(dlopen+0x32)[0x7f6e8e45bf82]
/home/athena/Dev/PkcsTest/build-QtPkcsTest-Desktop_Qt_4_8_7_GCC_64bit-Debug/QtPkcsTest(+0xf01)[0x5614368fef01]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f6e8d6213f1]
/home/athena/Dev/PkcsTest/build-QtPkcsTest-Desktop_Qt_4_8_7_GCC_64bit-Debug/QtPkcsTest(+0xd9a)[0x5614368fed9a]
======= Memory map: ========
5614368fe000-561436901000 r-xp 00000000 08:01 2493089                    /home/athena/Dev/PkcsTest/build-QtPkcsTest-Desktop_Qt_4_8_7_GCC_64bit-Debug/QtPkcsTest
561436b00000-561436b01000 r--p 00002000 08:01 2493089                    /home/athena/Dev/PkcsTest/build-QtPkcsTest-Desktop_Qt_4_8_7_GCC_64bit-Debug/QtPkcsTest
561436b01000-561436b02000 rw-p 00003000 08:01 2493089                    /home/athena/Dev/PkcsTest/build-QtPkcsTest-Desktop_Qt_4_8_7_GCC_64bit-Debug/QtPkcsTest
561436e58000-561436e9c000 rw-p 00000000 00:00 0                          [heap]
7f6e84000000-7f6e84021000 rw-p 00000000 00:00 0 
7f6e84021000-7f6e88000000 ---p 00000000 00:00 0 
7f6e8b111000-7f6e8b11b000 r-xp 00000000 08:01 1054005                    /lib/x86_64-linux-gnu/libpcsclite.so.1.0.0
7f6e8b11b000-7f6e8b31a000 ---p 0000a000 08:01 1054005                    /lib/x86_64-linux-gnu/libpcsclite.so.1.0.0
7f6e8b31a000-7f6e8b31b000 r--p 00009000 08:01 1054005                    /lib/x86_64-linux-gnu/libpcsclite.so.1.0.0
7f6e8b31b000-7f6e8b31c000 rw-p 0000a000 08:01 1054005                    /lib/x86_64-linux-gnu/libpcsclite.so.1.0.0
7f6e8b31c000-7f6e8bdc6000 r-xp 00000000 08:01 544341                     /usr/lib/x64-athena/libASEP11.so
7f6e8bdc6000-7f6e8bfc5000 ---p 00aaa000 08:01 544341                     /usr/lib/x64-athena/libASEP11.so
7f6e8bfc5000-7f6e8c036000 rw-p 00aa9000 08:01 544341                     /usr/lib/x64-athena/libASEP11.so
7f6e8c036000-7f6e8c04e000 rw-p 00000000 00:00 0 
7f6e8c04e000-7f6e8c051000 r-xp 00000000 08:01 799185                     /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so
7f6e8c051000-7f6e8c250000 ---p 00003000 08:01 799185                     /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so
7f6e8c250000-7f6e8c251000 r--p 00002000 08:01 799185                     /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so
7f6e8c251000-7f6e8c252000 rw-p 00003000 08:01 799185                     /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so
7f6e8c252000-7f6e8c52d000 r--p 00000000 08:01 524309                     /usr/lib/locale/locale-archive
7f6e8c52d000-7f6e8c59f000 r-xp 00000000 08:01 1054003                    /lib/x86_64-linux-gnu/libpcre.so.3.13.3
7f6e8c59f000-7f6e8c79e000 ---p 00072000 08:01 1054003                    /lib/x86_64-linux-gnu/libpcre.so.3.13.3
7f6e8c79e000-7f6e8c79f000 r--p 00071000 08:01 1054003                    /lib/x86_64-linux-gnu/libpcre.so.3.13.3
7f6e8c79f000-7f6e8c7a0000 rw-p 00072000 08:01 1054003                    /lib/x86_64-linux-gnu/libpcre.so.3.13.3
7f6e8c7a0000-7f6e8c8a8000 r-xp 00000000 08:01 1063307                    /lib/x86_64-linux-gnu/libm-2.24.so
7f6e8c8a8000-7f6e8caa7000 ---p 00108000 08:01 1063307                    /lib/x86_64-linux-gnu/libm-2.24.so
7f6e8caa7000-7f6e8caa8000 r--p 00107000 08:01 1063307                    /lib/x86_64-linux-gnu/libm-2.24.so
7f6e8caa8000-7f6e8caa9000 rw-p 00108000 08:01 1063307                    /lib/x86_64-linux-gnu/libm-2.24.so
7f6e8caa9000-7f6e8cbba000 r-xp 00000000 08:01 1053919                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.5200.0
7f6e8cbba000-7f6e8cdba000 ---p 00111000 08:01 1053919                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.5200.0
7f6e8cdba000-7f6e8cdbb000 r--p 00111000 08:01 1053919                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.5200.0
7f6e8cdbb000-7f6e8cdbc000 rw-p 00112000 08:01 1053919                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.5200.0
7f6e8cdbc000-7f6e8cdbd000 rw-p 00000000 00:00 0 
7f6e8cdbd000-7f6e8cdc4000 r-xp 00000000 08:01 1063320                    /lib/x86_64-linux-gnu/librt-2.24.so
7f6e8cdc4000-7f6e8cfc3000 ---p 00007000 08:01 1063320                    /lib/x86_64-linux-gnu/librt-2.24.so
7f6e8cfc3000-7f6e8cfc4000 r--p 00006000 08:01 1063320                    /lib/x86_64-linux-gnu/librt-2.24.so
7f6e8cfc4000-7f6e8cfc5000 rw-p 00007000 08:01 1063320                    /lib/x86_64-linux-gnu/librt-2.24.so
7f6e8cfc5000-7f6e8cfc6000 r-xp 00000000 08:01 535577                     /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.5200.0
7f6e8cfc6000-7f6e8d1c5000 ---p 00001000 08:01 535577                     /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.5200.0
7f6e8d1c5000-7f6e8d1c6000 r--p 00000000 08:01 535577                     /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.5200.0
7f6e8d1c6000-7f6e8d1c7000 rw-p 00001000 08:01 535577                     /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.5200.0
7f6e8d1c7000-7f6e8d1e2000 r-xp 00000000 08:01 1054058                    /lib/x86_64-linux-gnu/libz.so.1.2.11
7f6e8d1e2000-7f6e8d3e1000 ---p 0001b000 08:01 1054058                    /lib/x86_64-linux-gnu/libz.so.1.2.11
7f6e8d3e1000-7f6e8d3e2000 r--p 0001a000 08:01 1054058                    /lib/x86_64-linux-gnu/libz.so.1.2.11
7f6e8d3e2000-7f6e8d3e3000 rw-p 0001b000 08:01 1054058                    /lib/x86_64-linux-gnu/libz.so.1.2.11
7f6e8d3e3000-7f6e8d3fb000 r-xp 00000000 08:01 1063318                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f6e8d3fb000-7f6e8d5fb000 ---p 00018000 08:01 1063318                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f6e8d5fb000-7f6e8d5fc000 r--p 00018000 08:01 1063318                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f6e8d5fc000-7f6e8d5fd000 rw-p 00019000 08:01 1063318                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f6e8d5fd000-7f6e8d601000 rw-p 00000000 00:00 0 
7f6e8d601000-7f6e8d7bf000 r-xp 00000000 08:01 1063303                    /lib/x86_64-linux-gnu/libc-2.24.so
7f6e8d7bf000-7f6e8d9be000 ---p 001be000 08:01 1063303                    /lib/x86_64-linux-gnu/libc-2.24.so
7f6e8d9be000-7f6e8d9c2000 r--p 001bd000 08:01 1063303                    /lib/x86_64-linux-gnu/libc-2.24.so
7f6e8d9c2000-7f6e8d9c4000 rw-p 001c1000 08:01 1063303                    /lib/x86_64-linux-gnu/libc-2.24.so
7f6e8d9c4000-7f6e8d9c8000 rw-p 00000000 00:00 0 
7f6e8d9c8000-7f6e8d9de000 r-xp 00000000 08:01 1053915                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f6e8d9de000-7f6e8dbdd000 ---p 00016000 08:01 1053915                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f6e8dbdd000-7f6e8dbde000 r--p 00015000 08:01 1053915                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f6e8dbde000-7f6e8dbdf000 rw-p 00016000 08:01 1053915                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f6e8dbdf000-7f6e8dd58000 r-xp 00000000 08:01 536188                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f6e8dd58000-7f6e8df57000 ---p 00179000 08:01 536188                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f6e8df57000-7f6e8df61000 r--p 00178000 08:01 536188                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f6e8df61000-7f6e8df63000 rw-p 00182000 08:01 536188                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f6e8df63000-7f6e8df67000 rw-p 00000000 00:00 0 
7f6e8df67000-7f6e8e24a000 r-xp 00000000 08:01 2112930                    /home/athena/Qt/4.8/gcc_64/lib/libQtCore.so.4.8.7
7f6e8e24a000-7f6e8e44a000 ---p 002e3000 08:01 2112930                    /home/athena/Qt/4.8/gcc_64/lib/libQtCore.so.4.8.7
7f6e8e44a000-7f6e8e455000 r--p 002e3000 08:01 2112930                    /home/athena/Qt/4.8/gcc_64/lib/libQtCore.so.4.8.7
7f6e8e455000-7f6e8e45a000 rw-p 002ee000 08:01 2112930                    /home/athena/Qt/4.8/gcc_64/lib/libQtCore.so.4.8.7
7f6e8e45a000-7f6e8e45b000 rw-p 00000000 00:00 0 
7f6e8e45b000-7f6e8e45e000 r-xp 00000000 08:01 1063306                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f6e8e45e000-7f6e8e65d000 ---p 00003000 08:01 1063306                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f6e8e65d000-7f6e8e65e000 r--p 00002000 08:01 1063306                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f6e8e65e000-7f6e8e65f000 rw-p 00003000 08:01 1063306                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f6e8e65f000-7f6e8e685000 r-xp 00000000 08:01 1050118                    /lib/x86_64-linux-gnu/ld-2.24.so
7f6e8e861000-7f6e8e868000 rw-p 00000000 00:00 0 
7f6e8e879000-7f6e8e87a000 rw-p 00000000 00:00 0 
7f6e8e87a000-7f6e8e881000 r--s 00000000 08:01 799190                     /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f6e8e881000-7f6e8e884000 rw-p 00000000 00:00 0 
7f6e8e884000-7f6e8e885000 r--p 00025000 08:01 1050118                    /lib/x86_64-linux-gnu/ld-2.24.so
7f6e8e885000-7f6e8e886000 rw-p 00026000 08:01 1050118                    /lib/x86_64-linux-gnu/ld-2.24.so
7f6e8e886000-7f6e8e887000 rw-p 00000000 00:00 0 
7ffd0be8f000-7ffd0beb0000 rw-p 00000000 00:00 0                          [stack]
7ffd0bf61000-7ffd0bf63000 r--p 00000000 00:00 0                          [vvar]
7ffd0bf63000-7ffd0bf65000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]


NOTE: on Ubuntu 12 the library with the -fPIC flag works fine and on Ubuntu 16 it crashes 
Please let me know how should I compile the library for Linux x64

Thanks
Barak Melamed


Steffen Jaeckel

unread,
May 22, 2018, 6:23:07 AM5/22/18
to lib...@googlegroups.com, barak...@gmail.com
Hi

On 05/22/2018 12:09 PM, barak...@gmail.com wrote:
> [snip]
>
> NOTE: on Ubuntu 12 the library with the -fPIC flag works fine and on
> Ubuntu 16 it crashes 
> Please let me know how should I compile the library for Linux x64
>
> Thanks
> Barak Melamed

1. which version are you using?

2. Did you try to use `makefile.shared` instead of the regular
`makefile`? ... that one's creating libraries with PIC enabled.

Cheers,
Steffen
--
Steffen Jaeckel - s_ja...@gmx.de
GnuPG fingerprint: C438 6A23 7ED4 3A47 5541 B942 7B2C D0DD 4BCF F59B
My OTR key has changed on 30. Sept. 2015!
jabber: jae...@jabber.ccc.de F052DE29 4FA9A02D 44A794E5 AE5AC0FB C5865C64
Reply all
Reply to author
Forward
0 new messages