postscript: apply arch difference 45/236245/1 accepted/tizen/unified/20200618.130002 submit/tizen/20200618.034524
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 16 Jun 2020 02:11:57 +0000 (11:11 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 16 Jun 2020 02:11:57 +0000 (11:11 +0900)
Each architecture has different ld.so path and initrd path. Apply
arch difference for postscript to create image. Also, append 64-bit
only file list.

Change-Id: I0fe393cd4b4a4b2ef32a2dcf2af0171bd80b6e0c
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
data/initrd-file-64bit.list [new file with mode: 0644]
packaging/initrd.spec
scripts/mkinitrd.sh

diff --git a/data/initrd-file-64bit.list b/data/initrd-file-64bit.list
new file mode 100644 (file)
index 0000000..96bda22
--- /dev/null
@@ -0,0 +1,8 @@
+# ----- initrd contents ------ #
+SYS_SKELDIR="
+/usr/lib64
+"
+
+DIR_LINKS="
+/lib64:usr/lib64
+"
index 4787705aa3910c5dfd153627d5ada2d49b7e567b..b277f1a8cef6287401826689830f854005cb1ddd 100644 (file)
@@ -33,6 +33,9 @@ rm -rf %{buildroot}
 
 mkdir -p %{buildroot}%{_initrd_dir}
 cp -f data/initrd-file.list %{buildroot}%{_initrd_dir}
+%ifarch aarch64 x86_64
+cp -f data/initrd-file-64bit.list %{buildroot}%{_initrd_dir}
+%endif
 cp -f scripts/init.sh %{buildroot}%{_initrd_dir}
 cp -f scripts/mkinitrd.sh %{buildroot}%{_initrd_dir}
 
@@ -53,4 +56,7 @@ rm -rf %{_initrd_dir}
 %defattr(-,root,root,-)
 %{_initrd_dir}/mkinitrd.sh
 %{_initrd_dir}/initrd-file.list
+%ifarch aarch64 x86_64
+%{_initrd_dir}/initrd-file-64bit.list
+%endif
 %{_initrd_dir}/init.sh
index 0000ae2f5f5c915ed364eb8a2c98665e870a2b32..c9c3e058e0c0d0b982609d195198b8ea3e84797e 100755 (executable)
@@ -5,14 +5,34 @@ LN="/bin/ln"
 SED="/bin/sed"
 MKDIR="/bin/mkdir"
 DIRNAME="/usr/bin/dirname"
-LD_LINUX="/lib/ld-linux.so.3"
-
-INIT="/usr/lib/initrd/init.sh"
+UNAME="/bin/uname"
+ARCH=`$UNAME -m`
+
+if [ "z$ARCH" == "zarmv7l" ]; then
+       LD_LINUX="/lib/ld-linux.so.3"
+       INIT="/usr/lib/initrd/init.sh"
+       OBJECTS_SPECIFY_LIST="/usr/lib/initrd/initrd-file.list"
+elif [ "z$ARCH" == "zaarch64" ]; then
+       LD_LINUX="/lib64/ld-linux-aarch64.so.1"
+       INIT="/usr/lib64/initrd/init.sh"
+       OBJECTS_SPECIFY_LIST="/usr/lib64/initrd/initrd-file.list /usr/lib64/initrd/initrd-file-64bit.list"
+elif [ "z$ARCH" == "zi686" ]; then
+       LD_LINUX="/lib/ld-linux.so.2"
+       INIT="/usr/lib/initrd/init.sh"
+       OBJECTS_SPECIFY_LIST="/usr/lib/initrd/initrd-file.list"
+elif [ "z$ARCH" == "zx86-64" ]; then
+       LD_LINUX="/lib64/ld-linux-x86-64.so.2"
+       INIT="/usr/lib64/initrd/init.sh"
+       OBJECTS_SPECIFY_LIST="/usr/lib64/initrd/initrd-file.list /usr/lib64/initrd/initrd-file-64bit.list"
+else
+       # set as i686, need to assign properly
+       LD_LINUX="/lib/ld-linux.so.2"
+       INIT="/usr/lib/initrd/init.sh"
+       OBJECTS_SPECIFY_LIST="/usr/lib/initrd/initrd-file.list"
+fi
 
 INITRD_ROOT=/mnt/initrd
 
-OBJECTS_SPECIFY_LIST="/usr/lib/initrd/initrd-file.list"
-
 #-----------------------------------------------------------------------------
 #  show_help()
 #-----------------------------------------------------------------------------