[2/2] ppc/siteinfo: Fix differences between musl and glibc

Message ID 20220312191822.546798-2-raj.khem@gmail.com
State Accepted, archived
Commit 28cb148c1375ba242addba80b0f68e06d2a4d874
Headers show
Series [1/2] powerpc32-linux: Remove libc cached variables | expand

Commit Message

Khem Raj March 12, 2022, 7:18 p.m. UTC
There is a key difference between glibc and musl when it comes to
ppc/ppc64 and that is that musl does not support 128-bit long IBM doubles format
it only supports 128-bit long double IEEE format on ppc64 alone.
this change ensures that we account for this change, so far we have been
doing it a bit wrong for ppc/musl case.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/classes/siteinfo.bbclass   | 24 ++++++++++++------------
 meta/site/powerpc32-linux       |  1 -
 meta/site/powerpc32-linux-glibc |  8 ++++++++
 meta/site/powerpc32-linux-musl  |  2 ++
 meta/site/powerpc64-linux       |  1 -
 meta/site/powerpc64-linux-glibc |  2 ++
 meta/site/powerpc64-linux-musl  |  1 +
 7 files changed, 25 insertions(+), 14 deletions(-)
 create mode 100644 meta/site/powerpc32-linux-glibc
 create mode 100644 meta/site/powerpc32-linux-musl
 create mode 100644 meta/site/powerpc64-linux-glibc
 create mode 100644 meta/site/powerpc64-linux-musl

Patch

diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
index c5f4dfda412..3555d5a6631 100644
--- a/meta/classes/siteinfo.bbclass
+++ b/meta/classes/siteinfo.bbclass
@@ -101,18 +101,18 @@  def siteinfo_data_for_machine(arch, os, d):
         "mips64el-linux-gnun32": "mipsel-linux bit-32",
         "mipsisa64r6-linux-gnun32": "mipsisa32r6-linux bit-32",
         "mipsisa64r6el-linux-gnun32": "mipsisa32r6el-linux bit-32",
-        "powerpc-linux": "powerpc32-linux",
-        "powerpc-linux-musl": "powerpc-linux powerpc32-linux",
-        "powerpcle-linux": "powerpc32-linux",
-        "powerpcle-linux-musl": "powerpc-linux powerpc32-linux",
-        "powerpc-linux-gnuspe": "powerpc-linux powerpc32-linux",
-        "powerpc-linux-muslspe": "powerpc-linux powerpc32-linux",
-        "powerpc64-linux-gnuspe": "powerpc-linux powerpc64-linux",
-        "powerpc64-linux-muslspe": "powerpc-linux powerpc64-linux",
-        "powerpc64-linux": "powerpc-linux powerpc64-linux",
-        "powerpc64-linux-musl": "powerpc-linux powerpc64-linux",
-        "powerpc64le-linux": "powerpc-linux powerpc64-linux",
-        "powerpc64le-linux-musl": "powerpc-linux powerpc64-linux",
+        "powerpc-linux": "powerpc32-linux powerpc32-linux-glibc",
+        "powerpc-linux-musl": "powerpc-linux powerpc32-linux powerpc32-linux-musl",
+        "powerpcle-linux": "powerpc32-linux powerpc32-linux-glibc",
+        "powerpcle-linux-musl": "powerpc-linux powerpc32-linux powerpc32-linux-musl",
+        "powerpc-linux-gnuspe": "powerpc-linux powerpc32-linux powerpc32-linux-glibc",
+        "powerpc-linux-muslspe": "powerpc-linux powerpc32-linux powerpc32-linux-musl",
+        "powerpc64-linux-gnuspe": "powerpc-linux powerpc64-linux powerpc64-linux-glibc",
+        "powerpc64-linux-muslspe": "powerpc-linux powerpc64-linux powerpc64-linux-musl",
+        "powerpc64-linux": "powerpc-linux powerpc64-linux powerpc64-linux-glibc",
+        "powerpc64-linux-musl": "powerpc-linux powerpc64-linux powerpc64-linux-musl",
+        "powerpc64le-linux": "powerpc-linux powerpc64-linux powerpc64-linux-glibc",
+        "powerpc64le-linux-musl": "powerpc-linux powerpc64-linux powerpc64-linux-musl",
         "riscv32-linux": "riscv32-linux",
         "riscv32-linux-musl": "riscv32-linux",
         "riscv64-linux": "riscv64-linux",
diff --git a/meta/site/powerpc32-linux b/meta/site/powerpc32-linux
index f8200ce5029..501e5b605de 100644
--- a/meta/site/powerpc32-linux
+++ b/meta/site/powerpc32-linux
@@ -8,7 +8,6 @@  ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
 ac_cv_sizeof_int_p=${ac_cv_sizeof_int_p=4}
 ac_cv_sizeof_long=${ac_cv_sizeof_long=4}
 ac_cv_sizeof_long_p=${ac_cv_sizeof_long_p=4}
-ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16}
 ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=4}
 ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8}
 ac_cv_sizeof_long_long_int=${ac_cv_sizeof_long_long_int=8}
diff --git a/meta/site/powerpc32-linux-glibc b/meta/site/powerpc32-linux-glibc
new file mode 100644
index 00000000000..62da4359892
--- /dev/null
+++ b/meta/site/powerpc32-linux-glibc
@@ -0,0 +1,8 @@ 
+ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16}
+
+# libc
+libc_cv_ppc_machine=${libc_cv_ppc_machine=yes}
+libc_cv_mlong_double_128ibm=${libc_cv_mlong_double_128ibm=yes}
+libc_cv_mabi_ibmlongdouble=${libc_cv_mabi_ibmlongdouble=yes}
+libc_cv_mlong_double_128=${libc_cv_mlong_double_128=yes}
+
diff --git a/meta/site/powerpc32-linux-musl b/meta/site/powerpc32-linux-musl
new file mode 100644
index 00000000000..8575ba75313
--- /dev/null
+++ b/meta/site/powerpc32-linux-musl
@@ -0,0 +1,2 @@ 
+ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8}
+
diff --git a/meta/site/powerpc64-linux b/meta/site/powerpc64-linux
index 820a4b84403..18f9f29a6b5 100644
--- a/meta/site/powerpc64-linux
+++ b/meta/site/powerpc64-linux
@@ -4,7 +4,6 @@  ac_cv_sizeof_double=${ac_cv_sizeof_double=8}
 ac_cv_sizeof_float=${ac_cv_sizeof_float=4}
 ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
 ac_cv_sizeof_long=${ac_cv_sizeof_long=8}
-ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16}
 ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=8}
 ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8}
 ac_cv_sizeof_long_long_int=${ac_cv_sizeof_long_long_int=8}
diff --git a/meta/site/powerpc64-linux-glibc b/meta/site/powerpc64-linux-glibc
new file mode 100644
index 00000000000..dc5c28524b8
--- /dev/null
+++ b/meta/site/powerpc64-linux-glibc
@@ -0,0 +1,2 @@ 
+ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16}
+
diff --git a/meta/site/powerpc64-linux-musl b/meta/site/powerpc64-linux-musl
new file mode 100644
index 00000000000..38c537dd1b2
--- /dev/null
+++ b/meta/site/powerpc64-linux-musl
@@ -0,0 +1 @@ 
+ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8}