[CFT] BSDL iconv in base system
Anonymous
swell.k at gmail.com
Sun Jul 4 15:59:01 UTC 2010
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
@@ -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"
%%
More information about the freebsd-current
mailing list