Re: Systemd Multilib build success

"Eric Clothier" ([email protected] via alfs-discuss Mailing List) <[email protected]>
Newsgroups gmane.linux.lfs.automated
Message-ID <CAAGwWFU4jPp2pu3u50h+iWhTqt1pQVAmCTKtp=aZKKeXKf=G2g@mail.gmail.com>
On Mon, Dec 23, 2024 at 5:53 PM Eric Clothier <[email protected]>
wrote:

> On Mon, Dec 23, 2024, 16:49 Thomas Trepl <[email protected]>
> wrote:
>
>> Am Montag, dem 23.12.2024 um 00:14 -0500 schrieb Eric Clothier:
>> > On Sun, Dec 22, 2024 at 11:07 PM Eric Clothier <[email protected]>
>> wrote:
>> > > ...
>> > >
>> > > Thomas, I have a patch that I am currently testing to update the
>> systemd build instructions. Once I can verify the build completed and is
>> bootable, I will send the patch. I addressed the issues Xi raised, aside
>> from the CFLAGS/CXXFLAGS, as those are on the mx32 builds only and I
>> haven't gotten to that point yet. I also updated the meson switches from
>> -Dxxx to -D xxx style, and switched to meson setup invocation, to match the
>> non-multilib instructions. And I removed some duplicated/deprecated
>> switches as well.
>> > >
>> > > --
>> > > Eric
>> > >
>> >
>> >
>> > Attached is the patch I mentioned in my last email. As I stated, it
>> only contains fixes for the m32 build, NOT for mx32, as I have not had the
>> chance to do an mx32 build yet. I can confirm that the build is successful
>> with this patch, and the system is bootable. I have NOT tested any linking
>> to the lib32 systemd build, as I have not used any m32 specific software
>> with this build as of yet. I matched the format and switches from the
>> non-multilib build and from other lib32 builds throughout the book. The
>> patch can be applied with git am.
>> >
>> > --
>> > Eric
>> > > >
>> Thanks Eric, i applied the patch to ML/systemd and adopted the
>> instructions
>> to mx32, too. Removed the xslt thing completely, it seem s indeed
>> obsolete.
>>
>> Thanks again,
>>
>> --
>> Thomas
>>
> No problem Thomas. I just adapted the instructions to mx32 as well and
> started the build up from my last lfs build. I went ahead and removed the
> CFLAGS/CXXFLAGS as well, I will let you know if it breaks anything on mx32.
> Also, after I sent the patch, I remembered that util-linux does link
> against the m32/mx32 libs of systemd. So I can confirm that the m32 changes
> did indeed work properly. As I said, I'll report back on mx32 once the
> build finishes and I can verify it boots properly.
>
> --
> Eric
>
Just verified that the ml_all build was a success, and does boot
successfully. Removing the CFLAGS/CXXFLAGS and fixing the meson switches
for mx32 had no negative impact that I have seen. I will attach my SBU_DU
report, along with the final patch I created to fix the mx32 side of the
build.

--
Eric

-- 
http://lists.linuxfromscratch.org/sympa/info/alfs-discuss
Unsubscribe: See the above information page
0001-systemd-multilib-x32-remove-xsltproc-symlink-update-.patch (text/x-patch, 4.9 KB)
From 2b64ea0added176a6bc9c6e0110266e7b967e297 Mon Sep 17 00:00:00 2001
From: Eric Clothier <[email protected]>
Date: Mon, 23 Dec 2024 16:48:31 -0500
Subject: [PATCH] systemd-multilib-x32: remove xsltproc symlink, update meson
 switches, only install needed multilib libs

Remove xsltproc symlink:
  Remove the creation of xsltproc symlink in favor of properly
  supressing man page generation via meson switches, same as
  non-multilib build instructions

Update meson switches:
  Change meson switch style from -Dxxx to -D xxx to match non-
  multilib build instructions
  Remove duplicated/deprecated meson switches
  Fix man page supression switch

