Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 04 Jul 2010 19:58:25 +0400
From:      Anonymous <swell.k@gmail.com>
To:        Gabor Kovesdan <gabor@FreeBSD.org>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: [CFT] BSDL iconv in base system
Message-ID:  <86fwzz9r32.fsf@gmail.com>
References:  <4C16C5B5.1070308@FreeBSD.org> <867hlzq4lb.fsf@gmail.com> <867hlzufl6.fsf@gmail.com> <4C1A7A57.3000006@FreeBSD.org> <86bpb9z77g.fsf@gmail.com> <4C2F7917.7040900@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Gabor Kovesdan <gabor@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
@@ -481,9 +481,11 @@ 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"
%%



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86fwzz9r32.fsf>