Improve the determination of pageSize in patchelf.cc. Patch by Mark H Weaver . --- patchelf/src/patchelf.cc.orig 1969-12-31 19:00:01.000000000 -0500 +++ patchelf/src/patchelf.cc 2014-02-16 20:15:06.283203125 -0500 @@ -21,11 +21,19 @@ using namespace std; -#ifdef MIPSEL -/* The lemote fuloong 2f kernel defconfig sets a page size of 16KB */ -const unsigned int pageSize = 4096*4; -#else +/* Note that some platforms support multiple page sizes. Therefore, + it is not enough to query the current page size. 'pageSize' must + be the maximum architectural page size for the platform, which is + typically defined in the corresponding ABI document. + + XXX FIXME: This won't work when we're cross-compiling. */ + +#if defined __MIPSEL__ || defined __MIPSEB__ || defined __aarch64__ +const unsigned int pageSize = 65536; +#elif defined __x86_64__ || defined __i386__ || defined __arm__ const unsigned int pageSize = 4096; +#else +# error maximum architectural page size unknown for this platform #endif --- patchelf/tests/no-rpath.sh.orig 2014-01-14 08:17:47.000000000 -0500 +++ patchelf/tests/no-rpath.sh 2015-01-06 18:31:53.418172797 -0500 @@ -1,23 +1,23 @@ #! /bin/sh -e SCRATCH=scratch/$(basename $0 .sh) -rm -rf ${SCRATCH} -mkdir -p ${SCRATCH} +if [ "$(uname -m)" = i686 -a "$(uname -s)" = Linux ]; then + rm -rf ${SCRATCH} + mkdir -p ${SCRATCH} -cp ${srcdir}/no-rpath ${SCRATCH}/ + cp ${srcdir}/no-rpath ${SCRATCH}/ -oldRPath=$(../src/patchelf --print-rpath ${SCRATCH}/no-rpath) -if test -n "$oldRPath"; then exit 1; fi -../src/patchelf \ - --set-interpreter "$(../src/patchelf --print-interpreter ../src/patchelf)" \ - --set-rpath /foo:/bar:/xxxxxxxxxxxxxxx ${SCRATCH}/no-rpath + oldRPath=$(../src/patchelf --print-rpath ${SCRATCH}/no-rpath) + if test -n "$oldRPath"; then exit 1; fi + ../src/patchelf \ + --set-interpreter "$(../src/patchelf --print-interpreter ../src/patchelf)" \ + --set-rpath /foo:/bar:/xxxxxxxxxxxxxxx ${SCRATCH}/no-rpath -newRPath=$(../src/patchelf --print-rpath ${SCRATCH}/no-rpath) -if ! echo "$newRPath" | grep -q '/foo:/bar'; then - echo "incomplete RPATH" - exit 1 -fi + newRPath=$(../src/patchelf --print-rpath ${SCRATCH}/no-rpath) + if ! echo "$newRPath" | grep -q '/foo:/bar'; then + echo "incomplete RPATH" + exit 1 + fi -if [ "$(uname -m)" = i686 -a "$(uname -s)" = Linux ]; then cd ${SCRATCH} && ./no-rpath fi e (Expand)Author 2020-08-29build: Remove references to the 'nix-hash' program....* configure.ac: Remove check for 'nix-hash'. * tests/base32.scm (%nix-hash, %have-nix-hash?): Remove. ("sha256 & bytevector->nix-base32-string"): Remove test. * build-aux/pre-inst-env.in: Do not set 'NIX_HASH' environment variable. Ludovic Courtès 2019-09-08daemon: Remove 'NIX_LIBEXEC_DIR'....* nix/libstore/globals.hh (Settings)[nixLibexecDir]: Remove. * nix/libstore/globals.cc (Settings::processEnvironment): Remove reference to 'nixLibexecDir'. * nix/local.mk (libstore_a_CPPFLAGS): Remove -DNIX_LIBEXEC_DIR flag. * build-aux/pre-inst-env.in: Remove references to 'NIX_LIBEXEC_DIR'. Ludovic Courtès 2019-09-08daemon: Run 'guix offload' directly....* nix/scripts/offload.in: Remove. * nix/local.mk (nodist_pkglibexec_SCRIPTS) [BUILD_DAEMON_OFFLOAD]: Remove 'scripts/offload'. * config-daemon.ac: Don't output 'nix/scripts/offload'. * build-aux/pre-inst-env.in: Don't set 'NIX_BUILD_HOOK'. * nix/libstore/build.cc (HookInstance::HookInstance): Run 'guix offload'. (DerivationGoal::tryBuildHook): Remove reference to 'NIX_BUILD_HOOK'. * nix/nix-daemon/guix-daemon.cc (main) [HAVE_DAEMON_OFFLOAD_HOOK]: Don't set 'NIX_BUILD_HOOK'. * nix/nix-daemon/nix-daemon.cc (performOp) [!HAVE_DAEMON_OFFLOAD_HOOK]: Leave 'settings.useBuildHook' unchanged. Ludovic Courtès 2019-09-08daemon: Invoke 'guix gc --list-busy' instead of 'list-runtime-roots'....* nix/scripts/list-runtime-roots.in: Remove. * guix/store/roots.scm (%proc-directory): New variable. (proc-file-roots, proc-exe-roots, proc-cwd-roots) (proc-fd-roots, proc-maps-roots, proc-environ-roots) (referenced-files, canonicalize-store-item, busy-store-items): New procedures, taken from 'list-runtime-roots.in'. * nix/libstore/globals.hh (Settings)[guixProgram]: New field. * nix/libstore/globals.cc (Settings::processEnvironment): Initialize 'guixProgram'. * nix/libstore/gc.cc (addAdditionalRoots): Drop code related to 'NIX_ROOT_FINDER'. Run "guix gc --list-busy". * nix/local.mk (nodist_pkglibexec_SCRIPTS): Remove 'scripts/list-runtime-roots'. * config-daemon.ac: Don't output nix/scripts/list-runtime-roots. * build-aux/pre-inst-env.in: Don't set 'NIX_ROOT_FINDER'. Set 'GUIX'. * doc/guix.texi (Invoking guix gc): Document '--list-busy'. * guix/scripts/gc.scm (show-help, %options): Add "--list-busy". (guix-gc)[list-busy]: New procedure. Handle the 'list-busy' action. Ludovic Courtès