Hello. Please help, how to compile 7zs.so on Ubuntu 24.10 ?
My steps:
1) download and unpack https://www.7-zip.org/a/7z2600-src.tar.xz
2) open terminal
3) cd ~/CPP/7zip/Bundles/Format7zF
4) make -C . -f ../../cmpl_gcc.mak
5) go to to subfolders "b" and "g", and I see "7z.so", but no "7zs.so" here
6) in terminal I see this:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginT.o: relocation R_X86_64_32 against hidden symbol `TMC_END' can not be used when making a shared object
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
make: *** [../../7zip_gcc.mak:264: b/g/7zs.so] Error 1
make: exit from «/home/tester/Downloads/7z2600-src/CPP/7zip/Bundles/Format7zF»
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
make: entering to «/home/tester/Downloads/7z2600-src/CPP/7zip/Bundles/Format7zF»
asmc -nologo -elf64 -DABI_LINUX -Fob/g_x64/ ../../../../Asm/x86/LzmaDecOpt.asm
make: asmc: No such file or directory
make: *** [../../7zip_gcc.mak:1328: b/g_x64/LzmaDecOpt.o] Error 127
make: exit from «/home/tester/Downloads/7z2600-src/CPP/7zip/Bundles/Format7zF»
I try to fix it by changing file var_gcc_x64.mak :
USE_ASM=1
to
USE_ASM=
but then I receive first error
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginT.o: relocation R_X86_64_32 against hidden symbol `TMC_END' can not be used when making a shared object
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello. Please help, how to compile 7zs.so on Ubuntu 24.10 ?
My steps:
1) download and unpack https://www.7-zip.org/a/7z2600-src.tar.xz
2) open terminal
3) cd ~/CPP/7zip/Bundles/Format7zF
4) make -C . -f ../../cmpl_gcc.mak
5) go to to subfolders "b" and "g", and I see "7z.so", but no "7zs.so" here
6) in terminal I see this:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginT.o: relocation R_X86_64_32 against hidden symbol `TMC_END' can not be used when making a shared object
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
make: *** [../../7zip_gcc.mak:264: b/g/7zs.so] Error 1
make: exit from «/home/tester/Downloads/7z2600-src/CPP/7zip/Bundles/Format7zF»
When I changed to x64 architecture:
make -C . -f ../../cmpl_gcc_x64.mak
it returns another error:
make: entering to «/home/tester/Downloads/7z2600-src/CPP/7zip/Bundles/Format7zF»
asmc -nologo -elf64 -DABI_LINUX -Fob/g_x64/ ../../../../Asm/x86/LzmaDecOpt.asm
make: asmc: No such file or directory
make: *** [../../7zip_gcc.mak:1328: b/g_x64/LzmaDecOpt.o] Error 127
make: exit from «/home/tester/Downloads/7z2600-src/CPP/7zip/Bundles/Format7zF»
I try to fix it by changing file var_gcc_x64.mak :
USE_ASM=1
to
USE_ASM=
but then I receive first error
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginT.o: relocation R_X86_64_32 against hidden symbol `TMC_END' can not be used when making a shared object
Maybe there is `static' somewhere in command line and it interferes with shared linking of shared object.
At least that's what can be deducted from web search of relocation R_X86_64_32 against hidden symbol `TMC_END' can not be used when making a shared object.