<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[HyperForum — Tryout for temporary newer glibc]]></title>
	<link rel="self" href="https://forums.hyperbola.info/extern.php?action=feed&amp;tid=327&amp;type=atom" />
	<updated>2020-07-30T20:37:12Z</updated>
	<generator>PunBB</generator>
	<id>https://forums.hyperbola.info/viewtopic.php?id=327</id>
		<entry>
			<title type="html"><![CDATA[Re: Tryout for temporary newer glibc]]></title>
			<link rel="alternate" href="https://forums.hyperbola.info/viewtopic.php?pid=2180#p2180" />
			<content type="html"><![CDATA[<p>Here is a rework PKGBUILD for glibc 2.30:</p><div class="codebox"><pre><code># Maintainer (Arch): Allan McRae &lt;allan@archlinux.org&gt;
# Contributor (Artix): artoo &lt;artoo@cromnix.org&gt;
# Maintainer: André Silva &lt;emulatorman@hyperbola.info&gt;
# Contributor: Luke R. &lt;g4jc@hyperbola.info&gt;

# toolchain build order: linux-libre-lts-api-headers-&gt;glibc-&gt;binutils-&gt;gcc-&gt;binutils-&gt;glibc
# NOTE: valgrind requires rebuilt with each major glibc version

pkgbase=glibc
pkgname=(glibc lib32-glibc)
pkgver=2.30
_debver=2.30
_debrel=8
pkgrel=1.hyperbola0
pkgdesc=&quot;GNU C Library&quot;
arch=(&#039;i686&#039; &#039;x86_64&#039;)
url=&quot;https://www.gnu.org/software/libc&quot;
license=(&#039;GPL-2&#039; &#039;LGPL-2.1&#039;)
makedepends=(&#039;gcc&gt;=8&#039; &#039;python&#039; &#039;quilt&#039; &#039;lib32-gcc-libs&#039;)
options=(&#039;!strip&#039; &#039;staticlibs&#039;)
install=glibc.install
source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.bz2{,.sig}
        https://deb.debian.org/debian/pool/main/g/glibc/glibc_$_debver-$_debrel.debian.tar.xz
        locale.gen.txt
        locale-gen
        sdt.h sdt-config.h
        bz20338.patch
        file-truncated-while-reading-soname-after-patchelf.patch
        nscd.initd
        lib32-glibc.conf)
validpgpkeys=(&#039;7273542B39962DF7B299931416792B4EA25340F8&#039;) # Carlos O&#039;Donell &lt;carlos@systemhalted.org&gt;
sha512sums=(&#039;0cb272ddf5bd305fb083486b601c59447964ec320bad2fd3d993a6d27672d697a343184bb032d40ffff2dd3e8da77acba4d5f4bbbfd0621cd2969ef827c20ca0&#039;
            &#039;SKIP&#039;
            &#039;674a632ad20e9c423fac1413aa8a373b0fed7170741e2a32e3a375a212f523b1356863775f5ead7a4ebd4aefc113e77d20ab7be964f1e393e59406e9661d35f2&#039;
            &#039;3d9facc6da5159dcd877473c8a4d77006ef5615e2619ef743255112bfa136baf65239367222e87e7ada823d5c7d747aa5204f8365a806141e5884477898ccd14&#039;
            &#039;d92e6ba83ee86c3602e74c52bf5f99ca751f3867edb894dd22c179003cd58a1b4e11237a293a54fe126edafd5add78a65bf3368826b8bfa40451ee374e301961&#039;
            &#039;8551a79591faad04030e6a792125f4afa81b36606efafd82451cd01470298d21eb0f85a1513b958b02aa9c3266df6a912a476f9840c8489506d16164aa8e2d49&#039;
            &#039;45b8689048e7fe18efb1c49d207aa871f049b4020fb5d25800d60b719451e2b860d4c0ed3b352fc28c311e3c9d3d1f48458e48dab318c14c2975d194678843c4&#039;
            &#039;817947b727e45a90ff2ba3f41447965178d41c1f5e4468a4daa7f80869e6fa103f17a633122179ba50439b09c6a04fe6aa028a3a08081df77f130a4470e28461&#039;
            &#039;b1e2beb7e9e5380230f24231aa2fe14118b89541a4cca6c1bd4bd94fd2ddffb4acc0f5f858407df8d1d830264b0894b1328278c44ebf8a0e847c16c1089494b0&#039;
            &#039;8e9797f6cc7963d7c3233059591fd15c424c5dfa215b618336227982015b27b7a0532735ca70e9f269637e3ab1124c014efb3ce31ade2263a134c545448d89f5&#039;
            &#039;37858ae269bcf0d9d5adf5ac440ffeb9f5b71cce427ca85ff8cf9de6ae4d6011f8e71b83ec4aa183ab2ce248b563b5452e3d0d4b769a26f410d27bb8a31769a4&#039;)

prepare() {
  mkdir -p glibc-build lib32-glibc-build

  cd glibc-${pkgver}

  if [[ ${pkgver%.*} = ${_debver%.*} ]]; then
    # Debian patches
    export QUILT_PATCHES=debian/patches
    export QUILT_REFRESH_ARGS=&#039;-p ab --no-timestamps --no-index&#039;
    export QUILT_DIFF_ARGS=&#039;--no-timestamps&#039;

    mv &quot;$srcdir&quot;/debian .

    # Doesn&#039;t apply and seems unimportant
    rm -v debian/patches/all/local-remove-manual.diff || true
    rm -rv debian/patches/alpha || true
    rm -v debian/patches/any/local-bindresvport_blacklist.diff || true
    rm -v debian/patches/any/local-bootstrap-headers.diff || true
    rm -v debian/patches/any/local-disable-libnss-db.diff || true
    rm -v debian/patches/any/local-ldconfig.diff || true
    rm -v debian/patches/any/local-ldconfig-ignore-ld.so.diff || true
    rm -v debian/patches/any/local-ldconfig-multiarch.diff || true
    rm -v debian/patches/any/local-ld-multiarch.diff || true
    rm -v debian/patches/any/local-ldso-disable-hwcap.diff || true
    rm -v debian/patches/any/local-libpic.diff || true
    rm -v debian/patches/any/local-nss-upgrade.diff || true
    rm -v debian/patches/any/local-rtlddir-cross.diff || true
    rm -v debian/patches/any/local-tcsetaddr.diff || true
    rm -v debian/patches/any/submitted-bits-fcntl_h-at.diff || true
    rm -v debian/patches/any/unsubmitted-ldso-machine-mismatch.diff || true
    rm -rv debian/patches/arm || true
    rm -v debian/patches/git-updates.diff || true
    rm -rv debian/patches/hppa || true
    rm -rv debian/patches/hurd-i386 || true
    rm -rv debian/patches/i386 || true
    rm -rv debian/patches/kfreebsd || true
    rm -rv debian/patches/m68k || true
    rm -rv debian/patches/mips || true
    rm -rv debian/patches/powerpc || true
    rm -rv debian/patches/sh4 || true

    quilt push -av
  fi

  # sync fgetsgent_r.c with grp/fgetgrent_r.c
  patch -p1 -i ../bz20338.patch

  # file truncated while reading soname after patchelf
  patch -p1 -i ../file-truncated-while-reading-soname-after-patchelf.patch
}

build() {
  local _configure_flags=(
      --prefix=/usr
      --with-headers=/usr/include
      --with-bugurl=https://issues.hyperbola.info/
      --enable-add-ons
      --enable-obsolete-rpc
      --enable-kernel=2.6.32
      --enable-bind-now
      --disable-profile
      --enable-stackguard-randomization
      --enable-stack-protector=strong
      --enable-lock-elision
      --enable-multi-arch
      --disable-werror
  )

  cd &quot;$srcdir&quot;/glibc-build

  if [[ ${CARCH} = &quot;i686&quot; ]]; then
    # Hack to fix NPTL issues with Xen, only required on 32bit platforms
    export CFLAGS=&quot;${CFLAGS} -mno-tls-direct-seg-refs&quot;
  fi

  echo &quot;slibdir=/lib&quot; &gt;&gt; configparms
  echo &quot;rtlddir=/lib&quot; &gt;&gt; configparms
  echo &quot;sbindir=/usr/sbin&quot; &gt;&gt; configparms
  echo &quot;rootsbindir=/sbin&quot; &gt;&gt; configparms
  echo &quot;vardbdir=/var/lib/misc&quot; &gt;&gt; configparms

  # remove fortify for building libraries
  CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}

  ../${pkgname}-${pkgver}/configure \
      --libdir=/usr/lib \
      --libexecdir=/usr/libexec \
      ${_configure_flags[@]}


  # build libraries with fortify disabled
  echo &quot;build-programs=no&quot; &gt;&gt; configparms
  make

  # re-enable fortify for programs
  sed -i &quot;/build-programs=/s#no#yes#&quot; configparms

  echo &quot;CC += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  echo &quot;CXX += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  make

  cd &quot;$srcdir&quot;/lib32-glibc-build
  export CC=&quot;gcc -m32 -mstackrealign&quot;
  export CXX=&quot;g++ -m32 -mstackrealign&quot;

  echo &quot;slibdir=/lib32&quot; &gt;&gt; configparms
  echo &quot;rtlddir=/lib32&quot; &gt;&gt; configparms
  echo &quot;sbindir=/usr/sbin&quot; &gt;&gt; configparms
  echo &quot;rootsbindir=/sbin&quot; &gt;&gt; configparms

  # remove fortify for building libraries
  CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
  CFLAGS=${CFLAGS/-fno-plt/}
  CXXFLAGS=${CXXFLAGS/-fno-plt/}

  ../${pkgname}-${pkgver}/configure \
      --host=i686-pc-linux-gnu \
      --libdir=/usr/lib32 \
      --libexecdir=/usr/libexec \
      ${_configure_flags[@]}

  # build libraries with fortify disabled
  echo &quot;build-programs=no&quot; &gt;&gt; configparms
  make

  # re-enable fortify for programs
  sed -i &quot;/build-programs=/s#no#yes#&quot; configparms

  echo &quot;CC += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  echo &quot;CXX += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  make
}

check() {
  cd glibc-build

  # remove fortify in preparation to run test-suite
  sed -i &#039;/FORTIFY/d&#039; configparms

  # some failures are &quot;expected&quot;
  make check || true
}

package_glibc() {
  pkgdesc=&#039;GNU C Library, with OpenRC support&#039;
  depends=(&#039;linux-libre-lts-api-headers&gt;=4.9&#039; tzdata filesystem)
  optdepends=(&#039;gd: for memusagestat&#039;)
  install=glibc.install
  backup=(etc/gai.conf
          etc/locale.gen
          etc/nscd.conf)
  groups=(base)

  cd glibc-build

  install -dm755 ${pkgdir}/etc
  touch ${pkgdir}/etc/ld.so.conf

  make install_root=${pkgdir} install

  rm -f ${pkgdir}/etc/ld.so.{cache,conf}

  install -dm755 ${pkgdir}/usr/lib/locale

  install -m644 ${srcdir}/${pkgname}-${pkgver}/nscd/nscd.conf ${pkgdir}/etc/nscd.conf

  install -Dm755 ${srcdir}/nscd.initd ${pkgdir}/etc/init.d/nscd

  install -m644 ${srcdir}/${pkgname}-${pkgver}/posix/gai.conf ${pkgdir}/etc/gai.conf

  install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin

  # create /etc/locale.gen
  install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
  sed -e &#039;1,3d&#039; -e &#039;s|/| |g&#039; -e &#039;s|\\| |g&#039; -e &#039;s|^|#|g&#039; \
    ${srcdir}/glibc-${pkgver}/localedata/SUPPORTED &gt;&gt; ${pkgdir}/etc/locale.gen

  if check_option &#039;debug&#039; n; then
    find &quot;${pkgdir}&quot;/{sbin,usr/{,s}bin} -type f -executable -exec strip $STRIP_BINARIES {} + 2&gt; /dev/null || true
    find &quot;${pkgdir}&quot;/{,usr/}lib -name &#039;*.a&#039; -type f -exec strip $STRIP_STATIC {} + 2&gt; /dev/null || true

    # Do not strip these for gdb and valgrind functionality, but strip the rest
    find &quot;${pkgdir}&quot;{,/usr}/lib \
      -not -name &#039;ld-*.so&#039; \
      -not -name &#039;libc-*.so&#039; \
      -not -name &#039;libpthread-*.so&#039; \
      -not -name &#039;libthread_db-*.so&#039; \
      -name &#039;*-*.so&#039; -type f -exec strip $STRIP_SHARED {} + 2&gt; /dev/null || true
  fi

  # provide tracing probes to libstdc++ for exceptions, possibly for other
  # libraries too. useful for gdb&#039;s catch command.
  install -Dm644 &quot;${srcdir}/sdt.h&quot; &quot;${pkgdir}/usr/include/sys/sdt.h&quot;
  install -Dm644 &quot;${srcdir}/sdt-config.h&quot; &quot;${pkgdir}/usr/include/sys/sdt-config.h&quot;

  # install license files
  install -dm755 ${pkgdir}/usr/share/licenses/${pkgname}
  install -m644 ${srcdir}/glibc-${pkgver}/{COPYING{,.LIB},LICENSES} ${pkgdir}/usr/share/licenses/${pkgname}
}

package_lib32-glibc() {
  pkgdesc=&#039;GNU C Library (32-bit)&#039;
  depends=(&quot;glibc=$pkgver&quot;)

  cd lib32-glibc-build

  make install_root=&quot;$pkgdir&quot; install
  rm -rf &quot;$pkgdir&quot;/{etc,sbin,usr/{bin,sbin,share},var}

  # We need to keep 32 bit specific header files
  find &quot;$pkgdir/usr/include&quot; -type f -not -name &#039;*-32.h&#039; -delete

  # Dynamic linker
  mkdir ${pkgdir}/lib
  ln -s ../lib32/ld-linux.so.2 &quot;$pkgdir/lib/&quot;

  # Add lib32 paths to the default library search path
  install -Dm644 &quot;$srcdir/lib32-glibc.conf&quot; &quot;$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf&quot;

  # Symlink /usr/lib32/locale to /usr/lib/locale
  ln -s ../lib/locale &quot;$pkgdir/usr/lib32/locale&quot;

  if check_option &#039;debug&#039; n; then
    find &quot;$pkgdir&quot;/usr/lib32 -name &#039;*.a&#039; -type f -exec strip $STRIP_STATIC {} + 2&gt; /dev/null || true
    find &quot;$pkgdir&quot;/usr/lib32 \
      -not -name &#039;ld-*.so&#039; \
      -not -name &#039;libc-*.so&#039; \
      -not -name &#039;libpthread-*.so&#039; \
      -not -name &#039;libthread_db-*.so&#039; \
      -name &#039;*-*.so&#039; -type f -exec strip $STRIP_SHARED {} + 2&gt; /dev/null || true
  fi

  # install license files
  install -dm755 ${pkgdir}/usr/share/licenses/${pkgname}
  install -m644 ${srcdir}/glibc-${pkgver}/{COPYING{,.LIB},LICENSES} ${pkgdir}/usr/share/licenses/${pkgname}
}</code></pre></div><p>The needed additional files can be found <a href="https://libregit.org/Hyperbola/core/src/branch/master/glibc">here</a>.<br />Did a rework because of multilib-support.</p>]]></content>
			<author>
				<name><![CDATA[throgh]]></name>
				<uri>https://forums.hyperbola.info/profile.php?id=347</uri>
			</author>
			<updated>2020-07-30T20:37:12Z</updated>
			<id>https://forums.hyperbola.info/viewtopic.php?pid=2180#p2180</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Tryout for temporary newer glibc]]></title>
			<link rel="alternate" href="https://forums.hyperbola.info/viewtopic.php?pid=1654#p1654" />
			<content type="html"><![CDATA[<p>Hello,</p><p>just wanted to share the modifications I had done for having a newer glibc. Taken the version 2.27-2 from Arch Linux therefore as it is compatible for compiling with gcc-6 - another friendly reminder that we need a newer development-stack as version 6 reached its end of life.</p><p>Getting the files from <a href="https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/glibc&amp;id=3d33d5a31af9eb9125c65a1853f9373c3563d834">here</a>. The PKGBUILD is:</p><div class="codebox"><pre><code># $Id$
# Maintainer:  Bartłomiej Piotrowski &lt;bpiotrowski@archlinux.org&gt;
# Contributor: Allan McRae &lt;allan@archlinux.org&gt;

# toolchain build order: inux-libre-lts-api-headers-&gt;glibc-&gt;binutils-&gt;gcc-&gt;binutils-&gt;glibc
# NOTE: valgrind requires rebuilt with each major glibc version

pkgbase=glibc
pkgname=(glibc lib32-glibc)
pkgver=2.27
pkgrel=2.hyperbola0
arch=(x86_64)
url=&#039;http://www.gnu.org/software/libc&#039;
license=(GPL LGPL)
makedepends=(git gd lib32-gcc-libs)
options=(!strip staticlibs)
_commit=23158b08a0908f381459f273a984c6fd328363cb
#source=(git+https://sourceware.org/git/glibc.git#commit=$_commit
source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig}
        locale.gen.txt
        locale-gen
        lib32-glibc.conf
        bz20338.patch
        nscd.initd)
validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8) # Carlos O&#039;Donell
sha512sums=(&#039;7c5581154487d38d173ce1feb944e60207139cca148bccf066eaae322c0c2d219423bdcfa15c7f9be1b5e45dfc43c641cc5d80d3c3c65837d08a83cdb4e2a147&#039;
            &#039;SKIP&#039;
            &#039;3d9facc6da5159dcd877473c8a4d77006ef5615e2619ef743255112bfa136baf65239367222e87e7ada823d5c7d747aa5204f8365a806141e5884477898ccd14&#039;
            &#039;d92e6ba83ee86c3602e74c52bf5f99ca751f3867edb894dd22c179003cd58a1b4e11237a293a54fe126edafd5add78a65bf3368826b8bfa40451ee374e301961&#039;
            &#039;37858ae269bcf0d9d5adf5ac440ffeb9f5b71cce427ca85ff8cf9de6ae4d6011f8e71b83ec4aa183ab2ce248b563b5452e3d0d4b769a26f410d27bb8a31769a4&#039;
            &#039;ee6cb58bf3f79a702f483318afcd733fe4284609e1755dad7ec0d510c11835a2c850dc2e59e8846b7b0a4d1aff6aacace15eeb9824794fff0d8da84712de9a53&#039;
            &#039;8e9797f6cc7963d7c3233059591fd15c424c5dfa215b618336227982015b27b7a0532735ca70e9f269637e3ab1124c014efb3ce31ade2263a134c545448d89f5&#039;)

prepare() {
  mkdir -p glibc-build lib32-glibc-build

  [[ -d glibc-$pkgver ]] &amp;&amp; ln -s glibc-$pkgver glibc 
  cd glibc

  local i; for i in ${source[@]}; do
    case ${i%::*} in
      *.patch)
        msg2 &quot;Applying ${i}&quot;
        patch -p1 -i &quot;$srcdir/${i}&quot;
        ;;
    esac
  done
}

build() {
  local _configure_flags=(
      --prefix=/usr
      --with-headers=/usr/include
      --with-bugurl=https://issues.hyperbola.info/
      --enable-add-ons
      --enable-obsolete-rpc
      --enable-kernel=2.6.32
      --enable-bind-now
      --enable-lock-elision
      --enable-multi-arch
      --enable-stack-protector=strong
      --enable-stackguard-randomization
      --disable-profile
      --disable-werror
  )

  cd &quot;$srcdir/glibc-build&quot;

  echo &quot;slibdir=/lib&quot; &gt;&gt; configparms
  echo &quot;rtlddir=/lib&quot; &gt;&gt; configparms
  echo &quot;sbindir=/usr/sbin&quot; &gt;&gt; configparms
  echo &quot;rootsbindir=/sbin&quot; &gt;&gt; configparms
  echo &quot;vardbdir=/var/lib/misc&quot; &gt;&gt; configparms

  # remove fortify for building libraries
  CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}

  &quot;$srcdir/glibc/configure&quot; \
      --libdir=/usr/lib \
      --libexecdir=/usr/libexec \
      ${_configure_flags[@]}

  # build libraries with fortify disabled
  echo &quot;build-programs=no&quot; &gt;&gt; configparms
  make -j4

  # re-enable fortify for programs
  sed -i &quot;/build-programs=/s#no#yes#&quot; configparms

  echo &quot;CC += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  echo &quot;CXX += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  make -j4

  cd &quot;$srcdir/lib32-glibc-build&quot;
  export CC=&quot;gcc -m32 -mstackrealign&quot;
  export CXX=&quot;g++ -m32 -mstackrealign&quot;

  echo &quot;slibdir=/lib32&quot; &gt;&gt; configparms
  echo &quot;rtlddir=/lib32&quot; &gt;&gt; configparms
  echo &quot;sbindir=/usr/sbin&quot; &gt;&gt; configparms
  echo &quot;rootsbindir=/sbin&quot; &gt;&gt; configparms

  # remove fortify for building libraries
  CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
  CFLAGS=${CFLAGS/-fno-plt/}
  CXXFLAGS=${CXXFLAGS/-fno-plt/}

  &quot;$srcdir/glibc/configure&quot; \
      --host=i686-pc-linux-gnu \
      --libdir=/usr/lib32 \
      --libexecdir=/usr/libexec \
      ${_configure_flags[@]}

  # build libraries with fortify disabled
  echo &quot;build-programs=no&quot; &gt;&gt; configparms
  make -j4

  # re-enable fortify for programs
  sed -i &quot;/build-programs=/s#no#yes#&quot; configparms

  echo &quot;CC += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  echo &quot;CXX += -D_FORTIFY_SOURCE=2&quot; &gt;&gt; configparms
  make -j4

}

check() {
  cd glibc-build

  # remove fortify in preparation to run test-suite
  sed -i &#039;/FORTIFY/d&#039; configparms

  # some failures are &quot;expected&quot;
  make check || true
}

package_glibc() {
  pkgdesc=&#039;GNU C Library, with OpenRC support&#039;
  depends=(&#039;linux-libre-lts-api-headers&gt;=4.9&#039; tzdata filesystem)
  optdepends=(&#039;gd: for memusagestat&#039;)
  install=glibc.install
  backup=(etc/gai.conf
          etc/locale.gen
          etc/nscd.conf)
  groups=(base)

  install -dm755 &quot;$pkgdir/etc&quot;
  touch &quot;$pkgdir/etc/ld.so.conf&quot;

  make -C glibc-build install_root=&quot;$pkgdir&quot; install
  rm -f &quot;$pkgdir&quot;/etc/ld.so.{cache,conf}

  cd glibc

  install -dm755 &quot;$pkgdir&quot;/usr/lib/locale
  install -m644 nscd/nscd.conf &quot;$pkgdir/etc/nscd.conf&quot;
  install -Dm755 ${srcdir}/nscd.initd ${pkgdir}/etc/init.d/nscd

  install -m644 posix/gai.conf &quot;$pkgdir&quot;/etc/gai.conf

  install -m755 &quot;$srcdir/locale-gen&quot; &quot;$pkgdir/usr/sbin&quot;

  # Create /etc/locale.gen
  install -m644 &quot;$srcdir/locale.gen.txt&quot; &quot;$pkgdir/etc/locale.gen&quot;
  sed -e &#039;1,3d&#039; -e &#039;s|/| |g&#039; -e &#039;s|\\| |g&#039; -e &#039;s|^|#|g&#039; \
    &quot;$srcdir/glibc/localedata/SUPPORTED&quot; &gt;&gt; &quot;$pkgdir/etc/locale.gen&quot;

  if check_option &#039;debug&#039; n; then
    find &quot;$pkgdir&quot;/usr/bin -type f -executable -exec strip $STRIP_BINARIES {} + 2&gt; /dev/null || true
    find &quot;$pkgdir&quot;/usr/lib -name &#039;*.a&#039; -type f -exec strip $STRIP_STATIC {} + 2&gt; /dev/null || true

    # Do not strip these for gdb and valgrind functionality, but strip the rest
    find &quot;$pkgdir&quot;/usr/lib \
      -not -name &#039;ld-*.so&#039; \
      -not -name &#039;libc-*.so&#039; \
      -not -name &#039;libpthread-*.so&#039; \
      -not -name &#039;libthread_db-*.so&#039; \
      -name &#039;*-*.so&#039; -type f -exec strip $STRIP_SHARED {} + 2&gt; /dev/null || true
  fi

  # install license files
  install -dm755 ${pkgdir}/usr/share/licenses/${pkgname}
  install -m644 ${srcdir}/glibc-${pkgver}/{COPYING{,.LIB},LICENSES} ${pkgdir}/usr/share/licenses/${pkgname}
}

package_lib32-glibc() {
  pkgdesc=&#039;GNU C Library (32-bit)&#039;
  depends=(&quot;glibc=$pkgver&quot;)

  cd lib32-glibc-build

  make install_root=&quot;$pkgdir&quot; install
  rm -rf &quot;$pkgdir&quot;/{etc,sbin,usr/{bin,sbin,share},var}

  # We need to keep 32 bit specific header files
  find &quot;$pkgdir/usr/include&quot; -type f -not -name &#039;*-32.h&#039; -delete

  # Dynamic linker
  mkdir ${pkgdir}/lib
  ln -s ../lib32/ld-linux.so.2 &quot;$pkgdir/lib/&quot;

  # Add lib32 paths to the default library search path
  install -Dm644 &quot;$srcdir/lib32-glibc.conf&quot; &quot;$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf&quot;

  # Symlink /usr/lib32/locale to /usr/lib/locale
  ln -s ../lib/locale &quot;$pkgdir/usr/lib32/locale&quot;

  if check_option &#039;debug&#039; n; then
    find &quot;$pkgdir&quot;/usr/lib32 -name &#039;*.a&#039; -type f -exec strip $STRIP_STATIC {} + 2&gt; /dev/null || true
    find &quot;$pkgdir&quot;/usr/lib32 \
      -not -name &#039;ld-*.so&#039; \
      -not -name &#039;libc-*.so&#039; \
      -not -name &#039;libpthread-*.so&#039; \
      -not -name &#039;libthread_db-*.so&#039; \
      -name &#039;*-*.so&#039; -type f -exec strip $STRIP_SHARED {} + 2&gt; /dev/null || true
  fi

  # install license files
  install -dm755 ${pkgdir}/usr/share/licenses/${pkgname}
  install -m644 ${srcdir}/glibc-${pkgver}/{COPYING{,.LIB},LICENSES} ${pkgdir}/usr/share/licenses/${pkgname}
}</code></pre></div><p>Please note therefore, that you also need to modify the file <strong>lib32-glibc.conf</strong> and build an INIT-script for nscd as the version coming up from Arch Linux uses systemd completely. So you should therefore also have a look onto the glibc <a href="https://git.hyperbola.info:50100/packages/core.git/tree/glibc">here</a> at Hyperbola. I&#039;m testing this one for some days now and it is running very well. Happy hacking! <img src="https://forums.hyperbola.info/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[throgh]]></name>
				<uri>https://forums.hyperbola.info/profile.php?id=347</uri>
			</author>
			<updated>2020-01-14T23:03:39Z</updated>
			<id>https://forums.hyperbola.info/viewtopic.php?pid=1654#p1654</id>
		</entry>
</feed>
