Hi,
I am trying to build sigproc on Big Sur with gcc-10 (Homebrew GCC 10.2.0_1). After cloning the repository (git clone https://github.com/SixByNine/sigproc.git) I run bootstrap.sh and configure script:
./configure --prefix=/Users/m.serylak/Software/sigproc/install LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" --x-libraries=/usr/local/lib --with-x --with-psrxml-dir=/Users/m.serylak/Software/psrxml/install --enable-shared
The compilation runs well with some warnings until I run into problem with duplicate symbols while linking. Here is the output where trouble starts:
rm -f libsigproc.a
ar cru libsigproc.a add_channels.o add_samples.o aliases.o angle_split.o aoftm.o bandfactors.o bit.o cel2gal.o chan_freqs.o close_log.o cprofc.o decimate_data.o decimate_header.o deg2dms.o dmdelay.o dmshift.o eraseDP.o error_message.o fetch_hdrval.o ffreq.o file_exists.o filterbank_header.o fold_data.o fold_header.o fshift_prof.o gmrt2fb.o head_parse.o help.o ignored_channels.o indexx.o inputclip.o inv_cerf.o lookup.o mjd.o mkheader.o norm_prof.o np2.o nrselect.o nrsort.o nrutil.o nsamples.o ooty2fb.o open_file.o open_files.o open_log.o pack_unpack.o phcalc.o print_version.o process.o prof_adds.o prof_cent.o prof_ddis.o prof_sbas.o prof_sumc.o prof_sumifs.o pspm2fb.o pspm_decode.o pspm_prof.o pspm_tstart.o pulsar2k2fb.o pulse.o put.o random.o read_aoscan.o read_block.o read_blocksubzero.o read_header.o read_polyco.o readtim.o recipes.o reverse_baseline_normalise.o scaledata.o scale_prof.o scamp2fb.o select.o send_stuff.o shift_prof.o single_ch.o sizeof_file.o slalib.o smooth.o ssm.o strings_equal.o submean.o submedian.o subzero.o swap_bytes.o thresh_1d.o typeof_inputdata.o update_log.o uttime.o vanvleck.o vmax.o vmin.o wapp2fb.o wappcorrect.o wapp_prof.o whiten.o write_epn.o write_profiles.o write_pulses.o ffft.o dedisperse_data.o dedisperse_header.o machine2prf.o mkheaderlex.o alfa_position.o bpp2fb.o mjk_random.o mjk_cmd.o newgmrt2fb.o psrfits2fb.o readpsrfits_hd.o
ranlib libsigproc.a
/bin/sh ../libtool --tag=F77 --mode=link gfortran -fno-second-underscore -g -O2 -lfftw3f_threads -L/lib -lfftw3f -lm -L/usr/local/lib -o seek seek.o dosearch.o ffft.o fftdata.o find_norm.o formspec.o freq.o glun.o sumhrm.o seekin.o baseline.o readspec.o writespec.o singlepulse.o getrmea.o getmeanrms.o zapit.o timer.o indexxf77.o slfit.o meanrms.o getrrms.o readdat.o resample.o rotate_time.o zap_birdies.o mmzap.o recon_prof.o length.o rdhead.o rdfbtab.o getddis.o getmjd.o readtim.o pulse.o read_header.o angle_split.o clock.o open_file.o strings_equal.o aliases.o open_files.o single_ch.o write_pulses.o thresh_1d.o smooth.o fftwdata.o libsigproc.a -lm -lcfitsio -lm libtool: link: gfortran -fno-second-underscore -g -O2 -o seek seek.o dosearch.o ffft.o fftdata.o find_norm.o formspec.o freq.o glun.o sumhrm.o seekin.o baseline.o readspec.o writespec.o singlepulse.o getrmea.o getmeanrms.o zapit.o timer.o indexxf77.o slfit.o meanrms.o getrrms.o readdat.o resample.o rotate_time.o zap_birdies.o mmzap.o recon_prof.o length.o rdhead.o rdfbtab.o getddis.o getmjd.o readtim.o pulse.o read_header.o angle_split.o clock.o open_file.o strings_equal.o aliases.o open_files.o single_ch.o write_pulses.o thresh_1d.o smooth.o fftwdata.o -lfftw3f_threads -L/lib -lfftw3f -L/usr/local/lib libsigproc.a -lcfitsio -lm
ld: warning: directory not found for option '-L/lib'
duplicate symbol '_tstart' in:
readtim.o
read_header.o
duplicate symbol '_az_start' in:
readtim.o
read_header.o
duplicate symbol '_za_start' in:
readtim.o
read_header.o
duplicate symbol '_project' in:
readtim.o
read_header.o
duplicate symbol '_culprits' in:
readtim.o
read_header.o
duplicate symbol '_nbits' in:
readtim.o
read_header.o
duplicate symbol '_nchans' in:
readtim.o
read_header.o
duplicate symbol '_nbeams' in:
readtim.o
read_header.o
duplicate symbol '_npuls' in:
readtim.o
read_header.o
duplicate symbol '_nifs' in:
readtim.o
read_header.o
duplicate symbol '_header_tobs' in:
readtim.o
read_header.o
duplicate symbol '_mjdobs' in:
readtim.o
read_header.o
duplicate symbol '_analog_power' in:
readtim.o
read_header.o
duplicate symbol '_wapp_scan_number' in:
readtim.o
read_header.o
duplicate symbol '_scan_number' in:
readtim.o
read_header.o
duplicate symbol '_tsamp' in:
readtim.o
read_header.o
duplicate symbol '_isign' in:
readtim.o
read_header.o
duplicate symbol '_refdm' in:
readtim.o
read_header.o
duplicate symbol '_ibeam' in:
readtim.o
read_header.o
duplicate symbol '_srcl' in:
readtim.o
read_header.o
duplicate symbol '_gal_l' in:
readtim.o
read_header.o
duplicate symbol '_src_dej' in:
readtim.o
read_header.o
duplicate symbol '_src_raj' in:
readtim.o
read_header.o
duplicate symbol '_raw_foff' in:
readtim.o
read_header.o
duplicate symbol '_foff' in:
readtim.o
read_header.o
duplicate symbol '_data_type' in:
readtim.o
read_header.o
duplicate symbol '_source_name' in:
readtim.o
read_header.o
duplicate symbol '_rawdatafile' in:
readtim.o
read_header.o
duplicate symbol '_frequency_table' in:
readtim.o
read_header.o
duplicate symbol '_telescope_id' in:
readtim.o
read_header.o
duplicate symbol '_machine_id' in:
readtim.o
read_header.o
duplicate symbol '_barycentric' in:
readtim.o
read_header.o
duplicate symbol '_pulsarcentric' in:
readtim.o
read_header.o
duplicate symbol '_srcb' in:
readtim.o
read_header.o
duplicate symbol '_gal_b' in:
readtim.o
read_header.o
duplicate symbol '_raw_fch1' in:
readtim.o
read_header.o
duplicate symbol '_fch1' in:
readtim.o
read_header.o
duplicate symbol '_lst0' in:
readtim.o
read_header.o
duplicate symbol '_ast0' in:
readtim.o
read_header.o
duplicate symbol '_iindx' in:
pulse.o
thresh_1d.o
duplicate symbol '_nsmax' in:
pulse.o
thresh_1d.o
duplicate symbol '_opterr' in:
pulse.o
thresh_1d.o
duplicate symbol '_ndm' in:
pulse.o
thresh_1d.o
duplicate symbol '_thresh' in:
pulse.o
thresh_1d.o
duplicate symbol '_optarg' in:
pulse.o
thresh_1d.o
duplicate symbol '_iterate' in:
pulse.o
thresh_1d.o
duplicate symbol '_file_name' in:
pulse.o
thresh_1d.o
duplicate symbol '_input_file' in:
pulse.o
thresh_1d.o
duplicate symbol '_optind' in:
pulse.o
thresh_1d.o
duplicate symbol '_nsubband' in:
pulse.o
thresh_1d.o
duplicate symbol '_iindx' in:
pulse.o
single_ch.o
duplicate symbol '_nsmax' in:
pulse.o
single_ch.o
duplicate symbol '_opterr' in:
pulse.o
single_ch.o
duplicate symbol '_ndm' in:
pulse.o
single_ch.o
duplicate symbol '_thresh' in:
pulse.o
single_ch.o
duplicate symbol '_optarg' in:
pulse.o
single_ch.o
duplicate symbol '_iterate' in:
pulse.o
single_ch.o
duplicate symbol '_file_name' in:
pulse.o
single_ch.o
duplicate symbol '_input_file' in:
pulse.o
single_ch.o
duplicate symbol '_optind' in:
pulse.o
single_ch.o
duplicate symbol '_nsubband' in:
pulse.o
single_ch.o
duplicate symbol '_iindx' in:
pulse.o
open_files.o
duplicate symbol '_nsmax' in:
pulse.o
open_files.o
duplicate symbol '_opterr' in:
pulse.o
open_files.o
duplicate symbol '_ndm' in:
pulse.o
open_files.o
duplicate symbol '_thresh' in:
pulse.o
open_files.o
duplicate symbol '_optarg' in:
pulse.o
open_files.o
duplicate symbol '_iterate' in:
pulse.o
open_files.o
duplicate symbol '_file_name' in:
pulse.o
open_files.o
duplicate symbol '_input_file' in:
pulse.o
open_files.o
duplicate symbol '_optind' in:
pulse.o
open_files.o
duplicate symbol '_nsubband' in:
pulse.o
open_files.o
duplicate symbol '_iindx' in:
pulse.o
write_pulses.o
duplicate symbol '_nsmax' in:
pulse.o
write_pulses.o
duplicate symbol '_opterr' in:
pulse.o
write_pulses.o
duplicate symbol '_ndm' in:
pulse.o
write_pulses.o
duplicate symbol '_thresh' in:
pulse.o
write_pulses.o
duplicate symbol '_optarg' in:
pulse.o
write_pulses.o
duplicate symbol '_iterate' in:
pulse.o
write_pulses.o
duplicate symbol '_file_name' in:
pulse.o
write_pulses.o
duplicate symbol '_input_file' in:
pulse.o
write_pulses.o
duplicate symbol '_optind' in:
pulse.o
write_pulses.o
duplicate symbol '_nsubband' in:
pulse.o
write_pulses.o
ld: 83 duplicate symbols for architecture x86_64
collect2: error: ld returned 1 exit status
make[3]: *** [seek] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Looks like there are some problems with multiple definitions of functions in the code - at least that is what I found after some rummaging for answers online. I suspect that this might be the linker used. How should go about solving this one? Thanks in advance!
Best,
Maciej
Hi,
I am trying to build
sigprocon Big Sur withgcc-10 (Homebrew GCC 10.2.0_1). After cloning the repository (git clone https://github.com/SixByNine/sigproc.git) I runbootstrap.shand configure script:./configure --prefix=/Users/m.serylak/Software/sigproc/install LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" --x-libraries=/usr/local/lib --with-x --with-psrxml-dir=/Users/m.serylak/Software/psrxml/install --enable-sharedThe compilation runs well with some warnings until I run into problem with duplicate symbols while linking. Here is the output where trouble starts:
rm -f libsigproc.aar cru libsigproc.a add_channels.o add_samples.o aliases.o angle_split.o aoftm.o bandfactors.o bit.o cel2gal.o chan_freqs.o close_log.o cprofc.o decimate_data.o decimate_header.o deg2dms.o dmdelay.o dmshift.o eraseDP.o error_message.o fetch_hdrval.o ffreq.o file_exists.o filterbank_header.o fold_data.o fold_header.o fshift_prof.o gmrt2fb.o head_parse.o help.o ignored_channels.o indexx.o inputclip.o inv_cerf.o lookup.o mjd.o mkheader.o norm_prof.o np2.o nrselect.o nrsort.o nrutil.o nsamples.o ooty2fb.o open_file.o open_files.o open_log.o pack_unpack.o phcalc.o print_version.o process.o prof_adds.o prof_cent.o prof_ddis.o prof_sbas.o prof_sumc.o prof_sumifs.o pspm2fb.o pspm_decode.o pspm_prof.o pspm_tstart.o pulsar2k2fb.o pulse.o put.o random.o read_aoscan.o read_block.o read_blocksubzero.o read_header.o read_polyco.o readtim.o recipes.o reverse_baseline_normalise.o scaledata.o scale_prof.o scamp2fb.o select.o send_stuff.o shift_prof.o single_ch.o sizeof_file.o slalib.o smooth.o ssm.o strings_equal.o submean.o submedian.o subzero.o swap_bytes.o thresh_1d.o typeof_inputdata.o update_log.o uttime.o vanvleck.o vmax.o vmin.o wapp2fb.o wappcorrect.o wapp_prof.o whiten.o write_epn.o write_profiles.o write_pulses.o ffft.o dedisperse_data.o dedisperse_header.o machine2prf.o mkheaderlex.o alfa_position.o bpp2fb.o mjk_random.o mjk_cmd.o newgmrt2fb.o psrfits2fb.o readpsrfits_hd.oranlib libsigproc.a/bin/sh ../libtool --tag=F77 --mode=link gfortran -fno-second-underscore -g -O2 -lfftw3f_threads -L/lib -lfftw3f -lm -L/usr/local/lib -o seek seek.o dosearch.o ffft.o fftdata.o find_norm.o formspec.o freq.o glun.o sumhrm.o seekin.o baseline.o readspec.o writespec.o singlepulse.o getrmea.o getmeanrms.o zapit.o timer.o indexxf77.o slfit.o meanrms.o getrrms.o readdat.o resample.o rotate_time.o zap_birdies.o mmzap.o recon_prof.o length.o rdhead.o rdfbtab.o getddis.o getmjd.o readtim.o pulse.o read_header.o angle_split.o clock.o open_file.o strings_equal.o aliases.o open_files.o single_ch.o write_pulses.o thresh_1d.o smooth.o fftwdata.o libsigproc.a -lm -lcfitsio -lm libtool: link: gfortran -fno-second-underscore -g -O2 -o seek seek.o dosearch.o ffft.o fftdata.o find_norm.o formspec.o freq.o glun.o sumhrm.o seekin.o baseline.o readspec.o writespec.o singlepulse.o getrmea.o getmeanrms.o zapit.o timer.o indexxf77.o slfit.o meanrms.o getrrms.o readdat.o resample.o rotate_time.o zap_birdies.o mmzap.o recon_prof.o length.o rdhead.o rdfbtab.o getddis.o getmjd.o readtim.o pulse.o read_header.o angle_split.o clock.o open_file.o strings_equal.o aliases.o open_files.o single_ch.o write_pulses.o thresh_1d.o smooth.o fftwdata.o -lfftw3f_threads -L/lib -lfftw3f -L/usr/local/lib libsigproc.a -lcfitsio -lmld: warning: directory not found for option '-L/lib'duplicate symbol '_tstart' in:readtim.oread_header.oduplicate symbol '_az_start' in:readtim.oread_header.oduplicate symbol '_za_start' in:readtim.oread_header.oduplicate symbol '_project' in:readtim.oread_header.oduplicate symbol '_culprits' in:readtim.oread_header.oduplicate symbol '_nbits' in:readtim.oread_header.oduplicate symbol '_nchans' in:readtim.oread_header.oduplicate symbol '_nbeams' in:readtim.oread_header.oduplicate symbol '_npuls' in:readtim.oread_header.oduplicate symbol '_nifs' in:readtim.oread_header.oduplicate symbol '_header_tobs' in:readtim.oread_header.oduplicate symbol '_mjdobs' in:readtim.oread_header.oduplicate symbol '_analog_power' in:readtim.oread_header.oduplicate symbol '_wapp_scan_number' in:readtim.oread_header.oduplicate symbol '_scan_number' in:readtim.oread_header.oduplicate symbol '_tsamp' in:readtim.oread_header.oduplicate symbol '_isign' in:readtim.oread_header.oduplicate symbol '_refdm' in:readtim.oread_header.oduplicate symbol '_ibeam' in:readtim.oread_header.oduplicate symbol '_srcl' in:readtim.oread_header.oduplicate symbol '_gal_l' in:readtim.oread_header.oduplicate symbol '_src_dej' in:readtim.oread_header.oduplicate symbol '_src_raj' in:readtim.oread_header.oduplicate symbol '_raw_foff' in:readtim.oread_header.oduplicate symbol '_foff' in:readtim.oread_header.oduplicate symbol '_data_type' in:readtim.oread_header.oduplicate symbol '_source_name' in:readtim.oread_header.oduplicate symbol '_rawdatafile' in:readtim.oread_header.oduplicate symbol '_frequency_table' in:readtim.oread_header.oduplicate symbol '_telescope_id' in:readtim.oread_header.oduplicate symbol '_machine_id' in:readtim.oread_header.oduplicate symbol '_barycentric' in:readtim.oread_header.oduplicate symbol '_pulsarcentric' in:readtim.oread_header.oduplicate symbol '_srcb' in:readtim.oread_header.oduplicate symbol '_gal_b' in:readtim.oread_header.oduplicate symbol '_raw_fch1' in:readtim.oread_header.oduplicate symbol '_fch1' in:readtim.oread_header.oduplicate symbol '_lst0' in:readtim.oread_header.oduplicate symbol '_ast0' in:readtim.oread_header.oduplicate symbol '_iindx' in:pulse.othresh_1d.oduplicate symbol '_nsmax' in:pulse.othresh_1d.oduplicate symbol '_opterr' in:pulse.othresh_1d.oduplicate symbol '_ndm' in:pulse.othresh_1d.oduplicate symbol '_thresh' in:pulse.othresh_1d.oduplicate symbol '_optarg' in:pulse.othresh_1d.oduplicate symbol '_iterate' in:pulse.othresh_1d.oduplicate symbol '_file_name' in:pulse.othresh_1d.oduplicate symbol '_input_file' in:pulse.othresh_1d.oduplicate symbol '_optind' in:pulse.othresh_1d.oduplicate symbol '_nsubband' in:pulse.othresh_1d.oduplicate symbol '_iindx' in:pulse.osingle_ch.oduplicate symbol '_nsmax' in:pulse.osingle_ch.oduplicate symbol '_opterr' in:pulse.osingle_ch.oduplicate symbol '_ndm' in:pulse.osingle_ch.oduplicate symbol '_thresh' in:pulse.osingle_ch.oduplicate symbol '_optarg' in:pulse.osingle_ch.oduplicate symbol '_iterate' in:pulse.osingle_ch.oduplicate symbol '_file_name' in:pulse.osingle_ch.oduplicate symbol '_input_file' in:pulse.osingle_ch.oduplicate symbol '_optind' in:pulse.osingle_ch.oduplicate symbol '_nsubband' in:pulse.osingle_ch.oduplicate symbol '_iindx' in:pulse.oopen_files.oduplicate symbol '_nsmax' in:pulse.oopen_files.oduplicate symbol '_opterr' in:pulse.oopen_files.oduplicate symbol '_ndm' in:pulse.oopen_files.oduplicate symbol '_thresh' in:pulse.oopen_files.oduplicate symbol '_optarg' in:pulse.oopen_files.oduplicate symbol '_iterate' in:pulse.oopen_files.oduplicate symbol '_file_name' in:pulse.oopen_files.oduplicate symbol '_input_file' in:pulse.oopen_files.oduplicate symbol '_optind' in:pulse.oopen_files.oduplicate symbol '_nsubband' in:pulse.oopen_files.oduplicate symbol '_iindx' in:pulse.owrite_pulses.oduplicate symbol '_nsmax' in:pulse.owrite_pulses.oduplicate symbol '_opterr' in:pulse.owrite_pulses.oduplicate symbol '_ndm' in:pulse.owrite_pulses.oduplicate symbol '_thresh' in:pulse.owrite_pulses.oduplicate symbol '_optarg' in:pulse.owrite_pulses.oduplicate symbol '_iterate' in:pulse.owrite_pulses.oduplicate symbol '_file_name' in:pulse.owrite_pulses.oduplicate symbol '_input_file' in:pulse.owrite_pulses.oduplicate symbol '_optind' in:pulse.owrite_pulses.oduplicate symbol '_nsubband' in:pulse.owrite_pulses.old: 83 duplicate symbols for architecture x86_64collect2: error: ld returned 1 exit statusmake[3]: *** [seek] Error 1make[2]: *** [all] Error 2make[1]: *** [all-recursive] Error 1make: *** [all] Error 2Looks like there are some problems with multiple definitions of functions in the code - at least that is what I found after some rummaging for answers online. I suspect that this might be the linker used. How should go about solving this one? Thanks in advance!
Best,
Maciej