From ed93848ce597bcc1a39bb720a994b5e0a19394c0 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 10 Feb 2022 15:33:47 -0500 Subject: [PATCH] system/mbootpack: Fix 15.0 build. Signed-off-by: B. Watson Signed-off-by: Willy Sudiarto Raharjo --- system/mbootpack/README | 13 ++++----- system/mbootpack/mbootpack.SlackBuild | 39 ++++++++++++++++----------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/system/mbootpack/README b/system/mbootpack/README index d22e86a4c7..d613e4069e 100644 --- a/system/mbootpack/README +++ b/system/mbootpack/README @@ -1,8 +1,9 @@ mbootpack (Multiboot kernel and modules) -This is a tool that takes a multiboot kernel and modules (e.g. a Xen VMM, -linux kernel and initrd), and packages them up as a single file that looks -like a bzImage linux kernel. The aim is to allow you to boot multiboot -kernels (in particular, Xen) using bootloaders that don't support multiboot -(i.e. pretty much anything except GRUB and SYSLINUX). This is, as you might -expect, pretty grim stuff, involving lots of lovely 16-bit real-mode code. +This is a tool that takes a multiboot kernel and modules (e.g. a Xen +VMM, linux kernel and initrd), and packages them up as a single file +that looks like a bzImage linux kernel. The aim is to allow you to +boot multiboot kernels (in particular, Xen) using bootloaders that +don't support multiboot (i.e. pretty much anything except GRUB and +SYSLINUX). This is, as you might expect, pretty grim stuff, involving +lots of lovely 16-bit real-mode code. diff --git a/system/mbootpack/mbootpack.SlackBuild b/system/mbootpack/mbootpack.SlackBuild index acfab32340..c80727cbfb 100644 --- a/system/mbootpack/mbootpack.SlackBuild +++ b/system/mbootpack/mbootpack.SlackBuild @@ -22,6 +22,11 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20220210 bkw: Modified by SlackBuilds.org: +# - BUILD=3. +# - build with clang (gcc fails *hard*). +# - only install the actual mbootpack binary in /usr/bin. + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=mbootpack @@ -38,9 +43,6 @@ if [ -z "$ARCH" ]; then esac fi -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -75,25 +77,32 @@ cd $PRGNAM-$VERSION chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ + -o -perm 511 \) -exec chmod 755 {} \+ -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ # Some fixes from ALT Linux folks patch -p1 <$CWD/patches/mbootpack-0.6a-alt3.patch -make +# 20220210 bkw: actually use SLKCFLAGS. +sed -i -e "s,-O3,$SLKCFLAGS," Makefile -# We have to do things manually since mbootpack doesn't have make install +# 20220210 bkw: speeds up the sed scripts slightly. +export LANG=C + +# 20220210 bkw: gcc fails *badly* at compiling this, and I'm not sure why. +# We end up with giant (like 130MB) .c source files and gcc either gets +# OOM-killed or starves everything else of CPU. clang seems fine though. +# -I- is an error in clang. +sed -i -e 's,-I-,-iquote,' Makefile +make CC=clang + +# We have to do things manually since mbootpack doesn't have make install. +# 20220210 bkw: looking at the ALT linux package, the bootsect, mkhex, +# setup binaries don't belong in the package. mkdir -p $PKG/usr/{bin,man/man1} -cp -a bootsect mbootpack mkhex setup $PKG/usr/bin -cp -a mbootpack.man $PKG/usr/man/man1/mbootpack.1 - -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true - -find $PKG/usr/man -type f -exec gzip -9 {} \; -for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +install -s $PRGNAM $PKG/usr/bin +gzip -9c $PRGNAM.man > $PKG/usr/man/man1/$PRGNAM.1.gz mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a Changes GPL README $PKG/usr/doc/$PRGNAM-$VERSION