On 12/08/2016 07:53 PM, Jeffrey Johnson wrote:

RPM5 builds against libgit2 tip and libgit2 “breaks” every other month.

The fixes are usually rather easy, but the code is entirely proof-of-concept.

I recommend
        rm -rf libgit2
(which is likely enuf to disable) and building —without-libgit2

That's what I did, seems to help.

Issue 2:

*** Warning: Linking the shared library librpmio.la against the non-libtool
*** objects  duktape.o is not portable!
libtool: link: g++  -fPIC -DPIC -shared -nostdlib 
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o 
/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o  .libs/getdate.o .libs/blake2b.o 
.libs/blake2bp.o .libs/blake2s.o .libs/blake2sp.o .libs/blake2-rpm.o 
.libs/arirang.o .libs/blake.o .libs/bmw.o .libs/chi.o .libs/cubehash.o 
.libs/echo.o .libs/edon-r.o .libs/fugue.o .libs/groestl.o .libs/hamsi.o 
.libs/jh.o .libs/keccak.o .libs/lane.o .libs/luffa.o .libs/md2.o .libs/md6.o 
.libs/radiogatun.o .libs/salsa10.o .libs/salsa20.o .libs/shabal.o 
.libs/shavite3.o .libs/simd.o .libs/skein.o .libs/tib3.o .libs/tiger.o 
.libs/rpmgit.o .libs/rpmio-stub.o .libs/rpmjs.o .libs/rpmjsio.o 
.libs/rpmkeyring.o .libs/rpmnix.o .libs/rpmodbc.o .libs/rpmsql.o .libs/set.o 
.libs/ar.o .libs/argv.o .libs/bcon.o .libs/bson.o .libs/bzdio.o .libs/cipher.o 
.libs/cpio.o .libs/crc.o .libs/digest.o .libs/fts.o .libs/gzdio.o .libs/iosm.o 
.libs/jsmn.o .libs/lsyck.o .libs/macro.o .libs/mire.o .libs/mongoc.o 
.libs/mount.o .libs/pcrs.o .libs/poptIO.o .libs/rpmacl.o .libs/rpmasn.o 
.libs/rpmaug.o .libs/rpmbag.o .libs/rpmbc.o .libs/rpmbf.o .libs/rpmcdsa.o 
.libs/rpmct.o .libs/rpmcudf.o .libs/rpmcvs.o .libs/rpmdate.o .libs/rpmdav.o 
.libs/rpmdir.o .libs/rpmficl.o .libs/rpmgc.o .libs/rpmgfs.o .libs/rpmhash.o 
.libs/rpmhkp.o .libs/rpmhook.o .libs/rpmio.o .libs/rpmiob.o .libs/rpmjni.o 
.libs/rpmku.o .libs/rpmlog.o .libs/rpmltc.o .libs/rpmlua.o .libs/rpmmalloc.o 
.libs/rpmmg.o .libs/rpmmqtt.o .libs/rpmmrb.o .libs/rpmnss.o .libs/rpmperl.o 
.libs/rpmpgp.o .libs/rpmpython.o .libs/rpmrpc.o .libs/rpmruby.o .libs/rpmsed.o 
.libs/rpmsm.o .libs/rpmsp.o .libs/rpmsq.o .libs/rpmsquirrel.o .libs/rpmssl.o 
.libs/rpmsvn.o .libs/rpmsw.o .libs/rpmsx.o .libs/rpmsyck.o .libs/rpmtcl.o 
.libs/rpmtpm.o .libs/rpmuuid.o .libs/rpmxar.o .libs/rpmzlog.o .libs/rpmzq.o 
.libs/strcasecmp.o .libs/strtolocale.o .libs/tar.o .libs/ugid.o .libs/url.o 
.libs/xzdio.o .libs/yajl.o .libs/yarn.o  duktape.o   -Wl,-rpath 
-Wl,/home/ak/development/rpm/misc/.libs ../misc/.libs/librpmmisc.so -lpcreposix 
-ldl -ltcl8.6 -lpython2.7 -lreadline -lmagic -lpthread -lelf 
/usr/lib/x86_64-linux-gnu/libpopt.so -lz /usr/lib/x86_64-linux-gnu/libexpat.so 
-lpcre -L/usr/lib/gcc/x86_64-linux-gnu/6 
-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu 
-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu 
-L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib 
-L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. -lstdc++ -lm -lc -lgcc_s 
/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o 
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o  -g -O2 
-Wl,--version-script -Wl,../rpmio/librpmio.vers   -fopenmp -Wl,-soname 
-Wl,librpmio-5.4.so -o .libs/librpmio-5.4.so
/usr/bin/ld: duktape.o: relocation R_X86_64_PC32 against symbol 
`stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile 
with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:2597: recipe for target 'librpmio.la' failed

The duktape PIC issue can be fixed by adding common CFLAGS to duktape's custom 
flags, I guess, which currently isn't the case.

This is not that easy unfortunately. The PIC compiler flags are supplied by libtool, and duktape.o is created without using libtool.
So I'm not sure what a real fix would be, can you provide that?

Yup. There’s other duktape.c annoyances encountered if/when switching between 
gcc and clang.

I usually comment out duktape (or make it an optional build) in 
rpmio/Makefile.am when it gets in my way.

I've removed duktape.o from here:

librpmio_la_LIBADD = duktape.o -lm

and that helps.

There may be some issues with bison/flex in rpmdb (its WIP, the targets aren’t 
critical),
 and perl-URPM likely should be nuked (rm -rf perl-URPM).

This is the latest failure:

make[4]: Entering directory '/home/ak/development/rpm/rpmio'
/bin/bash ../libtool --tag=CC --mode=link gcc -fopenmp -g -O2 -g -D_GNU_SOURCE -D_REENTRANT -o tgfs tgfs.o librpmio.la ../misc/librpmmisc.la -lpcreposix -lpcre -ldl -lm -ltcl8.6 -lpython2.7 -lreadline -lmagic -lexpat -lz -lpopt -lpthread -lelf -lpopt -lz -lexpat -lpcre libtool: link: gcc -fopenmp -g -O2 -g -D_GNU_SOURCE -D_REENTRANT -o .libs/tgfs tgfs.o ./.libs/librpmio.so ../misc/.libs/librpmmisc.so -lpcreposix -ldl -lm -ltcl8.6 -lpython2.7 -lreadline -lmagic -lpthread -lelf /usr/lib/x86_64-linux-gnu/libpopt.so -lz /usr/lib/x86_64-linux-gnu/libexpat.so -lpcre -fopenmp
/usr/bin/ld: tgfs.o: undefined reference to symbol 'shm_open@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/librt.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

No idea yet what that means, but maybe you've seen this before. Linking errors are notoriously unhelpful :(

If you send me your devtool.conf stanza, I will check in your build options, and
be able to help more effectively.

Sure, here it is. I didn't write it out from scratch, I copied the %system (as that seemed a reasonable start), and modified it when build issues happened. Host is Debian testing (stretch).


%debian
    %autogen
    %configure \
        --verbose \
        --prefix=/usr \
        --libdir=/usr/lib \
        --enable-shared \
        --with-db \
        --with-dbsql \
        --without-db-tools-integrated \
        --with-zlib \
        --with-bzip2 \
        --with-xz \
        --with-file \
        --with-path-magic=/usr/share/file/magic \
        --with-lua=internal \
        --with-tcl \
        --without-sqlite \
        --with-syck=internal \
        --with-readline \
        --without-augeas \
        --with-beecrypt=internal \
        --without-java \
        --with-openssl \
        --without-nss \
        --with-gcrypt \
        --with-tomcrypt \
        --without-libtpm \
        --without-libtasn1 \
        --without-pakchois \
        --without-gnutls \
        --with-neon=internal \
        --without-libproxy \
        --with-expat \
        --with-pcre \
        --enable-utf \
        --without-uuid \
        --with-attr \
        --with-acl \
        --without-xar \
        --with-popt=external \
        --with-keyutils \
        --with-pthreads \
        --with-libelf \
        --without-cudf \
        --without-ficl \
        --without-aterm \
        --without-nix \
        --without-bash \
        --without-rc \
        --without-js \
        --without-gpsee \
        --with-python \
        --with-pythonembed=/usr/lib:/usr/include/python2.7 \
        --with-perl \
        --without-perlembed \
        --without-ruby \
        --with-mruby \
        --with-jvm=$JAVA_HOME \
        --without-selinux \
        --without-sepol \
        --without-semanage \
        --without-libgit2 \
        --with-squirrel \
        --with-build-extlibdep \
        --with-build-maxextlibdep \
        --with-valgrind \
        --enable-build-pic \
        --enable-build-versionscript \
        --enable-build-warnings \
        --enable-build-debug \
        --enable-maintainer-mode


Alex
DóiÉ�ã�¨®m§ÿë¦nh®Þ½éh¥ê¢i®ž'¶*'.+-®™�z÷¥®™¹¢¸

Reply via email to