From 698e4aed71d282e20cf54086034acbbdb2ad61d5 Mon Sep 17 00:00:00 2001
From: Sam Thursfield <sam.thursfield@codethink.co.uk>
Date: Wed, 5 Jul 2017 16:39:37 +0000
Subject: gnu-toolchain: Add /lib64 -> /usr/lib64 symlink on 64-bit arches

This is required at least for armv8l64, otherwise the glibc.bst
element installs a symlink in /usr/lib/ld-linux-aarch64.so.2 that
points to a missing file (it expects /usr/lib64/ld-linux-aarch64.so.2
to exist, but if /lib64 is a directory rather than a symlink then
that file ends up only in the /lib64/ directory).

This also makes our filesystem hierarchy more consistent with other
GNU/Linux operating systems.
---
 elements/gnu-toolchain/stage2-fhs-dirs.bst | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

(limited to 'elements/gnu-toolchain/stage2-fhs-dirs.bst')

diff --git a/elements/gnu-toolchain/stage2-fhs-dirs.bst b/elements/gnu-toolchain/stage2-fhs-dirs.bst
index f91f2f1f..15281728 100644
--- a/elements/gnu-toolchain/stage2-fhs-dirs.bst
+++ b/elements/gnu-toolchain/stage2-fhs-dirs.bst
@@ -29,3 +29,22 @@ config:
   - install -m 644 services "%{install-root}/etc/services"
   - install -m 644 protocols "%{install-root}/etc/protocols"
   - echo baserock > "%{install-root}/etc/hostname"
+
+arches:
+  # Most 64 bit architectures need a /lib64 symlink as well as /lib.
+  # FIXME: the create-fhs-dirs script should probably handle this...
+  armv8b64:
+    config:
+      install-commands:
+      - mkdir -p "%{install-root}/usr/lib64"
+      - ln -s  "./usr/lib64" "%{install-root}/lib64"
+  armv8l64:
+    config:
+      install-commands:
+      - mkdir -p "%{install-root}/usr/lib64"
+      - ln -s "./usr/lib64" "%{install-root}/lib64"
+  x86_64:
+    config:
+      install-commands:
+      - mkdir -p "%{install-root}/usr/lib64"
+      - ln -s "./usr/lib64" "%{install-root}/lib64"
-- 
cgit v1.2.1

