Subject: pkg/31168: databases/db3 fails to link
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <schmonz-lists-netbsd-public-bugs-sendpr@schmonz.com>
List: pkgsrc-bugs
Date: 09/06/2005 01:57:00
>Number:         31168
>Category:       pkg
>Synopsis:       databases/db3 fails to link
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Sep 06 01:57:00 +0000 2005
>Originator:     Amitai Schlair
>Release:        Mac OS X 10.4.2
>Organization:
Schmonz Enterprises
>Environment:
Darwin schmonzbook 8.2.0 Darwin Kernel Version 8.2.0: Fri Jun 24 17:46:54 PDT 2005; root:xnu-792.2.4.obj~3/RELEASE_PPC Power Macintosh powerpc
>Description:
databases/db3 fails to link. (My filesystem is a case-sensitive HFS+, which should be fine.) The failing command:

gcc -pipe -dynamiclib ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o .libs/libdb3_cxx.3.0.11.dylib  .libs/cxx_app.o .libs/cxx_except.o .libs/cxx_lock.o .libs/cxx_log.o .libs/cxx_mpool.o .libs/cxx_table.o .libs/cxx_txn.o .libs/mut_tas.o .libs/db185.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_upgrade.o .libs/bt_verify.o .libs/btree_auto.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_conv.o .libs/db_dispatch.o .libs/db_dup.o .libs/db_err.o .libs/db_getlong.o .libs/db_iface.o .libs/db_join.o .libs/db_log2.o .libs/db_meta.o .libs/db_method.o .libs/db_overflow.o .libs/db_pr.o .libs/db_rec.o .libs/db_reclaim.o .libs/db_ret.o .libs/db_salloc.o .libs/db_shash.o .libs/db_upg.o .li
 bs/db_upg_opd.o .libs/db_vrfy.o .libs/db_vrfyutil.o .libs/dbm.o .libs/env_method.o .libs/env_open.o .libs/env_recover.o .libs/env_region.o .libs/hash.o .libs/hash_auto.o .libs/hash_conv.o .libs/hash_dup.o .libs/hash_func.o .libs/hash_meta.o .libs/hash_method.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/hsearch.o .libs/lock.o .libs/lock_deadlock.o .libs/lock_method.o .libs/lock_region.o .libs/lock_stat.o .libs/lock_util.o .libs/log.o .libs/log_archive.o .libs/log_auto.o .libs/log_compare.o .libs/log_findckp.o .libs/log_get.o .libs/log_method.o .libs/log_put.o .libs/log_rec.o .libs/log_register.o .libs/mp_alloc.o .libs/mp_bh.o .libs/mp_fget.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/mutex.o .libs/os_abs.o .libs/os_alloc.o .libs/os_dir.o .libs/os_errno.o .libs/os_fid.o .libs/os_fini
 t.o .libs/os_fsync.o .libs/os_handle.o .libs/os_map.o .libs/os_method.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_unlink.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/txn.o .libs/txn_auto.o .libs/txn_rec.o .libs/txn_recover.o .libs/txn_region.o .libs/txn_stat.o .libs/xa.o .libs/xa_db.o .libs/xa_map.o  -L/Users/schmonz/pkgsrc/databases/db3/work.schmonzbook/.buildlink/lib  -install_name  /usr/pkg/lib/libdb3_cxx.3.dylib -Wl,-compatibility_version -Wl,4 -Wl,-current_version -Wl,4.11
ld: /usr/lib/gcc/powerpc-apple-darwin8/4.0.0/libgcc_eh.a(unwind-dw2.o) has external relocation entries in non-writable section (__TEXT,__text) for symbols:
restFP
saveFP
/usr/bin/libtool: internal link edit command failed
*** Error code 1

Stop.
bmake: stopped in /Users/schmonz/pkgsrc/databases/db3/work.schmonzbook/db-3.3.11/build_unix
*** Error code 1

Stop.
>How-To-Repeat:
Update to pkgsrc-current. Attempt to build databases/db3.
>Fix:
http://www.astro.gla.ac.uk/users/norman/note/2004/restFP/ has an explanation of the problem. Its recommendation is to add -lcc_dynamic to the linker arguments, unless -lgcc is already one of those arguments.

This probably needs to be handled in devel/libtool-base for the benefit of software outside pkgsrc, as well as in the Darwin wrappers for packages not using GNU libtool to build their libraries.