problems building a release

Don Lewis truckman at FreeBSD.org
Sat Mar 13 08:11:58 UTC 2021


On 10 Mar, Mark Millard wrote:
> On 2021-Mar-10, at 15:00, Don Lewis <truckman at FreeBSD.org> wrote:
> 
>> I'm trying to build a customized 13.0 i386 release on a amd64 host
>> running FreeBSD 14.0-CURRENT #89 n245058-1ca8842f3ad9.  The source tree
>> is branch releng/13.0 from last night.  The release build gets most of
>> the way through, but fails with:
>> 
>> ===> usr.bin/svn/lib/libsvn_wc (installconfig)
>> --- installconfig_subdir_usr.sbin ---
>> --- installconfig_subdir_usr.sbin/pkg ---
>> --- installdirs-CONFSDIR ---
>> --- _CONFSINS_FreeBSD.conf.quarterly ---
>> --- installdirs-CONFSDIR ---
>> installing DIRS CONFSDIR
>> install -N /scratch/usr/src/etc  -d -m 0755 -o root  -g wheel  /scratch/etc/pkg
>> --- _CONFSINS_FreeBSD.conf.quarterly ---
>> install -N /scratch/usr/src/etc  -C -o root  -g wheel -m 644  /scratch/usr/src/usr.sbin/pkg/FreeBSD.conf.quarterly /scratch/etc/pkg/FreeBSD.conf
>> Shared object "libedit.so.8" not found, required by "sh"
>> 
>> /scratch/bin/sh seems to work, though it is using the host library:
>> # ldd /scratch/bin/sh
>> /scratch/bin/sh:
>> 	libedit.so.8 => /usr/lib32/libedit.so.8 (0x20463000)
>> 	libc.so.7 => /usr/lib32/libc.so.7 (0x20495000)
>> 	libncursesw.so.9 => /usr/lib32/libncursesw.so.9 (0x20683000)
>> # /scratch/bin/sh
>> # 
>> 
>> The library is present in /scratch/lib:
>> # file /scratch/lib/libedit.so.8
>> /scratch/lib/libedit.so.8: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), dynamically linked, for FreeBSD 13.0 (1300139), stripped
>> 
>> Unfortunately the build isn't verbose enough to give me any hints about
>> where the problem might be.  I've been able to build FreeBSD 11.x and
>> 12.x releases this way, but no luck so far with 13.
>> 
>> Update: I am able to build an amd64 release, so the problem has
>> something to do with crossbuilds.  There are some other problems that
>> crop up, though.
>> 
>> 
>> ===> usr.bin/svn/lib/libsvn_wc (installconfig)
>> --- installconfig_subdir_usr.sbin ---
>> --- installconfig_subdir_usr.sbin/pkg ---
>> --- installdirs-CONFSDIR ---
>> --- _CONFSINS_FreeBSD.conf.quarterly ---
>> --- installdirs-CONFSDIR ---
>> installing DIRS CONFSDIR
>> install -N /scratch/usr/src/etc  -d -m 0755 -o root  -g wheel  /scratch/etc/pkg
>> --- _CONFSINS_FreeBSD.conf.quarterly ---
>> install -N /scratch/usr/src/etc  -C -o root  -g wheel -m 644  /scratch/usr/src/usr.sbin/pkg/FreeBSD.conf.quarterly /scratch/etc/pkg/FreeBSD.conf
>> ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lib/perl5/5.20/mach/CORE
>> 32-bit compatibility ldconfig path: /usr/lib32
>> pkg: Warning: Major OS version upgrade detected.  Running "pkg-static install -f pkg" recommended
>> Updating FreeBSD repository catalogue...
>> Fetching meta.txz: 100%    916 B   0.9kB/s    00:01    
>> pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
>> repository FreeBSD has no meta file, using default settings
>> Fetching packagesite.txz: 100%    6 MiB   1.6MB/s    00:04    
>> pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
>> Unable to open created repository FreeBSD
>> Unable to update repository FreeBSD
>> All repositories are up-to-date.
>> pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
>> pkg: Repository FreeBSD cannot be opened. 'pkg update' required
>> Updating database digests format: 100%
>> pkg: No packages available to install matching 'devel/git' have been found in the repositories
> 
> 
> To my knowledge FreeBSD does not support 14 directly
> building 13 or before: self hosted and sufficiently
> recent older building newer only, as far as direct
> builds go.

That doesn't seem to be the problem that I'm running into.  I run into a
similar problem when trying to build a 14-CURRENT release.  The cause of
the problem seems to be that I'm specifying TARGET=i386 and TARGET_ARCH=i386
in both release.conf, and the make.conf that release.conf points to.
With 14-CURRENT the failure mode is that something can't find ld-elf.so
and aborts.  That happens a number of times during the release build,
but this time the release build appears to run to completion.  If I
remove the make.conf settings, then the error goes away.  The reason
that I did this in the first place was so I could set TARGET_CPUTYPE.
This setting appears to be ignored in release.conf.  If I set it in
make.conf without setting TARGET=i386 and TARGET_ARCH=i386, then I get a
compiler error because the CPUTYPE is not valid on amd64.  Basically,
the difference is that with the settings in both places, I get an i386
chroot under /scratch and with the settings different, the chroot is
amd64.  I thing the failure is being caused when something tries to run
an amd64 executable in under the i386 chroot.  Verbosity is too low to
see what it is.

Another complication is that I want to maintain the target system with
freebsd-update, so I need to package up my customized make.conf and
src.conf into the release so they get used by the update builder.  It
should be easy to tweak the release script to do this, but it gets
complicated if the the make.conf files have different TARGET settings.





More information about the freebsd-hackers mailing list