Hello all,
I'm trying to compile a fortran77 program (getsnr.f) which includes some
SAC routines:
PROGRAM getsnr
C
INTEGER npts, nerr
REAL*4 rftn, beg, del, snr
CHARACTER nom*50
C
CALL getarg (1,nom)
CALL rsac1 (nom,rftn,npts,beg,del,1,nerr)
CALL getfhv ('user0',snr,nerr)
C
WRITE (6,*) snr
C
END
As you can see, the code is straightforward. Its only goal is to get the
signal to noise ratio contained in the header of sac files. I try to
compile using the following commands, as shown in the SAC user's manual:
>>f77 -o getsnr getsnr.f -I${SACHOME}/include -L${SACHOME}/lib -lsacio
-lsac
However, I get the following errors:
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(getfhv.o):
relocation R_X86_64_32 against undefined symbol `kmlhf' can not be used
when making a PIE object; recompile with -fPIC
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(rsac1.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(f2c.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(rsach.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
PIE object; recompile with -fPIC
[...]
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(zinquire.o):
relocation R_X86_64_32 against `.text' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
I tried recompiling with the -fPIC flag with no success, the SAC
libraries are never linked (the same error messages appear). I would
really appreciate if someone could give some hint on what might be failing.
I'm on Linux Mint 19.1 64 bit.
Regards,
Joan A. Parera Portell
I'm trying to compile a fortran77 program (getsnr.f) which includes some
SAC routines:
PROGRAM getsnr
C
INTEGER npts, nerr
REAL*4 rftn, beg, del, snr
CHARACTER nom*50
C
CALL getarg (1,nom)
CALL rsac1 (nom,rftn,npts,beg,del,1,nerr)
CALL getfhv ('user0',snr,nerr)
C
WRITE (6,*) snr
C
END
As you can see, the code is straightforward. Its only goal is to get the
signal to noise ratio contained in the header of sac files. I try to
compile using the following commands, as shown in the SAC user's manual:
>>f77 -o getsnr getsnr.f -I${SACHOME}/include -L${SACHOME}/lib -lsacio
-lsac
However, I get the following errors:
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(getfhv.o):
relocation R_X86_64_32 against undefined symbol `kmlhf' can not be used
when making a PIE object; recompile with -fPIC
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(rsac1.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(f2c.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(rsach.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
PIE object; recompile with -fPIC
[...]
/usr/bin/ld: /home/joanan/Aplicacions/sac/lib/libsacio.a(zinquire.o):
relocation R_X86_64_32 against `.text' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
I tried recompiling with the -fPIC flag with no success, the SAC
libraries are never linked (the same error messages appear). I would
really appreciate if someone could give some hint on what might be failing.
I'm on Linux Mint 19.1 64 bit.
Regards,
Joan A. Parera Portell