diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/ne10')
3 files changed, 128 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch new file mode 100644 index 000000000..9f2faaa52 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch @@ -0,0 +1,44 @@ +From 8a0d1cbfcc0649b2696c9cf20f877366de259ce3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 12 Nov 2016 18:15:26 +0000 +Subject: [PATCH] CMakeLists.txt: Remove -mthumb-interwork + +This option is meaningless with aapcs ABI +which is the default for Linux and android +for armv7+ architectures + +As an aside it helps in compiling with clang +where this option is absent + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 784a5a8..68da920 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -117,7 +117,7 @@ if(ANDROID_PLATFORM) + + # Adding cflags for armv7. Aarch64 does not need such flags. + if(${NE10_TARGET_ARCH} STREQUAL "armv7") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfloat-abi=${FLOAT_ABI} -mfpu=vfp3") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfloat-abi=${FLOAT_ABI} -mfpu=vfp3") + if(NE10_ARM_HARD_FLOAT) + # "--no-warn-mismatch" is needed for linker to suppress linker error about not all functions use VFP register to pass argument, eg. + # .../arm-linux-androideabi/bin/ld: error: ..../test-float.o +@@ -138,8 +138,8 @@ if(ANDROID_PLATFORM) + ${CMAKE_C_FLAGS}") + elseif(GNULINUX_PLATFORM) + if("${NE10_TARGET_ARCH}" STREQUAL "armv7") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") +- set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=neon") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") ++ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=neon") + # Turn on asm optimization for Linux on ARM v7. + set(NE10_ASM_OPTIMIZATION on) + endif() +-- +1.8.3.1 + diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch new file mode 100644 index 000000000..a8fea82dc --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch @@ -0,0 +1,38 @@ +From 66d332e4b631eef800c6f62cd347b164ee3b59d4 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 19 Apr 2017 10:11:21 -0700 +Subject: [PATCH] Dont specify -march explicitly + +it assumes armv7-a for all armv7 based machines but that may +not be true e.g. machines based on armv7ve and cortexa-7 +it causes conflicts in OE builds because it specifies -march +in recipes anyway so this is redundant in CMakeLists.txt + +Fixes + +| cc1: warning: switch -mcpu=cortex-a7 conflicts with -march=armv7-a switch +| cc1: warning: switch -mcpu=cortex-a7 conflicts with -march=armv7-a switch + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 68da920..a4b94b9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -138,8 +138,8 @@ if(ANDROID_PLATFORM) + ${CMAKE_C_FLAGS}") + elseif(GNULINUX_PLATFORM) + if("${NE10_TARGET_ARCH}" STREQUAL "armv7") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") +- set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=neon") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -mfpu=vfp3 -funsafe-math-optimizations") ++ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -mfpu=neon") + # Turn on asm optimization for Linux on ARM v7. + set(NE10_ASM_OPTIMIZATION on) + endif() +-- +2.12.2 + diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb new file mode 100644 index 000000000..76e0741b1 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "Library containing NEON-optimized implementations for a common set of functions" +HOMEPAGE = "http://projectne10.github.io/Ne10/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e7fe20c9be97be5579e3ab5d92d3a218" +SECTION = "libs" + +SRC_URI = "git://github.com/projectNe10/Ne10.git \ + file://0001-CMakeLists.txt-Remove-mthumb-interwork.patch \ + file://0001-Dont-specify-march-explicitly.patch \ + " +SRCREV = "18c4c982a595dad069cd8df4932aefb1d257591f" + +S = "${WORKDIR}/git" +PV .= "gitr+${SRCPV}" + +inherit cmake + +NE10_TARGET_ARCH = "" +EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"' + +COMPATIBLE_MACHINE_aarch64 = "(.*)" +COMPATIBLE_MACHINE_armv7a = "(.*)" + +python () { + if any(t.startswith('armv7') for t in d.getVar('TUNE_FEATURES').split()): + d.setVar('NE10_TARGET_ARCH', 'armv7') + bb.debug(2, 'Building Ne10 for armv7') + elif any(t.startswith('aarch64') for t in d.getVar('TUNE_FEATURES').split()): + d.setVar('NE10_TARGET_ARCH', 'aarch64') + bb.debug(2, 'Building Ne10 for aarch64') + else: + raise bb.parse.SkipRecipe("Incompatible with archs other than armv7 and aarch64") +} + +do_install() { + install -d ${D}${libdir} + install -d ${D}${includedir} + install -m 0644 ${S}/inc/NE10*.h ${D}${includedir}/ + install -m 0644 ${B}/modules/libNE10.a ${D}${libdir}/ + install -m 0755 ${B}/modules/libNE10.so.* ${D}${libdir}/ + cp -a ${B}/modules/libNE10.so ${D}${libdir}/ +} + +# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel] +# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel] +INSANE_SKIP_${PN} += "textrel" |