Only install needed multilib libs:
  Only libsystemd.so* and libudev.so* are needed from the multilib
  builds, so only install those
  Remove removal of xsltproc symlink as it is no longer created
  Fix previous commit to also remove xsltproc symlink removal
---
 chapter08/systemd.xml | 61 +++++++++++++++++++++++++------------------
 1 file changed, 35 insertions(+), 26 deletions(-)

diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 13408789c..03e61c4f8 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -330,8 +330,7 @@ meson setup ..                       \
 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
 cp -v DESTDIR/usr/lib32/libsystemd.so* /usr/lib32
 cp -v DESTDIR/usr/lib32/libudev.so* /usr/lib32
-rm -rf DESTDIR
-rm -f /usr/bin/xsltproc</userinput></screen>
+rm -rf DESTDIR </userinput></screen>
 
   </sect2><!-- m32 -->
 
@@ -346,9 +345,12 @@ rm -f /usr/bin/xsltproc</userinput></screen>
 
 <screen><userinput remap="pre">rm -rf *</userinput></screen>
 
-    <para>Create a symlink to work around missing xsltproc:</para>
+<!-- Remove the symlink to work around missing xsltproc
+     Man page generation will be properly supressed in meson options -->
+
+    <!-- para>Create a symlink to work around missing xsltproc:</para>
 
-<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>
+<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen -->
 <!--
     <para>Fix an issue on x32:</para>
 
@@ -357,30 +359,32 @@ sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</u
 -->
     <para>Prepare systemd for compilation:</para>
 
+<!-- Match config switch style (-Dxxx -> -D xxx) to initial build above
+         Properly supress man page generation (-D man=disabled)
+            (Removes need for xsltproc symlink)
+         Remove deprecated switches that are duplicates/not needed
+            (-Drootlibdir deprecated, covered by libdir= option)
+            (-Db_lto not found in meson-options.txt, lto handled by mode switch)
+            (-Dblkid deprecated) -->
+
 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \
 CC="gcc -mx32"                          \
 CXX="g++ -mx32"                         \
-CFLAGS+=" -Wno-error=shift-overflow"    \
-CXXFLAGS+=" -Wno-error=shift-overflow"  \
 LANG=en_US.UTF-8                        \
-meson --prefix=/usr                     \
-      --sysconfdir=/etc                 \
-      --localstatedir=/var              \
+meson setup ..                          \
+      --prefix=/usr                     \
       --libdir=/usr/libx32              \
-      -Drootlibdir=/usr/libx32          \
-      -Dblkid=true                  \
-      -Ddefault-dnssec=no           \
-      -Dfirstboot=false             \
-      -Dinstall-tests=false         \
-      -Dldconfig=false              \
-      -Dsysusers=false              \
-      -Db_lto=false                 \
-      -Drpmmacrosdir=no             \
-      -Dhomed=false                 \
-      -Duserdb=false                \
-      -Dman=false                   \
-      -Dmode=release                \
-      ..</userinput></screen>
+      --buildtype=release               \
+      -D default-dnssec=no              \
+      -D firstboot=false                \
+      -D install-tests=false            \
+      -D ldconfig=false                 \
+      -D sysusers=false                 \
+      -D rpmmacrosdir=no                \
+      -D homed=false                    \
+      -D userdb=false                   \
+      -D man=disabled                   \
+      -D mode=release </userinput></screen>
 
     <para>Compile the package:</para>
 
@@ -388,10 +392,15 @@ meson --prefix=/usr                     \
 
     <para>Install the package:</para>
 
+<!-- Only install needed libs from lib32 as opposed to installing all libs
+         Needed libs: libudev.so*
+                      libsystemd.so*-->
+
+
 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR
-rm -f /usr/bin/xsltproc</userinput></screen>
+cp -v DESTDIR/usr/libx32/libsystemd.so* /usr/libx32
+cp -v DESTDIR/usr/libx32/libudev.so* /usr/libx32
+rm -rf DESTDIR </userinput></screen>
 
   </sect2><!-- mx32 -->
 
-- 
2.43.0
r12.2-835-systemd-SBU_DU-2024-12-23.report (application/octet-stream, 60.7 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.