[Pkg-db-devel] Bug#354809: db4.4: FTBFS (ppc64): syntax error in VERSION script

Andreas Jochens aj at andaco.de
Wed Mar 1 08:48:37 UTC 2006


Package: db4.4
Version: 4.4.20-3
Severity: normal
Tags: patch

When building 'db4.4' on ppc64/unstable, I get the following error:

 gcc -c -I. -I../dist/.. -I/usr/include/tcl8.4 -D_GNU_SOURCE -D_REENTRANT -Wall -g -O2 ../dist/../xa/xa_map.c -o xa_map.o >/dev/null 2>&1
rm -f Versions
printf "DB4_4 {\n  global:\n" > Versions
nm `sed -n "/^pic_object='\(.*\)'$/ { s//\1/;p;}" db185.lo mut_tas.lo  bt_compare.lo bt_conv.lo bt_curadj.lo bt_cursor.lo bt_delete.lo bt_method.lo bt_open.lo bt_put.lo bt_rec.lo bt_reclaim.lo bt_recno.lo bt_rsearch.lo bt_search.lo bt_split.lo bt_stat.lo bt_compact.lo bt_upgrade.lo btree_auto.lo hash.lo hash_auto.lo hash_conv.lo hash_dup.lo hash_meta.lo hash_method.lo hash_open.lo hash_page.lo hash_rec.lo hash_reclaim.lo hash_stat.lo hash_upgrade.lo hash_verify.lo qam.lo qam_auto.lo qam_conv.lo qam_files.lo qam_method.lo qam_open.lo qam_rec.lo qam_stat.lo qam_upgrade.lo qam_verify.lo rep_auto.lo rep_backup.lo rep_elect.lo rep_log.lo rep_method.lo rep_record.lo rep_region.lo rep_stat.lo rep_util.lo rep_verify.lo db_ovfl_vrfy.lo db_vrfy.lo db_vrfyutil.lo bt_verify.lo  aes_method.lo crypto.lo mt19937db.lo rijndael-alg-fst.lo rijndael-api-fst.lo client.lo db_server_clnt.lo db_server_xdr.lo gen_client.lo gen_client_ret.lo crdel_auto.lo crdel_rec.lo db.lo db_am.lo db_auto.lo db_byteorder.lo db_cam.lo db_clock.lo db_conv.lo db_dispatch.lo db_dup.lo db_err.lo db_getlong.lo db_idspace.lo db_iface.lo db_join.lo db_log2.lo db_meta.lo db_method.lo db_open.lo db_overflow.lo db_pr.lo db_rec.lo db_reclaim.lo db_rename.lo db_remove.lo db_ret.lo db_salloc.lo db_setid.lo db_setlsn.lo db_shash.lo db_stati.lo db_truncate.lo db_upg.lo db_upg_opd.lo dbm.lo dbreg.lo dbreg_auto.lo dbreg_rec.lo dbreg_stat.lo dbreg_util.lo env_failchk.lo env_file.lo env_method.lo env_open.lo env_recover.lo env_region.lo env_register.lo env_stat.lo fileops_auto.lo fop_basic.lo fop_rec.lo fop_util.lo hash_func.lo hmac.lo hsearch.lo lock.lo lock_deadlock.lo lock_failchk.lo lock_id.lo lock_list.lo lock_method.lo lock_region.lo lock_stat.lo lock_timer.lo lock_util.lo log.lo log_archive.lo log_compare.lo log_debug.lo log_get.lo log_method.lo log_put.lo log_stat.lo mp_alloc.lo mp_bh.lo mp_fget.lo mp_fmethod.lo mp_fopen.lo mp_fput.lo mp_fset.lo mp_method.lo mp_region.lo mp_register.lo mp_stat.lo mp_sync.lo mp_trickle.lo mut_alloc.lo mut_method.lo mut_region.lo mut_stat.lo os_abs.lo os_alloc.lo os_clock.lo os_config.lo os_dir.lo os_errno.lo os_fid.lo os_flock.lo os_fsync.lo os_handle.lo os_id.lo os_map.lo os_method.lo os_mkdir.lo os_oflags.lo os_open.lo os_region.lo os_rename.lo os_root.lo os_rpath.lo os_rw.lo os_seek.lo os_sleep.lo os_spin.lo os_stat.lo os_tmpdir.lo os_truncate.lo os_unlink.lo sha1.lo seq_stat.lo sequence.lo snprintf.lo txn.lo txn_auto.lo txn_chkpt.lo txn_failchk.lo txn_method.lo txn_rec.lo txn_recover.lo txn_region.lo txn_stat.lo txn_util.lo xa.lo xa_db.lo xa_map.lo` | grep " [TR] " | cut -d" " -f3 | sed -e 's/$/;/' >> Versions
printf "local: *; };\n" >> Versions
/bin/sh ./libtool --mode=link gcc -avoid-version -rpath /usr/lib -Wl,--version-script=Versions  -o libdb-4.4.la db185.lo mut_tas.lo  bt_compare.lo bt_conv.lo bt_curadj.lo bt_cursor.lo bt_delete.lo bt_method.lo bt_open.lo bt_put.lo bt_rec.lo bt_reclaim.lo bt_recno.lo bt_rsearch.lo bt_search.lo bt_split.lo bt_stat.lo bt_compact.lo bt_upgrade.lo btree_auto.lo hash.lo hash_auto.lo hash_conv.lo hash_dup.lo hash_meta.lo hash_method.lo hash_open.lo hash_page.lo hash_rec.lo hash_reclaim.lo hash_stat.lo hash_upgrade.lo hash_verify.lo qam.lo qam_auto.lo qam_conv.lo qam_files.lo qam_method.lo qam_open.lo qam_rec.lo qam_stat.lo qam_upgrade.lo qam_verify.lo rep_auto.lo rep_backup.lo rep_elect.lo rep_log.lo rep_method.lo rep_record.lo rep_region.lo rep_stat.lo rep_util.lo rep_verify.lo db_ovfl_vrfy.lo db_vrfy.lo db_vrfyutil.lo bt_verify.lo  aes_method.lo crypto.lo mt19937db.lo rijndael-alg-fst.lo rijndael-api-fst.lo client.lo db_server_clnt.lo db_server_xdr.lo gen_client.lo gen_client_ret.lo crdel_auto.lo crdel_rec.lo db.lo db_am.lo db_auto.lo db_byteorder.lo db_cam.lo db_clock.lo db_conv.lo db_dispatch.lo db_dup.lo db_err.lo db_getlong.lo db_idspace.lo db_iface.lo db_join.lo db_log2.lo db_meta.lo db_method.lo db_open.lo db_overflow.lo db_pr.lo db_rec.lo db_reclaim.lo db_rename.lo db_remove.lo db_ret.lo db_salloc.lo db_setid.lo db_setlsn.lo db_shash.lo db_stati.lo db_truncate.lo db_upg.lo db_upg_opd.lo dbm.lo dbreg.lo dbreg_auto.lo dbreg_rec.lo dbreg_stat.lo dbreg_util.lo env_failchk.lo env_file.lo env_method.lo env_open.lo env_recover.lo env_region.lo env_register.lo env_stat.lo fileops_auto.lo fop_basic.lo fop_rec.lo fop_util.lo hash_func.lo hmac.lo hsearch.lo lock.lo lock_deadlock.lo lock_failchk.lo lock_id.lo lock_list.lo lock_method.lo lock_region.lo lock_stat.lo lock_timer.lo lock_util.lo log.lo log_archive.lo log_compare.lo log_debug.lo log_get.lo log_method.lo log_put.lo log_stat.lo mp_alloc.lo mp_bh.lo mp_fget.lo mp_fmethod.lo mp_fopen.lo mp_fput.lo mp_fset.lo mp_method.lo mp_region.lo mp_register.lo mp_stat.lo mp_sync.lo mp_trickle.lo mut_alloc.lo mut_method.lo mut_region.lo mut_stat.lo os_abs.lo os_alloc.lo os_clock.lo os_config.lo os_dir.lo os_errno.lo os_fid.lo os_flock.lo os_fsync.lo os_handle.lo os_id.lo os_map.lo os_method.lo os_mkdir.lo os_oflags.lo os_open.lo os_region.lo os_rename.lo os_root.lo os_rpath.lo os_rw.lo os_seek.lo os_sleep.lo os_spin.lo os_stat.lo os_tmpdir.lo os_truncate.lo os_unlink.lo sha1.lo seq_stat.lo sequence.lo snprintf.lo txn.lo txn_auto.lo txn_chkpt.lo txn_failchk.lo txn_method.lo txn_rec.lo txn_recover.lo txn_region.lo txn_stat.lo txn_util.lo xa.lo xa_db.lo xa_map.lo 
gcc -shared  .libs/db185.o .libs/mut_tas.o .libs/bt_compare.o .libs/bt_conv.o .libs/bt_curadj.o .libs/bt_cursor.o .libs/bt_delete.o .libs/bt_method.o .libs/bt_open.o .libs/bt_put.o .libs/bt_rec.o .libs/bt_reclaim.o .libs/bt_recno.o .libs/bt_rsearch.o .libs/bt_search.o .libs/bt_split.o .libs/bt_stat.o .libs/bt_compact.o .libs/bt_upgrade.o .libs/btree_auto.o .libs/hash.o .libs/hash_auto.o .libs/hash_conv.o .libs/hash_dup.o .libs/hash_meta.o .libs/hash_method.o .libs/hash_open.o .libs/hash_page.o .libs/hash_rec.o .libs/hash_reclaim.o .libs/hash_stat.o .libs/hash_upgrade.o .libs/hash_verify.o .libs/qam.o .libs/qam_auto.o .libs/qam_conv.o .libs/qam_files.o .libs/qam_method.o .libs/qam_open.o .libs/qam_rec.o .libs/qam_stat.o .libs/qam_upgrade.o .libs/qam_verify.o .libs/rep_auto.o .libs/rep_backup.o .libs/rep_elect.o .libs/rep_log.o .libs/rep_method.o .libs/rep_record.o .libs/rep_region.o .libs/rep_stat.o .libs/rep_util.o .libs/rep_verify.o .libs/db_ovfl_vrfy.o .libs/db_vrfy.o .libs/db_vrfyutil.o .libs/bt_verify.o .libs/aes_method.o .libs/crypto.o .libs/mt19937db.o .libs/rijndael-alg-fst.o .libs/rijndael-api-fst.o .libs/client.o .libs/db_server_clnt.o .libs/db_server_xdr.o .libs/gen_client.o .libs/gen_client_ret.o .libs/crdel_auto.o .libs/crdel_rec.o .libs/db.o .libs/db_am.o .libs/db_auto.o .libs/db_byteorder.o .libs/db_cam.o .libs/db_clock.o .libs/db_conv.o .libs/db_dispatch.o .libs/db_dup.o .libs/db_err.o .libs/db_getlong.o .libs/db_idspace.o .libs/db_iface.o .libs/db_join.o .libs/db_log2.o .libs/db_meta.o .libs/db_method.o .libs/db_open.o .libs/db_overflow.o .libs/db_pr.o .libs/db_rec.o .libs/db_reclaim.o .libs/db_rename.o .libs/db_remove.o .libs/db_ret.o .libs/db_salloc.o .libs/db_setid.o .libs/db_setlsn.o .libs/db_shash.o .libs/db_stati.o .libs/db_truncate.o .libs/db_upg.o .libs/db_upg_opd.o .libs/dbm.o .libs/dbreg.o .libs/dbreg_auto.o .libs/dbreg_rec.o .libs/dbreg_stat.o .libs/dbreg_util.o .libs/env_failchk.o .libs/env_file.o .libs/env_method.o .libs/env_open.o .libs/env_recover.o .libs/env_region.o .libs/env_register.o .libs/env_stat.o .libs/fileops_auto.o .libs/fop_basic.o .libs/fop_rec.o .libs/fop_util.o .libs/hash_func.o .libs/hmac.o .libs/hsearch.o .libs/lock.o .libs/lock_deadlock.o .libs/lock_failchk.o .libs/lock_id.o .libs/lock_list.o .libs/lock_method.o .libs/lock_region.o .libs/lock_stat.o .libs/lock_timer.o .libs/lock_util.o .libs/log.o .libs/log_archive.o .libs/log_compare.o .libs/log_debug.o .libs/log_get.o .libs/log_method.o .libs/log_put.o .libs/log_stat.o .libs/mp_alloc.o .libs/mp_bh.o .libs/mp_fget.o .libs/mp_fmethod.o .libs/mp_fopen.o .libs/mp_fput.o .libs/mp_fset.o .libs/mp_method.o .libs/mp_region.o .libs/mp_register.o .libs/mp_stat.o .libs/mp_sync.o .libs/mp_trickle.o .libs/mut_alloc.o .libs/mut_method.o .libs/mut_region.o .libs/mut_stat.o .libs/os_abs.o .libs/os_alloc.o .libs/os_clock.o .libs/os_config.o .libs/os_dir.o .libs/os_errno.o .libs/os_fid.o .libs/os_flock.o .libs/os_fsync.o .libs/os_handle.o .libs/os_id.o .libs/os_map.o .libs/os_method.o .libs/os_mkdir.o .libs/os_oflags.o .libs/os_open.o .libs/os_region.o .libs/os_rename.o .libs/os_root.o .libs/os_rpath.o .libs/os_rw.o .libs/os_seek.o .libs/os_sleep.o .libs/os_spin.o .libs/os_stat.o .libs/os_tmpdir.o .libs/os_truncate.o .libs/os_unlink.o .libs/sha1.o .libs/seq_stat.o .libs/sequence.o .libs/snprintf.o .libs/txn.o .libs/txn_auto.o .libs/txn_chkpt.o .libs/txn_failchk.o .libs/txn_method.o .libs/txn_rec.o .libs/txn_recover.o .libs/txn_region.o .libs/txn_stat.o .libs/txn_util.o .libs/xa.o .libs/xa_db.o .libs/xa_map.o   -Wl,--version-script=Versions -Wl,-soname -Wl,libdb-4.4.so -o .libs/libdb-4.4.so
/usr/bin/ld:Versions:3: syntax error in VERSION script
collect2: ld returned 1 exit status
make[1]: *** [libdb-4.4.la] Error 1

