소스 검색

classes, conf, lib: Add support for powerpc64le

LE is default for modern powerpc64, power8+

PowerPC64 Little Endian Linux ABI specifies Power8 as the minimum ISA.
The basic ABI can run on earlier versions of the 64 bit PowerPC ISA,
but it was helpful to define a new, minimum instruction set for Linux
distribution releases during the switch to Little Endian.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj 4 년 전
부모
커밋
b9c73fb6d1
5개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 0
      meta/classes/libc-package.bbclass
  2. 1 1
      meta/classes/meson.bbclass
  3. 1 0
      meta/conf/bitbake.conf
  4. 2 0
      meta/lib/oe/elf.py
  5. 1 0
      meta/lib/oe/package_manager.py

+ 1 - 0
meta/classes/libc-package.bbclass

@@ -248,6 +248,7 @@ python package_do_split_gconvs () {
                 "sh4":     " --uint32-align=4 --big-endian ",    \
                 "powerpc": " --uint32-align=4 --big-endian ",    \
                 "powerpc64": " --uint32-align=4 --big-endian ",  \
+                "powerpc64le": " --uint32-align=4 --little-endian ",  \
                 "mips":    " --uint32-align=4 --big-endian ",    \
                 "mipsisa32r6":    " --uint32-align=4 --big-endian ",    \
                 "mips64":  " --uint32-align=4 --big-endian ",    \

+ 1 - 1
meta/classes/meson.bbclass

@@ -45,7 +45,7 @@ def meson_cpu_family(var, d):
     arch = d.getVar(var)
     if arch == 'powerpc':
         return 'ppc'
-    elif arch == 'powerpc64':
+    elif arch == 'powerpc64' or arch == 'powerpc64le':
         return 'ppc64'
     elif arch == 'armeb':
         return 'arm'

+ 1 - 0
meta/conf/bitbake.conf

@@ -11,6 +11,7 @@ baselib = "${BASELIB}"
 baselib[vardepvalue] = "${baselib}"
 BASELIB = "lib"
 BASELIB_powerpc64 = "lib64"
+BASELIB_powerpc64le = "lib64"
 
 # Path prefixes
 export base_prefix = ""

+ 2 - 0
meta/lib/oe/elf.py

@@ -34,6 +34,7 @@ def machine_dict(d):
                         "armeb":      (40,    97,    0,          False,         32),
                         "powerpc":    (20,     0,    0,          False,         32),
                         "powerpc64":  (21,     0,    0,          False,         64),
+                        "powerpc64le":  (21,     0,    0,          True,         64),
                         "i386":       ( 3,     0,    0,          True,          32),
                         "i486":       ( 3,     0,    0,          True,          32),
                         "i586":       ( 3,     0,    0,          True,          32),
@@ -68,6 +69,7 @@ def machine_dict(d):
                         "armeb":      (  40,    97,    0,          False,         32),
                         "powerpc":    (  20,     0,    0,          False,         32),
                         "powerpc64":  (  21,     0,    0,          False,         64),
+                        "powerpc64le":  (21,     0,    0,          True,         64),
                         "i386":       (   3,     0,    0,          True,          32),
                         "i486":       (   3,     0,    0,          True,          32),
                         "i586":       (   3,     0,    0,          True,          32),

+ 1 - 0
meta/lib/oe/package_manager.py

@@ -107,6 +107,7 @@ def generate_locale_archive(d, rootfs, target_arch, localedir):
         "sh4": ["--uint32-align=4", "--big-endian"],
         "powerpc": ["--uint32-align=4", "--big-endian"],
         "powerpc64": ["--uint32-align=4", "--big-endian"],
+        "powerpc64le": ["--uint32-align=4", "--little-endian"],
         "mips": ["--uint32-align=4", "--big-endian"],
         "mipsisa32r6": ["--uint32-align=4", "--big-endian"],
         "mips64": ["--uint32-align=4", "--big-endian"],