problems building a release

Mark Millard marklmi at yahoo.com
Sat Mar 13 21:57:20 UTC 2021


On 2021-Mar-13, at 13:41, Mark Millard <marklmi at yahoo.com> wrote:

>> On 2021-Mar-13, at 12:43, Don Lewis <truckman at FreeBSD.org> wrote:
>> 
>> On 13 Mar, Mark Millard wrote:
>>> . . .
>> 
>> Thanks.  All of this stuff is pretty confusing.
>> 
>> If I specify MAKE_CONF in release.conf, it does affect the target build.
>> In particular MODULES_OVERRIDE does the right thing.
>> 
>> It seems like there should be a way to specify a make.conf and src.conf
>> so that they get included in the release so that if the release is
>> installed and then world and kernel are built it reproduces itself.
>> 
>> I did manage to unmute release.sh and make so that the build is verbose,
>> but the error I get when I specify TARGET and TARGET_ARCH in the
>> make.conf is still a mystery.  There doesn't seem to be a line buffering
>> problem hiding things, this was captured from the terminal window with
>> no redirections involved.
>> 
>> ===> etc (installconfig)
>> mkdir -p bootonly/usr/freebsd-dist
>> cp MANIFEST bootonly/usr/freebsd-dist
>> ln -fs /tmp/bsdinstall_etc/resolv.conf bootonly/etc/resolv.conf
>> echo sendmail_enable=\"NONE\" > bootonly/etc/rc.conf
>> echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf
>> echo debug.witness.trace=0 >> bootonly/etc/sysctl.conf
>> echo vfs.mountroot.timeout=\"10\" >> bootonly/boot/loader.conf
>> echo kernels_autodetect=\"NO\" >> bootonly/boot/loader.conf
>> cp /usr/src/release/rc.local bootonly/etc
>> sh /usr/src/release/i386/mkisoimages.sh -b 14_0_CURRENT_i386_BO bootonly.iso bootonly 
>> sh /usr/src/release/i386/make-memstick.sh disc1 memstick.img
>> Calculated size of `memstick.img.part': 624754688 bytes, 13074 inodes
>> Extent size set to 32768
>> memstick.img.part: 595.8MB (1220224 sectors) block size 32768, fragment size 4096
>> 	using 1 cylinder groups of 595.81MB, 19066 blks, 13952 inodes.
>> super-block backups (for fsck -b #) at:
>> 192,
>> Populating `memstick.img.part'
>> Image `memstick.img.part' complete
>> sh /usr/src/release/i386/make-memstick.sh bootonly mini-memstick.img
>> Calculated size of `mini-memstick.img.part': 237436928 bytes, 13069 inodes
>> Extent size set to 32768
>> mini-memstick.img.part: 226.4MB (463744 sectors) block size 32768, fragment size 4096
>> 	using 1 cylinder groups of 226.44MB, 7246 blks, 14592 inodes.
>> super-block backups (for fsck -b #) at:
>> 192,
>> Populating `mini-memstick.img.part'
>> Image `mini-memstick.img.part' complete
> 
> The below notes are about what starts here:
> 
>> make -C /usr/src/release  release-done
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> touch release
>> true
> 
> That is interesting as this turns out to be a fairly
> simple context by the time that "make . . . release-done"
> is echoed:
> 
> QUOTE
> release:        real-release vm-release cloudware-release
>        ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} release-done
>        true
> 
> release-done:
>        touch release
> END QUOTE
> 
> but by then "real-release vm-release cloudware-release"
> completed and we see the touch and true after the messages.
> 
> So it looks like the 6 "not found" messages are from
> make's internal activities.
> 
> It would be interesting to get a truss -f log (or some such)
> of that "${MAKE} . . . release-done" out into to a file.
> There should not be much other activity in the file generated.
> That might expose the activity producing the "not found"
> messages.
> 
> Also interesting might be adding a "file /libexec/ld-elf.so.1"
> command line to release: or adding other such context reporting
> there, such as "uname -apKU" .
> 
>> + eval chroot /scratch make -C /usr/src/release 'TARGET=i386' 'TARGET_ARCH=i386' 'KERNCONF="GW"' '__MAKE_CONF=/home/dl/gw-release/make.conf' 'SRCCONF=/home/dl/gw-release/src.conf' 'NOPORTS=yes' 'WITH_DVD=' 'WITH_VMIMAGES=' 'WITH_CLOUDWARE=' 'XZ_THREADS=0' install 'DESTDIR=/R' 'WITH_COMPRESSED_IMAGES=' 'WITH_COMPRESSED_VMIMAGES='
>> + chroot /scratch make -C /usr/src/release 'TARGET=i386' 'TARGET_ARCH=i386' 'KERNCONF=GW' '__MAKE_CONF=/home/dl/gw-release/make.conf' 'SRCCONF=/home/dl/gw-release/src.conf' 'NOPORTS=yes' 'WITH_DVD=' 'WITH_VMIMAGES=' 'WITH_CLOUDWARE=' 'XZ_THREADS=0' install 'DESTDIR=/R' 'WITH_COMPRESSED_IMAGES=' 'WITH_COMPRESSED_VMIMAGES='
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
>> ELF interpreter /libexec/ld-elf.so.1 not found, error 8
>> Abort trap
> 
> QUOTE
> install:        release-install vm-install
> END QUOTE
> 
> where the release-install: commands are listed
> later below (so after the "not found" messages).
> 
> Again: seems to be make-internal activities that
> generate the 6 messages.
> 
>> mkdir -p /R
>> cp -a ftp /R/
>> cp -p disc1.iso /R/FreeBSD-14.0-CURRENT-i386-disc1.iso
>> cp -p bootonly.iso /R/FreeBSD-14.0-CURRENT-i386-bootonly.iso
>> cp -p memstick.img /R/FreeBSD-14.0-CURRENT-i386-memstick.img
>> cp -p mini-memstick.img /R/FreeBSD-14.0-CURRENT-i386-mini-memstick.img
>> cd /R && sha512 FreeBSD-14.0-CURRENT-i386* > /R/CHECKSUM.SHA512
>> cd /R && sha256 FreeBSD-14.0-CURRENT-i386* > /R/CHECKSUM.SHA256
>> + return 0
>> + return 0
>> + umount /scratch/dev
> 
> 

If I gather correctly, one can force the:

ELF interpreter /libexec/ld-elf.so.1 not found, error 8
Abort trap

messages to show up on a previously working amd64 system
that has lib32 support by removing /libexec/ld-elf32.so.1
and then trying to run i386 code. (The message generation
does not track the indirection to /libexec/ld-elf32.so.1
and so references a misleading path.)

This might suggest that /libexec/ld-elf32.so.1 is
missing or corrupt in the context those 2 makes
are executing in. (Hopefully no WITHOUT_LIB32= usage
is explicitly involved.)

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



More information about the freebsd-hackers mailing list