[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Moving the binary package tabix from the source packages tabix to htslib.



Le Sat, Aug 16, 2014 at 10:13:33PM +0900, Charles Plessy a écrit :
> 
> I plan to replace the tabix binary package from the tabix source package with
> one from the htslib source package.  Let me know if you think it can be
> problematic.

By the way, I could not link tabix dynamically to the HTSlib at build time,
where I tried to pass "-L. -lhts" to the Makefile via the LDLIBS environment
variable.  Is that the way I am supposed to do ?  Here is an extract from
the Makefile.

  tabix: tabix.o libhts.a
  	$(CC) -pthread $(LDFLAGS) -o $@ tabix.o libhts.a $(LDLIBS) -lz

With "-L. -lhts", dynamic linking happens when the libhts1 package
happens to be already installed on the system.  Otherwise, it fails
like this:

  gcc -shared -Wl,-soname,libhts.so.1 -pthread -Wl,-z,relro -o libhts.so kfunc.pico knetfile.pico kstring.pico bgzf.pico faidx.pico hfile.pico hfile_net.pico hts.pico sam.pico synced_bcf_reader.pico vcf_sweep.pico tbx.pico vcf.pico vcfutils.pico cram/cram_codecs.pico cram/cram_decode.pico cram/cram_encode.pico cram/cram_index.pico cram/cram_io.pico cram/cram_samtools.pico cram/cram_stats.pico cram/files.pico cram/mFILE.pico cram/md5.pico cram/open_trace_file.pico cram/pooled_alloc.pico cram/sam_header.pico cram/string_alloc.pico cram/thread_pool.pico cram/vlen.pico cram/zfio.pico -L. -lhts -lz -lm
  ./libhts.so: file not recognized: File truncated
  collect2: error: ld returned 1 exit status
  Makefile:172: recipe for target 'libhts.so' failed
  make[2]: *** [libhts.so] Error 1
  make[2]: Leaving directory '/home/charles/debian/debian-med/htslib'
  dh_auto_build: make -j1 CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security CPPFLAGS=-I. -DSAMTOOLS=1 -D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-z,relro LDLIBS=-L. -lhts PACKAGE_VERSION=1.0-1 libdir=/usr/lib/x86_64-linux-gnu returned exit code 2
  debian/rules:15: recipe for target 'override_dh_auto_build' failed
  make[1]: *** [override_dh_auto_build] Error 2
  make[1]: Leaving directory '/home/charles/debian/debian-med/htslib'
  debian/rules:7: recipe for target 'build' failed
  make: *** [build] Error 2

You can clone the package here:

  git://anonscm.debian.org/debian-med/htslib.git

And browse it here:

  http://anonscm.debian.org/cgit/debian-med/htslib.git

Have a nice Sunday,

Charles

-- 
Charles Plessy
Debian Med packaging team,
http://www.debian.org/devel/debian-med
Tsurumi, Kanagawa, Japan


Reply to: