* [PATCH v3 0/1] Fix glibc fortran header conflict for arm
@ 2024-06-25 2:02 kai.kang
2024-06-25 2:02 ` [PATCH v3 1/1] glibc: fix fortran header file " kai.kang
0 siblings, 1 reply; 2+ messages in thread
From: kai.kang @ 2024-06-25 2:02 UTC (permalink / raw)
To: openembedded-core
From: Kai Kang <kai.kang@windriver.com>
Tested for qemuarm64 with multilib enabled:
1. set machine and enable multilib
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
MACHINE = "qemuarm64"
DEFAULTTUNE:virtclass-multilib-lib32 = "armv7vethf-neon"
2. enable fortran and install to image
FORTRAN:forcevariable = ",fortran"
IMAGE_INSTALL:append = " gfortran lib32-gfortran"
3. build image and boot, run gfortran with option '-v' to verify
math-vector-fortran.h has been pre-included
for aarch64:
/usr/libexec/gcc/aarch64-poky-linux/14.1.0/f951 hello.f95 -quiet
-dumpdir a- -dumpbase hello.f95 -dumpbase-ext .f95 -mlittle-endian
-mabi=lp64 -version -fintrinsic-modules-path /usr/lib/gcc/aarch64-poky-linux/14.1.0/finclude
-fpre-include=/usr/lib/gcc/aarch64-poky-linux/14.1.0/finclude/math-vector-fortran.h
-o /tmp/ccuPIzQY.s
for arm:
/usr/libexec/gcc/arm-pokymllib32-linux-gnueabi/14.1.0/f951 hello.f95
-quiet -dumpdir a- -dumpbase hello.f95 -dumpbase-ext .f95
-mfloat-abi=hard -mtls-dialect=gnu -marm -mlibarch=armv7ve+fp
-march=armv7ve+fp -version -fintrinsic-modules-path /usr/lib/gcc/arm-pokymllib32-linux-gnueabi/14.1.0/finclude
-fpre-include=/usr/lib/gcc/arm-pokymllib32-linux-gnueabi/14.1.0/finclude/math-vector-fortran.h
-o /tmp/cc5pikK8.s
Kai Kang (1):
glibc: fix fortran header file conflict for arm
meta/recipes-core/glibc/glibc-package.inc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--
2.34.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH v3 1/1] glibc: fix fortran header file conflict for arm
2024-06-25 2:02 [PATCH v3 0/1] Fix glibc fortran header conflict for arm kai.kang
@ 2024-06-25 2:02 ` kai.kang
0 siblings, 0 replies; 2+ messages in thread
From: kai.kang @ 2024-06-25 2:02 UTC (permalink / raw)
To: openembedded-core
From: Kai Kang <kai.kang@windriver.com>
There is a file conflict for arm when multilib enabled:
| Error: Transaction test error:
| file /usr/include/finclude/math-vector-fortran.h conflicts between attempted installs of
lib32-libc6-dev-2.39+git0+312e159626-r0.armv7at2hf_neon and libc6-dev-2.39+git0+312e159626-r0.cortexa72
Install math-vector-fortran.h to the gfortran default search directory
which is arch specific to avoid the conflict.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
meta/recipes-core/glibc/glibc-package.inc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index 0c5e3b4c3d..3352f3e2f5 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -39,7 +39,7 @@ FILES:sln = "${base_sbindir}/sln"
FILES:${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o"
FILES:libsotruss = "${libdir}/audit/sotruss-lib.so"
FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}"
-FILES:${PN}-dev += "${libdir}/libpthread.a ${libdir}/libdl.a ${libdir}/libutil.a ${libdir}/libanl.a ${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal"
+FILES:${PN}-dev += "${libdir}/libpthread.a ${libdir}/libdl.a ${libdir}/libutil.a ${libdir}/libanl.a ${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal ${libdir}/gcc/${TARGET_SYS}/*/finclude"
RDEPENDS:${PN}-dev = "linux-libc-headers-dev"
FILES:${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a"
FILES:nscd = "${sbindir}/nscd* ${sysconfdir}/init.d/nscd ${systemd_system_unitdir}/nscd* ${nonarch_libdir}/tmpfiles.d/nscd.conf \
@@ -169,6 +169,12 @@ do_install_armmultilib () {
oe_multilib_header sys/elf.h sys/procfs.h sys/ptrace.h sys/ucontext.h sys/user.h
}
+do_install_armmultilib:append:class-target() {
+ gcc_version=$($CC -dumpversion)
+ mkdir -p ${D}${libdir}/gcc/${TARGET_SYS}/${gcc_version}/finclude
+ mv ${D}${includedir}/finclude/math-vector-fortran.h ${D}${libdir}/gcc/${TARGET_SYS}/${gcc_version}/finclude/
+ rmdir --ignore-fail-on-non-empty ${D}${includedir}/finclude
+}
LOCALESTASH = "${WORKDIR}/stashed-locale"
bashscripts = "mtrace sotruss xtrace"
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-06-25 2:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-25 2:02 [PATCH v3 0/1] Fix glibc fortran header conflict for arm kai.kang
2024-06-25 2:02 ` [PATCH v3 1/1] glibc: fix fortran header file " kai.kang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox