Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
From 0cafb99b57f43cf6ac2c6208718e49ad2dbe462d Mon Sep 17 00:00:00 2001
|
||||
From: Jan Schmidt <thaytan@noraisin.net>
|
||||
Date: Sun, 10 Nov 2013 00:49:52 +1100
|
||||
Subject: [PATCH] Import revision 1206 from upstream to fix PIE build.
|
||||
|
||||
Functions MC_put_o_16_arm, MC_put_o_8_arm, MC_put_x_16_arm, MC_put_x_8_arm
|
||||
in libmpeg2/motion_comp_arm_s.S have addresses in .text, which is bad
|
||||
for shared libraries. Some environments demand that .text actually be
|
||||
read-only all the time, yet MC_put_o_16_arm etc require that the addresses
|
||||
be modified by the dynamic linking mechanism (dlopen, LoadLibrary, etc.)
|
||||
Even in those environments which permit the dynamic linker to modify the
|
||||
.text segment, the runtime cost of doing the relocation can be noticeable.
|
||||
|
||||
This commit rewrites the linkage, discarding the tables of addresses
|
||||
in favor of tables of offsets. All transfers are local within each individual
|
||||
function, so there can be no interference by processing that occurs
|
||||
after assembly, such as link-time re-ordering (even of individual functions.)
|
||||
|
||||
Patch by John Reiser <jreiser@bitwagon.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Backport [https://code.videolan.org/videolan/libmpeg2/commit/946bf4b518aacc224f845e73708f99e394744499]
|
||||
---
|
||||
libmpeg2/motion_comp_arm_s.S | 70 +++++++++++++++++-------------------
|
||||
1 file changed, 33 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S
|
||||
index c921f7c..82143f8 100644
|
||||
--- a/libmpeg2/motion_comp_arm_s.S
|
||||
+++ b/libmpeg2/motion_comp_arm_s.S
|
||||
@@ -30,9 +30,13 @@ MC_put_o_16_arm:
|
||||
pld [r1]
|
||||
stmfd sp!, {r4-r11, lr} @ R14 is also called LR
|
||||
and r4, r1, #3
|
||||
- adr r5, MC_put_o_16_arm_align_jt
|
||||
- add r5, r5, r4, lsl #2
|
||||
- ldr pc, [r5]
|
||||
+ ldrb r4, [pc, r4]
|
||||
+ add pc, pc, r4, lsl #2
|
||||
+ .byte (MC_put_o_16_arm_align0 - 0f)>>2
|
||||
+ .byte (MC_put_o_16_arm_align1 - 0f)>>2
|
||||
+ .byte (MC_put_o_16_arm_align2 - 0f)>>2
|
||||
+ .byte (MC_put_o_16_arm_align3 - 0f)>>2
|
||||
+0:
|
||||
|
||||
MC_put_o_16_arm_align0:
|
||||
ldmia r1, {r4-r7}
|
||||
@@ -76,11 +80,6 @@ MC_put_o_16_arm_align3:
|
||||
1: PROC(24)
|
||||
bne 1b
|
||||
ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.
|
||||
-MC_put_o_16_arm_align_jt:
|
||||
- .word MC_put_o_16_arm_align0
|
||||
- .word MC_put_o_16_arm_align1
|
||||
- .word MC_put_o_16_arm_align2
|
||||
- .word MC_put_o_16_arm_align3
|
||||
|
||||
@ ----------------------------------------------------------------
|
||||
.align
|
||||
@@ -91,9 +90,14 @@ MC_put_o_8_arm:
|
||||
pld [r1]
|
||||
stmfd sp!, {r4-r10, lr} @ R14 is also called LR
|
||||
and r4, r1, #3
|
||||
- adr r5, MC_put_o_8_arm_align_jt
|
||||
- add r5, r5, r4, lsl #2
|
||||
- ldr pc, [r5]
|
||||
+ ldrb r4, [pc, r4]
|
||||
+ add pc, pc, r4, lsl #2
|
||||
+ .byte (MC_put_o_8_arm_align0 - 0f)>>2
|
||||
+ .byte (MC_put_o_8_arm_align1 - 0f)>>2
|
||||
+ .byte (MC_put_o_8_arm_align2 - 0f)>>2
|
||||
+ .byte (MC_put_o_8_arm_align3 - 0f)>>2
|
||||
+0:
|
||||
+
|
||||
MC_put_o_8_arm_align0:
|
||||
ldmia r1, {r4-r5}
|
||||
add r1, r1, r2
|
||||
@@ -135,12 +139,6 @@ MC_put_o_8_arm_align3:
|
||||
bne 1b
|
||||
ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.
|
||||
|
||||
-MC_put_o_8_arm_align_jt:
|
||||
- .word MC_put_o_8_arm_align0
|
||||
- .word MC_put_o_8_arm_align1
|
||||
- .word MC_put_o_8_arm_align2
|
||||
- .word MC_put_o_8_arm_align3
|
||||
-
|
||||
@ ----------------------------------------------------------------
|
||||
.macro AVG_PW rW1, rW2
|
||||
mov \rW2, \rW2, lsl #24
|
||||
@@ -160,12 +158,17 @@ MC_put_x_16_arm:
|
||||
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
|
||||
pld [r1]
|
||||
stmfd sp!, {r4-r11,lr} @ R14 is also called LR
|
||||
+ ldr r11, 0f
|
||||
and r4, r1, #3
|
||||
- adr r5, MC_put_x_16_arm_align_jt
|
||||
- ldr r11, [r5]
|
||||
mvn r12, r11
|
||||
- add r5, r5, r4, lsl #2
|
||||
- ldr pc, [r5, #4]
|
||||
+ ldrb r4, [pc, r4]
|
||||
+ add pc, pc, r4, lsl #2
|
||||
+ .byte (MC_put_x_16_arm_align0 - 0f)>>2
|
||||
+ .byte (MC_put_x_16_arm_align1 - 0f)>>2
|
||||
+ .byte (MC_put_x_16_arm_align2 - 0f)>>2
|
||||
+ .byte (MC_put_x_16_arm_align3 - 0f)>>2
|
||||
+0:
|
||||
+ .word 0x01010101
|
||||
|
||||
.macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4
|
||||
mov \R0, \R0, lsr #(\shift)
|
||||
@@ -238,12 +241,6 @@ MC_put_x_16_arm_align3:
|
||||
add r0, r0, r2
|
||||
bne 1b
|
||||
ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
|
||||
-MC_put_x_16_arm_align_jt:
|
||||
- .word 0x01010101
|
||||
- .word MC_put_x_16_arm_align0
|
||||
- .word MC_put_x_16_arm_align1
|
||||
- .word MC_put_x_16_arm_align2
|
||||
- .word MC_put_x_16_arm_align3
|
||||
|
||||
@ ----------------------------------------------------------------
|
||||
.align
|
||||
@@ -253,12 +250,17 @@ MC_put_x_8_arm:
|
||||
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
|
||||
pld [r1]
|
||||
stmfd sp!, {r4-r11,lr} @ R14 is also called LR
|
||||
+ ldr r11, 0f
|
||||
and r4, r1, #3
|
||||
- adr r5, MC_put_x_8_arm_align_jt
|
||||
- ldr r11, [r5]
|
||||
mvn r12, r11
|
||||
- add r5, r5, r4, lsl #2
|
||||
- ldr pc, [r5, #4]
|
||||
+ ldrb r4, [pc, r4]
|
||||
+ add pc, pc, r4, lsl #2
|
||||
+ .byte (MC_put_x_8_arm_align0 - 0f)>>2
|
||||
+ .byte (MC_put_x_8_arm_align1 - 0f)>>2
|
||||
+ .byte (MC_put_x_8_arm_align2 - 0f)>>2
|
||||
+ .byte (MC_put_x_8_arm_align3 - 0f)>>2
|
||||
+0:
|
||||
+ .word 0x01010101
|
||||
|
||||
.macro ADJ_ALIGN_DW shift, R0, R1, R2
|
||||
mov \R0, \R0, lsr #(\shift)
|
||||
@@ -319,9 +321,3 @@ MC_put_x_8_arm_align3:
|
||||
add r0, r0, r2
|
||||
bne 1b
|
||||
ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
|
||||
-MC_put_x_8_arm_align_jt:
|
||||
- .word 0x01010101
|
||||
- .word MC_put_x_8_arm_align0
|
||||
- .word MC_put_x_8_arm_align1
|
||||
- .word MC_put_x_8_arm_align2
|
||||
- .word MC_put_x_8_arm_align3
|
||||
@@ -0,0 +1,55 @@
|
||||
From cbcff58ed670c8edc0be1004384cbe0fd07d8d26 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 5 Jul 2017 18:49:21 -0700
|
||||
Subject: [PATCH 1/2] check for available arm optimizations
|
||||
|
||||
Taken From
|
||||
http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/65_arm-test-with-compiler.patch/
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
configure.ac | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index acdcb1e..2c0a721 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -59,7 +59,7 @@ elif test x"$GCC" = x"yes"; then
|
||||
AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
|
||||
|
||||
dnl arch-specific flags
|
||||
- arm_conditional=false
|
||||
+ build_arm_opt=false
|
||||
case "$host" in
|
||||
i?86-* | k?-* | x86_64-* | amd64-*)
|
||||
AC_DEFINE([ARCH_X86],,[x86 architecture])
|
||||
@@ -102,8 +102,12 @@ elif test x"$GCC" = x"yes"; then
|
||||
alpha*)
|
||||
AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);;
|
||||
arm*)
|
||||
- arm_conditional=:
|
||||
- AC_DEFINE([ARCH_ARM],,[ARM architecture]);;
|
||||
+ AC_LANG(C)
|
||||
+ AC_COMPILE_IFELSE(
|
||||
+ [AC_LANG_SOURCE([[
|
||||
+ void foo(void) { __asm__ volatile("pld [r1]"); }]])],
|
||||
+ build_arm_opt=true; AC_DEFINE([ARCH_ARM],,[ARM architecture]),
|
||||
+ build_arm_opt=false);;
|
||||
esac
|
||||
elif test x"$CC" = x"tendracc"; then
|
||||
dnl TenDRA portability checking compiler
|
||||
@@ -123,7 +127,7 @@ else
|
||||
esac
|
||||
fi
|
||||
|
||||
-AM_CONDITIONAL(ARCH_ARM, ${arm_conditional})
|
||||
+AM_CONDITIONAL(ARCH_ARM, test x$build_arm_opt = xtrue)
|
||||
|
||||
dnl Checks for libtool - this must be done after we set cflags
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
--
|
||||
2.13.2
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
From f9d9dc92d75f8910e3cd5fdcbea72e505cdf3493 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 5 Jul 2017 19:03:36 -0700
|
||||
Subject: [PATCH 2/2] Set visibility of global symbols used in ARM specific
|
||||
assembly file to internal
|
||||
|
||||
Taken from
|
||||
http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/60_arm-private-symbols.patch/
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
libmpeg2/motion_comp_arm_s.S | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S
|
||||
index f6c3d7d..c921f7c 100644
|
||||
--- a/libmpeg2/motion_comp_arm_s.S
|
||||
+++ b/libmpeg2/motion_comp_arm_s.S
|
||||
@@ -23,7 +23,8 @@
|
||||
|
||||
@ ----------------------------------------------------------------
|
||||
.align
|
||||
- .global MC_put_o_16_arm
|
||||
+ .global MC_put_o_16_arm
|
||||
+ .internal MC_put_o_16_arm
|
||||
MC_put_o_16_arm:
|
||||
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
|
||||
pld [r1]
|
||||
@@ -83,7 +84,8 @@ MC_put_o_16_arm_align_jt:
|
||||
|
||||
@ ----------------------------------------------------------------
|
||||
.align
|
||||
- .global MC_put_o_8_arm
|
||||
+ .global MC_put_o_8_arm
|
||||
+ .internal MC_put_o_8_arm
|
||||
MC_put_o_8_arm:
|
||||
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
|
||||
pld [r1]
|
||||
@@ -152,7 +154,8 @@ MC_put_o_8_arm_align_jt:
|
||||
.endm
|
||||
|
||||
.align
|
||||
- .global MC_put_x_16_arm
|
||||
+ .global MC_put_x_16_arm
|
||||
+ .internal MC_put_x_16_arm
|
||||
MC_put_x_16_arm:
|
||||
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
|
||||
pld [r1]
|
||||
@@ -244,7 +247,8 @@ MC_put_x_16_arm_align_jt:
|
||||
|
||||
@ ----------------------------------------------------------------
|
||||
.align
|
||||
- .global MC_put_x_8_arm
|
||||
+ .global MC_put_x_8_arm
|
||||
+ .internal MC_put_x_8_arm
|
||||
MC_put_x_8_arm:
|
||||
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
|
||||
pld [r1]
|
||||
--
|
||||
2.13.2
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
Rewrite the public symbol check to verify the shared libraries, to check for
|
||||
more things, and to avoid duplication; fixes make check on ARM
|
||||
|
||||
Taken From
|
||||
https://sources.debian.org/src/mpeg2dec/0.5.1-8/debian/patches/61_global-symbol-test.patch/
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
test/globals | 42 +++++++++++++++++++++++++++---------------
|
||||
1 file changed, 27 insertions(+), 15 deletions(-)
|
||||
|
||||
--- mpeg2dec.orig/test/globals
|
||||
+++ mpeg2dec/test/globals
|
||||
@@ -1,4 +1,8 @@
|
||||
#!/bin/sh
|
||||
+# TODO
|
||||
+# - fix checking of .a libs; problem is that "nm -g --defined-only" lists
|
||||
+# internal symbols; this can be solved by using objdump, but it's probably
|
||||
+# good enough to just run the tests on the shared lib
|
||||
|
||||
if test x"$srcdir" != x""; then
|
||||
builddir="." # running from make check, but it does not define that
|
||||
@@ -14,22 +18,30 @@ builddir=`cd $builddir;pwd`
|
||||
|
||||
error=0
|
||||
|
||||
-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/*.o |\
|
||||
- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2_'`
|
||||
-
|
||||
-if test x"$bad_globals" != x""; then
|
||||
- echo BAD GLOBAL SYMBOLS:
|
||||
- for s in $bad_globals; do echo $s; done
|
||||
+# check_bad_public_symbols <symbol prefix> <lib file> [<lib file>...]
|
||||
+#
|
||||
+# checks public symbols in shared libs:
|
||||
+# - allow prefix_anything
|
||||
+# - reject _prefixanything
|
||||
+# - allow _anything
|
||||
+# - reject anything else
|
||||
+#
|
||||
+# NB: skips missing files
|
||||
+check_bad_public_symbols() {
|
||||
+ symbols_prefix="$1"
|
||||
+ shift
|
||||
+ lib_files=`ls "$@" 2>/dev/null`
|
||||
+ [ -z "$lib_files" ] && return
|
||||
+ bad_globals=`nm -g --defined-only $lib_files |
|
||||
+ awk '{if ($3) print $3}' |
|
||||
+ sed -n "/^${symbols_prefix}_/ d; /^_${symbols_prefix}/ { p; d }; /^_/ d; p"`
|
||||
+ [ -z "$bad_globals" ] && return
|
||||
error=1
|
||||
-fi
|
||||
-
|
||||
-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/convert/*.o |\
|
||||
- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2convert_'`
|
||||
+ echo BAD GLOBAL SYMBOLS in $lib_files:
|
||||
+ echo "$bad_globals"
|
||||
+}
|
||||
|
||||
-if test x"$bad_globals" != x""; then
|
||||
- echo BAD GLOBAL SYMBOLS:
|
||||
- for s in $bad_globals; do echo $s; done
|
||||
- error=1
|
||||
-fi
|
||||
+check_bad_public_symbols mpeg2 $builddir/../libmpeg2/.libs/libmpeg2.so
|
||||
+check_bad_public_symbols mpeg2convert $builddir/../libmpeg2/convert/.libs/libmpeg2convert.so
|
||||
|
||||
exit $error
|
||||
@@ -0,0 +1,43 @@
|
||||
Add new method to judge whether <altivec.h> is needed
|
||||
|
||||
The original logic will use "typedef vector int t;" to judge
|
||||
whether <altivec.h> is needed. altivec.h contains the following
|
||||
statement:
|
||||
|
||||
#if !defined(__APPLE_ALTIVEC__)
|
||||
#define vector __vector
|
||||
#define pixel __pixel
|
||||
#define bool
|
||||
#endif
|
||||
|
||||
In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither
|
||||
as vector, pixel, and bool. In order to make "typedef vector int t;"
|
||||
pass the compilation, we need to include altivec.h.
|
||||
|
||||
However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler,
|
||||
so as vector, pixel, and bool. We could not judge whether
|
||||
altivec.h is needed by "typedef vector int t;".
|
||||
Here we include another statement "int tmp = __CR6_EQ;", in
|
||||
which __CR6_EQ is defined in altivec.h.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
|
||||
|
||||
diff -ruN a/configure.in b/configure.in
|
||||
--- a/configure.ac 2010-09-14 20:55:42.399687663 +0800
|
||||
+++ b/configure.ac 2010-09-14 20:56:43.403204648 +0800
|
||||
@@ -79,11 +79,11 @@
|
||||
CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
|
||||
AC_MSG_CHECKING([if <altivec.h> is needed])
|
||||
AC_TRY_COMPILE([],
|
||||
- [typedef vector int t;
|
||||
+ [typedef vector int t; int tmp = __CR6_EQ;
|
||||
vec_ld(0, (unsigned char *)0);],
|
||||
[have_altivec=yes; AC_MSG_RESULT(no)],
|
||||
[AC_TRY_COMPILE([#include <altivec.h>],
|
||||
- [typedef vector int t; vec_ld(0, (unsigned char *)0);],
|
||||
+ [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);],
|
||||
[AC_DEFINE([HAVE_ALTIVEC_H],,
|
||||
[Define to 1 if you have the <altivec.h> header.])
|
||||
have_altivec=yes; AC_MSG_RESULT(yes)],
|
||||
Reference in New Issue
Block a user