Re: [CFT] BSDL iconv in base system

From: Anonymous <swell.k_at_gmail.com>
Date: Sun, 04 Jul 2010 19:58:25 +0400
Gabor Kovesdan <gabor_at_FreeBSD.org> writes:

> Em 2010.06.17. 23:21, Anonymous escreveu:
>>> If cross-compiling doesn't work, how did you build the former one that
>>> gave you that error?
>>>
>> Here is my guess
>>
>> libiconv_modules compiles fine but installs both normal and lib32 objdir
>> into /usr/lib when lib32 should use /usr/lib32.
>>
>> mkcsmapper/mkesdb are failing to install because they're treated as
>> build-tools for host system and never compiled for target
>> system. However, they're not included in lib32 target and so are not
>> built for i386 arch during normal buildworld on amd64 host where
>> host = target.
>>
> Here's the new patch, which is supposed to fix the following issues:
> - Fixed build on amd64 and fixed cross-compiling
> - Fixed hang when linked to libthr
> - Fixed iconv() prototype as per POSIX
> - More GNU compatibility: "" or "char" means the current local
> encoding in use
>
> http://kovesdan.org/patches/iconv_current.diff

Do you create /usr/lib32/i18n directory before installing into it?

  $ make buildworld
  ...
  ===> lib/libiconv_modules/BIG5 (install)
  sh /a/dirty_build/tools/install.sh  -o root -g wheel -m 444     libBIG5.so.4 /a/objdir/a/dirty_build/lib32/usr/lib32/i18n
  ln -fs libBIG5.so.4 /a/objdir/a/dirty_build/lib32/usr/lib32/i18n/libBIG5.so
  ln: /a/objdir/a/dirty_build/lib32/usr/lib32/i18n/libBIG5.so: Not a directory
  *** Error code 1

  $ sudo make installworld
  ...
  ===> libiconv_modules (install)
  ===> libiconv_modules/BIG5 (install)
  install  -o root -g wheel -m 444     libBIG5.so.4 /usr/lib32/i18n
  ln -fs libBIG5.so.4 /usr/lib32/i18n/libBIG5.so
  ln: /usr/lib32/i18n/libBIG5.so: Not a directory
  *** Error code 1

  $ file /a/objdir/a/dirty_build/lib32/usr/lib32/dtrace
  /a/objdir/a/dirty_build/lib32/usr/lib32/dtrace: ELF 32-bit LSB relocatable, Intel 80386, version 1 (FreeBSD), not stripped

  $ file /a/objdir/a/dirty_build/lib32/usr/lib32/i18n
  /a/objdir/a/dirty_build/lib32/usr/lib32/i18n: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped

  $ file /usr/lib32/i18n
  /usr/lib32/i18n: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped

%%

  this fixes only `installworld' case, though

--- Makefile.inc1~
+++ Makefile.inc1
_at__at_ -481,9 +481,11 _at__at_ distribute32 install32:
 .if make(distribute32)
 	mkdir -p ${DISTDIR}/${DISTRIBUTION}/usr/lib32	# XXX add to mtree
 	mkdir -p ${DISTDIR}/${DISTRIBUTION}/usr/lib32/dtrace	# XXX add to mtree
+	mkdir -p ${DISTDIR}/${DISTRIBUTION}/usr/lib32/i18n	# XXX add to mtree
 .else
 	mkdir -p ${DESTDIR}/usr/lib32			# XXX add to mtree
 	mkdir -p ${DESTDIR}/usr/lib32/dtrace		# XXX add to mtree
+	mkdir -p ${DESTDIR}/usr/lib32/i18n		# XXX add to mtree
 .endif
 	cd ${.CURDIR}/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
 .if ${MK_CDDL} != "no"
%%
Received on Sun Jul 04 2010 - 13:59:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:05 UTC