Re: EDK2 on RPi3 was: Re: u-boot debug, was: Re: U-boot on RPI3, sees disk but won't boot it
Date: Tue, 25 Oct 2022 16:31:34 UTC
On 2022-Oct-24, at 21:52, Warner Losh <imp@bsdimp.com> wrote: > > On Mon, Oct 24, 2022 at 9:32 PM Mark Millard <marklmi@yahoo.com> wrote: > On 2022-Oct-24, at 17:50, bob prohaska <fbsd@www.zefox.net> wrote: > > . . . > >> > > I've put the console output at > > http://www.zefox.net/~fbsd/rpi2/20221024/boot_console > > in case it's of interest. > > . . . > > I've not seen/noticed the following before: > > QUOTE > ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg /usr/local/lib/compat/pkg > Soft Float compatibility ldconfig path: > ldconfig: illegal option -- o > usage: ldconfig [-32] [-elf] [-Rimrv] [-f hints_file] [directory | file ...] > END QUOTE > > But, to my knowledge, "Soft Float" is not in use any more > (by default, anyway). It might be that something is left > over from long ago? Looking, I see: > > I was sure that all attempts to use it in FreeBSD 12+ had been removed.... > > QUOTE > author Warner Losh <imp@FreeBSD.org> 2022-01-07 05:34:18 +0000 > committer Warner Losh <imp@FreeBSD.org> 2022-01-07 05:34:18 +0000 > commit d418bc27e601ec6bba0506d0efb62eca5eda5ab8 (patch) > tree 14a7fb6ba93ab48d7e1c746a09e7d1d5de6f897e /libexec/rc/rc.d/ldconfig > parent b68d6892ba8aa14470e94a408b43ce4d8b1761da (diff) > download src-d418bc27e601ec6bba0506d0efb62eca5eda5ab8.tar.gz > src-d418bc27e601ec6bba0506d0efb62eca5eda5ab8.zip > > libsoft: Remove runtime ldconfig support for libsoft > > Remove the runtime support for running ldconfig at boot to cache lists > of libsoft libbraries. > END QUOTE > > ( Note: /libexec/rc/rc.d/ldconfig is installed to /etc/rc.d/ldconfig .) > > Your /etc/rc.d/ldconfig script seems to have not been updated > by use of etcupdate or mergemaster or other such. (How much > else is also out of date? How much of what you have for /etc/ > and the like goes back to 2022-Jan-07 or before?) > > Yea... that seems likely... Can you confirm that I've not messed up > a merge somewhere? I booted the RPi2B v1.1 that I have access to, using (long output line split for readability): # uname -apKU FreeBSD OPiP2E_RPI2v1p1 14.0-CURRENT FreeBSD 14.0-CURRENT #49 main-n258610-ba7319e9091b-dirty: Fri Oct 14 18:27:46 PDT 2022 root@CA72_16Gp_ZFS:/usr/obj/BUILDs/main-CA7-nodbg-clang/usr/main-src/arm.armv7/sys/GENERIC-NODBG-CA7 arm armv7 1400072 1400072 (It also has a armv7 EFI loader from the closest artifact build before the change that broke armv7 for that. I've not yet updated to recent enough to have your fix.) My updates track /etc/ changes via etcupdate in the scripts I use (etcupdate since git). I do not get any of the lines: Soft Float compatibility ldconfig path: ldconfig: illegal option -- o usage: ldconfig [-32] [-elf] [-Rimrv] [-f hints_file] [directory | file ...] I'll note that the man arch lists "soft" in some places in the Floating Point table, just not for armv7. Showing the ones that do list "soft": Floating Point Architecture float, double long double aarch64 hard soft, quad precision . . . mips soft identical to double mipsel soft identical to double . . . mipsn32 soft identical to double mips64 soft identical to double mips64el soft identical to double . . . riscv64sf soft soft, quad precision aarch64 and riscv64sf would apply to main [so: 14] for long double. But I'm unsure of any implications for "Soft Float compatibility ldconfig path". For reference: # grep -i soft /etc/rc.d/ldconfig # # more /etc/rc.d/ldconfig #!/bin/sh # # $FreeBSD$ # # PROVIDE: ldconfig # REQUIRE: FILESYSTEMS # BEFORE: DAEMON . /etc/rc.subr name="ldconfig" desc="Configure the shared library cache" ldconfig_command="/sbin/ldconfig" start_cmd="ldconfig_start" stop_cmd=":" ldconfig_start() { local _files _ins _ins= ldconfig=${ldconfig_command} checkyesno ldconfig_insecure && _ins="-i" if [ -x "${ldconfig_command}" ]; then _LDC="/lib /usr/lib" for i in ${ldconfig_local_dirs}; do if [ -d "${i}" ]; then _files=`find ${i} -type f` if [ -n "${_files}" ]; then ldconfig_paths="${ldconfig_paths} `cat ${_files} | sort -u`" fi fi done for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do if [ -r "${i}" ]; then _LDC="${_LDC} ${i}" fi done startmsg 'ELF ldconfig path:' ${_LDC} ${ldconfig} -elf ${_ins} ${_LDC} machine_arch=$(sysctl -n hw.machine_arch) case ${machine_arch} in amd64|mips64|powerpc64) for i in ${ldconfig_local32_dirs}; do if [ -d "${i}" ]; then _files=`find ${i} -type f` if [ -n "${_files}" ]; then ldconfig32_paths="${ldconfig32_paths} `cat ${_files} | sort -u`" fi fi done _LDC="" for i in ${ldconfig32_paths}; do if [ -r "${i}" ]; then _LDC="${_LDC} ${i}" fi done startmsg '32-bit compatibility ldconfig path:' ${_LDC} ${ldconfig} -32 ${_ins} ${_LDC} ;; esac fi } load_rc_config $name run_rc_command "$1" By contrast, https://cgit.freebsd.org/src/tree/libexec/rc/rc.d/ldconfig?h=releng/12.4 still has the code: case `sysctl -n hw.machine_arch` in armv[67]) for i in ${ldconfig_localsoft_dirs}; do if [ -d "${i}" ]; then _files=`find ${i} -type f` if [ -n "${_files}" ]; then ldconfigsoft_paths="${ldconfigsoft_paths} `cat ${_files} | sort -u`" fi fi done _LDC="" for i in ${ldconfigsoft_paths}; do if [ -r "${i}" ]; then _LDC="${_LDC} ${i}" fi done check_startmsgs && echo 'Soft Float compatibility ldconfig path:' ${_LDC} ${ldconfig} -soft ${_ins} ${_LDC} ;; esac As does https://cgit.freebsd.org/src/tree/libexec/rc/rc.d/ldconfig?h=releng/13.1 . As does https://cgit.freebsd.org/src/tree/libexec/rc/rc.d/ldconfig?h=stable/13 . So it looks like only main [so: 14] has that code removed. === Mark Millard marklmi at yahoo.com