Subject: Problems during crossbuild on i386
To: None <port-dreamcast@netbsd.org>
From: Harold Gutch <logix@foobar.franken.de>
List: port-dreamcast
Date: 08/20/2003 17:09:39
Hi,

I'm unable to crossbuild NetBSD-current for Dreamcast on i386.
It bails out in:

  dependall ===> libexec/hpropd
  [...]
  /usr/obj/usr/src/tooldir.NetBSD-1.6W-i386/bin/shle--netbsdelf-gcc -o hpropd -nostdlib -Wl,-rpath-link,/usr/obj/usr/src/destdir.dreamcast/lib:/usr/obj/usr/src/destdir.dreamcast/usr/lib -L/usr/obj/usr/src/destdir.dreamcast/lib /usr/obj/usr/src/destdir.dreamcast/usr/lib/crt0.o /usr/obj/usr/src/destdir.dreamcast/usr/lib/crti.o /usr/obj/usr/src/destdir.dreamcast/usr/lib/crtbegin.o hpropd.o -lhdb -lkrb5 -lkdb -lkrb -lcrypto  -lasn1 -lcom_err -L/usr/obj/usr/src/lib/libvers -lvers -lroken  -lcrypt -L/usr/obj/usr/src/destdir.dreamcast/usr/lib -L/usr/obj/usr/src/destdir.dreamcast/usr/lib  -lgcc -lc -lgcc /usr/obj/usr/src/destdir.dreamcast/usr/lib/crtend.o /usr/obj/usr/src/destdir.dreamcast/usr/lib/crtn.o
  /usr/obj/usr/src/destdir.dreamcast/usr/lib/libkdb.a(krb_kdb_utils.o): In function `kdb_new_get_master_key':
  krb_kdb_utils.o(.text+0x168): undefined reference to `des_key_sched'
  krb_kdb_utils.o(.text+0x174): undefined reference to `des_read_pw_string'
  krb_kdb_utils.o(.text+0x17c): undefined reference to `des_string_to_key'
  /usr/obj/usr/src/destdir.dreamcast/usr/lib/libkdb.a(krb_kdb_utils.o): In function `kdb_new_get_new_master_key':
  krb_kdb_utils.o(.text+0x1d0): undefined reference to `des_read_password'
  krb_kdb_utils.o(.text+0x1dc): undefined reference to `des_key_sched'
  /usr/obj/usr/src/destdir.dreamcast/usr/lib/libkdb.a(krb_kdb_utils.o): In function `kdb_encrypt_key':
  krb_kdb_utils.o(.text+0x294): undefined reference to `des_pcbc_encrypt'
  collect2: ld returned 1 exit status
  *** Error code 1

  Stop.
  nbmake: stopped in /usr/src/libexec/hpropd

(sorry for the overlong lines)

These symbols are in libdes, which is already built at that
point.  Note that in the command above -ldes is not specified.
The same thing happens on a native i386 build, but gcc seems to
automatically link the resulting binary against libdes, since it
picks this dependency up from somewhere (I guess from one of the
other libraries linked against it, perhaps libkrb).

I could work around this e.g. by adding "-ldes" to LIBKDB, but I
was wondering what the correct fix to this is.  Is this a bug in
ld or in src?


bye,
  Harold