]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic: update the Arch tuples for LoongArch
authorXiaotian Wu <wuxiaotian@loongson.cn>
Tue, 8 Mar 2022 03:15:25 +0000 (11:15 +0800)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 25 Mar 2022 15:29:38 +0000 (00:29 +0900)
src/basic/architecture.h
src/shared/base-filesystem.c

index 0b91c69c0bdccaa511d7da758027c8780ad2fc02..cb4c79b84eb0217cc9093f1de5681e8efdf9045d 100644 (file)
@@ -199,9 +199,16 @@ int uname_architecture(void);
 #    define LIB_ARCH_TUPLE "sh4a-linux-gnu"
 #  endif
 #elif defined(__loongarch64)
-#    pragma message "Please update the Arch tuple of loongarch64 after psABI is stable"
-#    define native_architecture() ARCHITECTURE_LOONGARCH64
-#    define LIB_ARCH_TUPLE "loongarch64-linux-gnu"
+#  define native_architecture() ARCHITECTURE_LOONGARCH64
+#  if defined(__loongarch_double_float)
+#    define LIB_ARCH_TUPLE "loongarch64-linux-gnuf64"
+#  elif defined(__loongarch_single_float)
+#    define LIB_ARCH_TUPLE "loongarch64-linux-gnuf32"
+#  elif defined(__loongarch_soft_float)
+#    define LIB_ARCH_TUPLE "loongarch64-linux-gnusf"
+#  else
+#    error "Unrecognized loongarch architecture variant"
+#  endif
 #elif defined(__m68k__)
 #  define native_architecture() ARCHITECTURE_M68K
 #  define LIB_ARCH_TUPLE "m68k-linux-gnu"
index 3a77f37a69eba27ba764e6bc838a998b0a6c0203..6dacc1d20ae1af591ada29b1302918611396ca48 100644 (file)
@@ -63,6 +63,20 @@ static const BaseFilesystem table[] = {
                          "usr/lib64\0",                "ld-linux-x86-64.so.2" },
 #  define KNOW_LIB64_DIRS 1
 #elif defined(__ia64__)
+#elif defined(__loongarch64)
+#  define KNOW_LIB64_DIRS 1
+#  if defined(__loongarch_double_float)
+        { "lib64",    0, "usr/lib/"LIB_ARCH_TUPLE"\0"
+                         "usr/lib64\0",                "ld-linux-loongarch-lp64d.so.1" },
+#  elif defined(__loongarch_single_float)
+        { "lib64",    0, "usr/lib/"LIB_ARCH_TUPLE"\0"
+                         "usr/lib64\0",                "ld-linux-loongarch-lp64f.so.1" },
+#  elif defined(__loongarch_soft_float)
+        { "lib64",    0, "usr/lib/"LIB_ARCH_TUPLE"\0"
+                         "usr/lib64\0",                "ld-linux-loongarch-lp64s.so.1" },
+#  else
+#    error "Unknown LoongArch ABI"
+#  endif
 #elif defined(__m68k__)
         /* No link needed. */
 #  define KNOW_LIB64_DIRS 1