This problem occurs because the output of the 'nm' command is different
on ppc64 compared to other architectures. On ppc64, there are no symbols
marked with the letters 'T' or 'R'. Consequently, the above 'grep " [TR] "'
command does not find any matching lines and the 'global:' section
of the Versions file becomes empty on ppc64:

DB4_4 {
  global:
local: *; };

The attached patch disables the use of the Versions script on ppc64.
With this patch 'db4.4' can be compiled on ppc64.

Regards
Andreas Jochens

diff -urN ../tmp-orig/db4.4-4.4.20/dist/Makefile.in ./dist/Makefile.in
--- ../tmp-orig/db4.4-4.4.20/dist/Makefile.in	2006-02-28 10:48:20.000000000 +0000
+++ ./dist/Makefile.in	2006-02-28 08:44:51.000000000 +0000
@@ -714,7 +714,11 @@
 	printf "local: *; };\n" >> $@
 
 $(libso_target): $(C_OBJS) Versions
+ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH),ppc64)
+	$(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) $(LIBCSO_LIBS)
+else
 	$(SOLINK) $(SOFLAGS) -Wl,--version-script=Versions $(LDFLAGS) -o $@ $(C_OBJS) $(LIBCSO_LIBS)
+endif
 	$(rm) -f $(libdb)
 	$(ln) -s .libs/$(libdb_version) $(libdb)
 




More information about the Pkg-db-devel mailing list