diff --git a/.gitignore b/.gitignore index 02fa665..97020ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/libjpeg-turbo-1.5.3.tar.gz -/libjpeg-turbo-1.5.3.tar.gz +libjpeg-turbo-3.0.2.tar.gz diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index eb7c84f..0000000 --- a/gating.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- !Policy -product_versions: - - rhel-8 -decision_context: osci_compose_gate -rules: - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/libjpeg-turbo-CET.patch b/libjpeg-turbo-CET.patch index 9a3028b..75e0cea 100644 --- a/libjpeg-turbo-CET.patch +++ b/libjpeg-turbo-CET.patch @@ -1,819 +1,1248 @@ -diff --git a/simd/jccolext-mmx.asm b/simd/jccolext-mmx.asm -index 96a0372..3e95a2e 100644 ---- a/simd/jccolext-mmx.asm -+++ b/simd/jccolext-mmx.asm +From db1afe88c361ceea22c6ac8abdb9b0ff41a39aa2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nikola=20Forr=C3=B3?= +Date: Mon, 15 Apr 2019 16:56:45 +0200 +Subject: [PATCH] x86 SIMD: Add endbr32/endbr64 instructions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Allow for indirect branch tracking with Intel CET (Control-Flow +Enforcement Technology) [1], by making all exported routines a possible +target for an indirect jump. + +Signed-off-by: Nikola Forró + +[1] https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf +--- + simd/i386/jccolext-avx2.asm | 1 + + simd/i386/jccolext-mmx.asm | 1 + + simd/i386/jccolext-sse2.asm | 1 + + simd/i386/jcgryext-avx2.asm | 1 + + simd/i386/jcgryext-mmx.asm | 1 + + simd/i386/jcgryext-sse2.asm | 1 + + simd/i386/jchuff-sse2.asm | 1 + + simd/i386/jcphuff-sse2.asm | 2 ++ + simd/i386/jcsample-avx2.asm | 2 ++ + simd/i386/jcsample-mmx.asm | 2 ++ + simd/i386/jcsample-sse2.asm | 2 ++ + simd/i386/jdcolext-avx2.asm | 1 + + simd/i386/jdcolext-mmx.asm | 1 + + simd/i386/jdcolext-sse2.asm | 1 + + simd/i386/jdmrgext-avx2.asm | 2 ++ + simd/i386/jdmrgext-mmx.asm | 2 ++ + simd/i386/jdmrgext-sse2.asm | 2 ++ + simd/i386/jdsample-avx2.asm | 4 ++++ + simd/i386/jdsample-mmx.asm | 4 ++++ + simd/i386/jdsample-sse2.asm | 4 ++++ + simd/i386/jfdctflt-3dn.asm | 1 + + simd/i386/jfdctflt-sse.asm | 1 + + simd/i386/jfdctfst-mmx.asm | 1 + + simd/i386/jfdctfst-sse2.asm | 1 + + simd/i386/jfdctint-avx2.asm | 1 + + simd/i386/jfdctint-mmx.asm | 1 + + simd/i386/jfdctint-sse2.asm | 1 + + simd/i386/jidctflt-3dn.asm | 1 + + simd/i386/jidctflt-sse.asm | 1 + + simd/i386/jidctflt-sse2.asm | 1 + + simd/i386/jidctfst-mmx.asm | 1 + + simd/i386/jidctfst-sse2.asm | 1 + + simd/i386/jidctint-avx2.asm | 1 + + simd/i386/jidctint-mmx.asm | 1 + + simd/i386/jidctint-sse2.asm | 1 + + simd/i386/jidctred-mmx.asm | 2 ++ + simd/i386/jidctred-sse2.asm | 2 ++ + simd/i386/jquant-3dn.asm | 2 ++ + simd/i386/jquant-mmx.asm | 2 ++ + simd/i386/jquant-sse.asm | 2 ++ + simd/i386/jquantf-sse2.asm | 2 ++ + simd/i386/jquanti-avx2.asm | 2 ++ + simd/i386/jquanti-sse2.asm | 2 ++ + simd/nasm/jsimdext.inc | 8 ++++++++ + simd/x86_64/jccolext-avx2.asm | 1 + + simd/x86_64/jccolext-sse2.asm | 1 + + simd/x86_64/jcgryext-avx2.asm | 1 + + simd/x86_64/jcgryext-sse2.asm | 1 + + simd/x86_64/jchuff-sse2.asm | 1 + + simd/x86_64/jcphuff-sse2.asm | 2 ++ + simd/x86_64/jcsample-avx2.asm | 2 ++ + simd/x86_64/jcsample-sse2.asm | 2 ++ + simd/x86_64/jdcolext-avx2.asm | 1 + + simd/x86_64/jdcolext-sse2.asm | 1 + + simd/x86_64/jdmrgext-avx2.asm | 2 ++ + simd/x86_64/jdmrgext-sse2.asm | 2 ++ + simd/x86_64/jdsample-avx2.asm | 4 ++++ + simd/x86_64/jdsample-sse2.asm | 4 ++++ + simd/x86_64/jfdctflt-sse.asm | 1 + + simd/x86_64/jfdctfst-sse2.asm | 1 + + simd/x86_64/jfdctint-avx2.asm | 1 + + simd/x86_64/jfdctint-sse2.asm | 1 + + simd/x86_64/jidctflt-sse2.asm | 1 + + simd/x86_64/jidctfst-sse2.asm | 1 + + simd/x86_64/jidctint-avx2.asm | 1 + + simd/x86_64/jidctint-sse2.asm | 1 + + simd/x86_64/jidctred-sse2.asm | 2 ++ + simd/x86_64/jquantf-sse2.asm | 2 ++ + simd/x86_64/jquanti-avx2.asm | 2 ++ + simd/x86_64/jquanti-sse2.asm | 2 ++ + 70 files changed, 116 insertions(+) + +diff --git a/simd/i386/jccolext-avx2.asm b/simd/i386/jccolext-avx2.asm +index c46d684..7dc6e08 100644 +--- a/simd/i386/jccolext-avx2.asm ++++ b/simd/i386/jccolext-avx2.asm @@ -42,6 +42,7 @@ - global EXTN(jsimd_rgb_ycc_convert_mmx) - + GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_avx2) + + EXTN(jsimd_rgb_ycc_convert_avx2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jccolext-mmx.asm b/simd/i386/jccolext-mmx.asm +index 6357a42..8048abb 100644 +--- a/simd/i386/jccolext-mmx.asm ++++ b/simd/i386/jccolext-mmx.asm +@@ -42,6 +42,7 @@ + GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_mmx) + EXTN(jsimd_rgb_ycc_convert_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jccolext-sse2-64.asm b/simd/jccolext-sse2-64.asm -index 8e4642d..1b8e990 100644 ---- a/simd/jccolext-sse2-64.asm -+++ b/simd/jccolext-sse2-64.asm ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jccolext-sse2.asm b/simd/i386/jccolext-sse2.asm +index c6c8085..5307ddc 100644 +--- a/simd/i386/jccolext-sse2.asm ++++ b/simd/i386/jccolext-sse2.asm @@ -41,6 +41,7 @@ - global EXTN(jsimd_rgb_ycc_convert_sse2) - + GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_sse2) + EXTN(jsimd_rgb_ycc_convert_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jccolext-sse2.asm b/simd/jccolext-sse2.asm -index cc38e98..847497c 100644 ---- a/simd/jccolext-sse2.asm -+++ b/simd/jccolext-sse2.asm -@@ -41,6 +41,7 @@ - global EXTN(jsimd_rgb_ycc_convert_sse2) - - EXTN(jsimd_rgb_ycc_convert_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jcgryext-mmx.asm b/simd/jcgryext-mmx.asm -index 1c1b8d8..cbf349c 100644 ---- a/simd/jcgryext-mmx.asm -+++ b/simd/jcgryext-mmx.asm -@@ -43,6 +43,7 @@ - global EXTN(jsimd_rgb_gray_convert_mmx) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jcgryext-avx2.asm b/simd/i386/jcgryext-avx2.asm +index 3fa7973..27a0e11 100644 +--- a/simd/i386/jcgryext-avx2.asm ++++ b/simd/i386/jcgryext-avx2.asm +@@ -42,6 +42,7 @@ + GLOBAL_FUNCTION(jsimd_rgb_gray_convert_avx2) + + EXTN(jsimd_rgb_gray_convert_avx2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jcgryext-mmx.asm b/simd/i386/jcgryext-mmx.asm +index 8af42e5..dda0e05 100644 +--- a/simd/i386/jcgryext-mmx.asm ++++ b/simd/i386/jcgryext-mmx.asm +@@ -42,6 +42,7 @@ + GLOBAL_FUNCTION(jsimd_rgb_gray_convert_mmx) + EXTN(jsimd_rgb_gray_convert_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jcgryext-sse2-64.asm b/simd/jcgryext-sse2-64.asm -index 541355a..6fa714b 100644 ---- a/simd/jcgryext-sse2-64.asm -+++ b/simd/jcgryext-sse2-64.asm ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jcgryext-sse2.asm b/simd/i386/jcgryext-sse2.asm +index c9d6ff1..f8835bb 100644 +--- a/simd/i386/jcgryext-sse2.asm ++++ b/simd/i386/jcgryext-sse2.asm @@ -41,6 +41,7 @@ - global EXTN(jsimd_rgb_gray_convert_sse2) - + GLOBAL_FUNCTION(jsimd_rgb_gray_convert_sse2) + EXTN(jsimd_rgb_gray_convert_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jcgryext-sse2.asm b/simd/jcgryext-sse2.asm -index cd16dd1..6da4f24 100644 ---- a/simd/jcgryext-sse2.asm -+++ b/simd/jcgryext-sse2.asm ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jchuff-sse2.asm b/simd/i386/jchuff-sse2.asm +index 76cc85f..0217480 100644 +--- a/simd/i386/jchuff-sse2.asm ++++ b/simd/i386/jchuff-sse2.asm +@@ -350,6 +350,7 @@ times 1 << 14 db 15 + GLOBAL_FUNCTION(jsimd_huff_encode_one_block_sse2) + + EXTN(jsimd_huff_encode_one_block_sse2): ++ _endbr32 + + %assign stack_offset 0 + %define arg_state 4 + stack_offset +diff --git a/simd/i386/jcphuff-sse2.asm b/simd/i386/jcphuff-sse2.asm +index c26b48a..7fb01e5 100644 +--- a/simd/i386/jcphuff-sse2.asm ++++ b/simd/i386/jcphuff-sse2.asm +@@ -281,6 +281,7 @@ + GLOBAL_FUNCTION(jsimd_encode_mcu_AC_first_prepare_sse2) + + EXTN(jsimd_encode_mcu_AC_first_prepare_sse2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -460,6 +461,7 @@ EXTN(jsimd_encode_mcu_AC_first_prepare_sse2): + GLOBAL_FUNCTION(jsimd_encode_mcu_AC_refine_prepare_sse2) + + EXTN(jsimd_encode_mcu_AC_refine_prepare_sse2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jcsample-avx2.asm b/simd/i386/jcsample-avx2.asm +index 0a20802..46eba8c 100644 +--- a/simd/i386/jcsample-avx2.asm ++++ b/simd/i386/jcsample-avx2.asm @@ -43,6 +43,7 @@ - global EXTN(jsimd_rgb_gray_convert_sse2) - - EXTN(jsimd_rgb_gray_convert_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jchuff-sse2-64.asm b/simd/jchuff-sse2-64.asm -index b1144d1..216b7ed 100644 ---- a/simd/jchuff-sse2-64.asm -+++ b/simd/jchuff-sse2-64.asm -@@ -186,6 +186,7 @@ EXTN(jconst_huff_encode_one_block): - global EXTN(jsimd_huff_encode_one_block_sse2) - - EXTN(jsimd_huff_encode_one_block_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jchuff-sse2.asm b/simd/jchuff-sse2.asm -index b81db75..0537a2c 100644 ---- a/simd/jchuff-sse2.asm -+++ b/simd/jchuff-sse2.asm -@@ -182,6 +182,7 @@ EXTN(jconst_huff_encode_one_block): - global EXTN(jsimd_huff_encode_one_block_sse2) - - EXTN(jsimd_huff_encode_one_block_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jcsample-mmx.asm b/simd/jcsample-mmx.asm -index 6cd544e..2834d1a 100644 ---- a/simd/jcsample-mmx.asm -+++ b/simd/jcsample-mmx.asm + GLOBAL_FUNCTION(jsimd_h2v1_downsample_avx2) + + EXTN(jsimd_h2v1_downsample_avx2): ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +@@ -216,6 +217,7 @@ EXTN(jsimd_h2v1_downsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_downsample_avx2) + + EXTN(jsimd_h2v2_downsample_avx2): ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jcsample-mmx.asm b/simd/i386/jcsample-mmx.asm +index 2c223ee..b2b8ded 100644 +--- a/simd/i386/jcsample-mmx.asm ++++ b/simd/i386/jcsample-mmx.asm @@ -42,6 +42,7 @@ - global EXTN(jsimd_h2v1_downsample_mmx) - + GLOBAL_FUNCTION(jsimd_h2v1_downsample_mmx) + EXTN(jsimd_h2v1_downsample_mmx): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -@@ -184,6 +185,7 @@ EXTN(jsimd_h2v1_downsample_mmx): - global EXTN(jsimd_h2v2_downsample_mmx) - ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +@@ -185,6 +186,7 @@ EXTN(jsimd_h2v1_downsample_mmx): + GLOBAL_FUNCTION(jsimd_h2v2_downsample_mmx) + EXTN(jsimd_h2v2_downsample_mmx): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -diff --git a/simd/jcsample-sse2-64.asm b/simd/jcsample-sse2-64.asm -index 40ee15f..336d259 100644 ---- a/simd/jcsample-sse2-64.asm -+++ b/simd/jcsample-sse2-64.asm ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jcsample-sse2.asm b/simd/i386/jcsample-sse2.asm +index 4fea60d..4c22b40 100644 +--- a/simd/i386/jcsample-sse2.asm ++++ b/simd/i386/jcsample-sse2.asm +@@ -42,6 +42,7 @@ + GLOBAL_FUNCTION(jsimd_h2v1_downsample_sse2) + + EXTN(jsimd_h2v1_downsample_sse2): ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +@@ -198,6 +199,7 @@ EXTN(jsimd_h2v1_downsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v2_downsample_sse2) + + EXTN(jsimd_h2v2_downsample_sse2): ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jdcolext-avx2.asm b/simd/i386/jdcolext-avx2.asm +index 015be04..b076765 100644 +--- a/simd/i386/jdcolext-avx2.asm ++++ b/simd/i386/jdcolext-avx2.asm @@ -43,6 +43,7 @@ - global EXTN(jsimd_h2v1_downsample_sse2) - - EXTN(jsimd_h2v1_downsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -@@ -187,6 +188,7 @@ EXTN(jsimd_h2v1_downsample_sse2): - global EXTN(jsimd_h2v2_downsample_sse2) - - EXTN(jsimd_h2v2_downsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -diff --git a/simd/jcsample-sse2.asm b/simd/jcsample-sse2.asm -index 83c9d15..685e428 100644 ---- a/simd/jcsample-sse2.asm -+++ b/simd/jcsample-sse2.asm + GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_avx2) + + EXTN(jsimd_ycc_rgb_convert_avx2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jdcolext-mmx.asm b/simd/i386/jdcolext-mmx.asm +index 5813cfc..150f5b6 100644 +--- a/simd/i386/jdcolext-mmx.asm ++++ b/simd/i386/jdcolext-mmx.asm @@ -42,6 +42,7 @@ - global EXTN(jsimd_h2v1_downsample_sse2) - - EXTN(jsimd_h2v1_downsample_sse2): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -@@ -197,6 +198,7 @@ EXTN(jsimd_h2v1_downsample_sse2): - global EXTN(jsimd_h2v2_downsample_sse2) - - EXTN(jsimd_h2v2_downsample_sse2): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -diff --git a/simd/jdcolext-mmx.asm b/simd/jdcolext-mmx.asm -index 21e34f6..428f1be 100644 ---- a/simd/jdcolext-mmx.asm -+++ b/simd/jdcolext-mmx.asm -@@ -42,6 +42,7 @@ - global EXTN(jsimd_ycc_rgb_convert_mmx) - + GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_mmx) + EXTN(jsimd_ycc_rgb_convert_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jdcolext-sse2-64.asm b/simd/jdcolext-sse2-64.asm -index 4634066..90ca172 100644 ---- a/simd/jdcolext-sse2-64.asm -+++ b/simd/jdcolext-sse2-64.asm -@@ -41,6 +41,7 @@ - global EXTN(jsimd_ycc_rgb_convert_sse2) - - EXTN(jsimd_ycc_rgb_convert_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jdcolext-sse2.asm b/simd/jdcolext-sse2.asm -index 682aef3..51b5388 100644 ---- a/simd/jdcolext-sse2.asm -+++ b/simd/jdcolext-sse2.asm -@@ -43,6 +43,7 @@ - global EXTN(jsimd_ycc_rgb_convert_sse2) - - EXTN(jsimd_ycc_rgb_convert_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jdmrgext-mmx.asm b/simd/jdmrgext-mmx.asm -index 63f45cf..c088eb8 100644 ---- a/simd/jdmrgext-mmx.asm -+++ b/simd/jdmrgext-mmx.asm ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jdcolext-sse2.asm b/simd/i386/jdcolext-sse2.asm +index d5572b3..cd3ac70 100644 +--- a/simd/i386/jdcolext-sse2.asm ++++ b/simd/i386/jdcolext-sse2.asm @@ -42,6 +42,7 @@ - global EXTN(jsimd_h2v1_merged_upsample_mmx) - - EXTN(jsimd_h2v1_merged_upsample_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -@@ -411,6 +412,7 @@ EXTN(jsimd_h2v1_merged_upsample_mmx): - global EXTN(jsimd_h2v2_merged_upsample_mmx) - - EXTN(jsimd_h2v2_merged_upsample_mmx): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -diff --git a/simd/jdmrgext-sse2-64.asm b/simd/jdmrgext-sse2-64.asm -index ad74c5f..d580d5b 100644 ---- a/simd/jdmrgext-sse2-64.asm -+++ b/simd/jdmrgext-sse2-64.asm -@@ -41,6 +41,7 @@ - global EXTN(jsimd_h2v1_merged_upsample_sse2) - - EXTN(jsimd_h2v1_merged_upsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -@@ -448,6 +449,7 @@ EXTN(jsimd_h2v1_merged_upsample_sse2): - global EXTN(jsimd_h2v2_merged_upsample_sse2) - - EXTN(jsimd_h2v2_merged_upsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -diff --git a/simd/jdmrgext-sse2.asm b/simd/jdmrgext-sse2.asm -index b50f698..6625784 100644 ---- a/simd/jdmrgext-sse2.asm -+++ b/simd/jdmrgext-sse2.asm + GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_sse2) + + EXTN(jsimd_ycc_rgb_convert_sse2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jdmrgext-avx2.asm b/simd/i386/jdmrgext-avx2.asm +index e35f728..0db0aa4 100644 +--- a/simd/i386/jdmrgext-avx2.asm ++++ b/simd/i386/jdmrgext-avx2.asm @@ -43,6 +43,7 @@ - global EXTN(jsimd_h2v1_merged_upsample_sse2) - + GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_avx2) + + EXTN(jsimd_h2v1_merged_upsample_avx2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -523,6 +524,7 @@ EXTN(jsimd_h2v1_merged_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_avx2) + + EXTN(jsimd_h2v2_merged_upsample_avx2): ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jdmrgext-mmx.asm b/simd/i386/jdmrgext-mmx.asm +index eb3e36b..6427a1a 100644 +--- a/simd/i386/jdmrgext-mmx.asm ++++ b/simd/i386/jdmrgext-mmx.asm +@@ -40,6 +40,7 @@ + GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_mmx) + + EXTN(jsimd_h2v1_merged_upsample_mmx): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -408,6 +409,7 @@ EXTN(jsimd_h2v1_merged_upsample_mmx): + GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_mmx) + + EXTN(jsimd_h2v2_merged_upsample_mmx): ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jdmrgext-sse2.asm b/simd/i386/jdmrgext-sse2.asm +index c113dc4..6897fa1 100644 +--- a/simd/i386/jdmrgext-sse2.asm ++++ b/simd/i386/jdmrgext-sse2.asm +@@ -42,6 +42,7 @@ + GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_sse2) + EXTN(jsimd_h2v1_merged_upsample_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -@@ -466,6 +467,7 @@ EXTN(jsimd_h2v1_merged_upsample_sse2): - global EXTN(jsimd_h2v2_merged_upsample_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -465,6 +466,7 @@ EXTN(jsimd_h2v1_merged_upsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_sse2) + EXTN(jsimd_h2v2_merged_upsample_sse2): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -diff --git a/simd/jdsample-mmx.asm b/simd/jdsample-mmx.asm -index 5e4fa7a..4ec823d 100644 ---- a/simd/jdsample-mmx.asm -+++ b/simd/jdsample-mmx.asm -@@ -60,6 +60,7 @@ PW_EIGHT times 4 dw 8 - global EXTN(jsimd_h2v1_fancy_upsample_mmx) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jdsample-avx2.asm b/simd/i386/jdsample-avx2.asm +index a800c35..7d52708 100644 +--- a/simd/i386/jdsample-avx2.asm ++++ b/simd/i386/jdsample-avx2.asm +@@ -60,6 +60,7 @@ PW_EIGHT times 16 dw 8 + GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_avx2) + + EXTN(jsimd_h2v1_fancy_upsample_avx2): ++ _endbr32 + push ebp + mov ebp, esp + pushpic ebx +@@ -227,6 +228,7 @@ EXTN(jsimd_h2v1_fancy_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_avx2) + + EXTN(jsimd_h2v2_fancy_upsample_avx2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -570,6 +572,7 @@ EXTN(jsimd_h2v2_fancy_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v1_upsample_avx2) + + EXTN(jsimd_h2v1_upsample_avx2): ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +@@ -669,6 +672,7 @@ EXTN(jsimd_h2v1_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_upsample_avx2) + + EXTN(jsimd_h2v2_upsample_avx2): ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jdsample-mmx.asm b/simd/i386/jdsample-mmx.asm +index 12c49f0..7f2ab40 100644 +--- a/simd/i386/jdsample-mmx.asm ++++ b/simd/i386/jdsample-mmx.asm +@@ -59,6 +59,7 @@ PW_EIGHT times 4 dw 8 + GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_mmx) + EXTN(jsimd_h2v1_fancy_upsample_mmx): -+ _endbr32 - push ebp - mov ebp,esp - pushpic ebx -@@ -218,6 +219,7 @@ EXTN(jsimd_h2v1_fancy_upsample_mmx): - global EXTN(jsimd_h2v2_fancy_upsample_mmx) - ++ _endbr32 + push ebp + mov ebp, esp + pushpic ebx +@@ -217,6 +218,7 @@ EXTN(jsimd_h2v1_fancy_upsample_mmx): + GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_mmx) + EXTN(jsimd_h2v2_fancy_upsample_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -@@ -544,6 +546,7 @@ EXTN(jsimd_h2v2_fancy_upsample_mmx): - global EXTN(jsimd_h2v1_upsample_mmx) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -541,6 +543,7 @@ EXTN(jsimd_h2v2_fancy_upsample_mmx): + GLOBAL_FUNCTION(jsimd_h2v1_upsample_mmx) + EXTN(jsimd_h2v1_upsample_mmx): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -@@ -645,6 +648,7 @@ EXTN(jsimd_h2v1_upsample_mmx): - global EXTN(jsimd_h2v2_upsample_mmx) - ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +@@ -640,6 +643,7 @@ EXTN(jsimd_h2v1_upsample_mmx): + GLOBAL_FUNCTION(jsimd_h2v2_upsample_mmx) + EXTN(jsimd_h2v2_upsample_mmx): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -diff --git a/simd/jdsample-sse2-64.asm b/simd/jdsample-sse2-64.asm -index 1faaed6..fecd438 100644 ---- a/simd/jdsample-sse2-64.asm -+++ b/simd/jdsample-sse2-64.asm -@@ -61,6 +61,7 @@ PW_EIGHT times 8 dw 8 - global EXTN(jsimd_h2v1_fancy_upsample_sse2) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jdsample-sse2.asm b/simd/i386/jdsample-sse2.asm +index 4e28d2f..3311b25 100644 +--- a/simd/i386/jdsample-sse2.asm ++++ b/simd/i386/jdsample-sse2.asm +@@ -59,6 +59,7 @@ PW_EIGHT times 8 dw 8 + GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_sse2) + EXTN(jsimd_h2v1_fancy_upsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -@@ -203,6 +204,7 @@ EXTN(jsimd_h2v1_fancy_upsample_sse2): - global EXTN(jsimd_h2v2_fancy_upsample_sse2) - - EXTN(jsimd_h2v2_fancy_upsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -@@ -500,6 +502,7 @@ EXTN(jsimd_h2v2_fancy_upsample_sse2): - global EXTN(jsimd_h2v1_upsample_sse2) - - EXTN(jsimd_h2v1_upsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -@@ -589,6 +592,7 @@ EXTN(jsimd_h2v1_upsample_sse2): - global EXTN(jsimd_h2v2_upsample_sse2) - - EXTN(jsimd_h2v2_upsample_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -diff --git a/simd/jdsample-sse2.asm b/simd/jdsample-sse2.asm -index 1d0059e..5da10a5 100644 ---- a/simd/jdsample-sse2.asm -+++ b/simd/jdsample-sse2.asm -@@ -60,6 +60,7 @@ PW_EIGHT times 8 dw 8 - global EXTN(jsimd_h2v1_fancy_upsample_sse2) - - EXTN(jsimd_h2v1_fancy_upsample_sse2): -+ _endbr32 - push ebp - mov ebp,esp - pushpic ebx ++ _endbr32 + push ebp + mov ebp, esp + pushpic ebx @@ -216,6 +217,7 @@ EXTN(jsimd_h2v1_fancy_upsample_sse2): - global EXTN(jsimd_h2v2_fancy_upsample_sse2) - + GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_sse2) + EXTN(jsimd_h2v2_fancy_upsample_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -@@ -540,6 +542,7 @@ EXTN(jsimd_h2v2_fancy_upsample_sse2): - global EXTN(jsimd_h2v1_upsample_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -538,6 +540,7 @@ EXTN(jsimd_h2v2_fancy_upsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v1_upsample_sse2) + EXTN(jsimd_h2v1_upsample_sse2): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -@@ -639,6 +642,7 @@ EXTN(jsimd_h2v1_upsample_sse2): - global EXTN(jsimd_h2v2_upsample_sse2) - ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +@@ -635,6 +638,7 @@ EXTN(jsimd_h2v1_upsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v2_upsample_sse2) + EXTN(jsimd_h2v2_upsample_sse2): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -diff --git a/simd/jfdctflt-3dn.asm b/simd/jfdctflt-3dn.asm -index 2191618..33df9d6 100644 ---- a/simd/jfdctflt-3dn.asm -+++ b/simd/jfdctflt-3dn.asm -@@ -57,6 +57,7 @@ PD_1_306 times 2 dd 1.306562964876376527856643 - global EXTN(jsimd_fdct_float_3dnow) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jfdctflt-3dn.asm b/simd/i386/jfdctflt-3dn.asm +index 322ab16..109e36e 100644 +--- a/simd/i386/jfdctflt-3dn.asm ++++ b/simd/i386/jfdctflt-3dn.asm +@@ -56,6 +56,7 @@ PD_1_306 times 2 dd 1.306562964876376527856643 + GLOBAL_FUNCTION(jsimd_fdct_float_3dnow) + EXTN(jsimd_fdct_float_3dnow): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jfdctflt-sse-64.asm b/simd/jfdctflt-sse-64.asm -index 4b64ea4..2a820d8 100644 ---- a/simd/jfdctflt-sse-64.asm -+++ b/simd/jfdctflt-sse-64.asm -@@ -67,6 +67,7 @@ PD_1_306 times 4 dd 1.306562964876376527856643 - global EXTN(jsimd_fdct_float_sse) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jfdctflt-sse.asm b/simd/i386/jfdctflt-sse.asm +index 86952c6..b1e0576 100644 +--- a/simd/i386/jfdctflt-sse.asm ++++ b/simd/i386/jfdctflt-sse.asm +@@ -67,6 +67,7 @@ PD_1_306 times 4 dd 1.306562964876376527856643 + GLOBAL_FUNCTION(jsimd_fdct_float_sse) + EXTN(jsimd_fdct_float_sse): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jfdctflt-sse.asm b/simd/jfdctflt-sse.asm -index e7ede26..1b31cff 100644 ---- a/simd/jfdctflt-sse.asm -+++ b/simd/jfdctflt-sse.asm -@@ -67,6 +67,7 @@ PD_1_306 times 4 dd 1.306562964876376527856643 - global EXTN(jsimd_fdct_float_sse) - - EXTN(jsimd_fdct_float_sse): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jfdctfst-mmx.asm b/simd/jfdctfst-mmx.asm -index eb2eb9c..d9c7c24 100644 ---- a/simd/jfdctfst-mmx.asm -+++ b/simd/jfdctfst-mmx.asm -@@ -82,6 +82,7 @@ PW_F1306 times 4 dw F_1_306 << CONST_SHIFT - global EXTN(jsimd_fdct_ifast_mmx) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jfdctfst-mmx.asm b/simd/i386/jfdctfst-mmx.asm +index 80645a5..be84fdb 100644 +--- a/simd/i386/jfdctfst-mmx.asm ++++ b/simd/i386/jfdctfst-mmx.asm +@@ -81,6 +81,7 @@ PW_F1306 times 4 dw F_1_306 << CONST_SHIFT + GLOBAL_FUNCTION(jsimd_fdct_ifast_mmx) + EXTN(jsimd_fdct_ifast_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jfdctfst-sse2-64.asm b/simd/jfdctfst-sse2-64.asm -index 4c96685..1530012 100644 ---- a/simd/jfdctfst-sse2-64.asm -+++ b/simd/jfdctfst-sse2-64.asm -@@ -82,6 +82,7 @@ PW_F1306 times 8 dw F_1_306 << CONST_SHIFT - global EXTN(jsimd_fdct_ifast_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jfdctfst-sse2.asm b/simd/i386/jfdctfst-sse2.asm +index 446fa7a..945f9cf 100644 +--- a/simd/i386/jfdctfst-sse2.asm ++++ b/simd/i386/jfdctfst-sse2.asm +@@ -82,6 +82,7 @@ PW_F1306 times 8 dw F_1_306 << CONST_SHIFT + GLOBAL_FUNCTION(jsimd_fdct_ifast_sse2) + EXTN(jsimd_fdct_ifast_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jfdctfst-sse2.asm b/simd/jfdctfst-sse2.asm -index 54856a2..e305ac8 100644 ---- a/simd/jfdctfst-sse2.asm -+++ b/simd/jfdctfst-sse2.asm -@@ -82,6 +82,7 @@ PW_F1306 times 8 dw F_1_306 << CONST_SHIFT - global EXTN(jsimd_fdct_ifast_sse2) - - EXTN(jsimd_fdct_ifast_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jfdctint-mmx.asm b/simd/jfdctint-mmx.asm -index 9142ad8..a03ad5f 100644 ---- a/simd/jfdctint-mmx.asm -+++ b/simd/jfdctint-mmx.asm -@@ -103,6 +103,7 @@ PW_DESCALE_P2X times 4 dw 1 << (PASS1_BITS-1) - global EXTN(jsimd_fdct_islow_mmx) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jfdctint-avx2.asm b/simd/i386/jfdctint-avx2.asm +index 23cf733..56acb63 100644 +--- a/simd/i386/jfdctint-avx2.asm ++++ b/simd/i386/jfdctint-avx2.asm +@@ -260,6 +260,7 @@ PW_1_NEG1 times 8 dw 1 + GLOBAL_FUNCTION(jsimd_fdct_islow_avx2) + + EXTN(jsimd_fdct_islow_avx2): ++ _endbr32 + push ebp + mov ebp, esp + pushpic ebx +diff --git a/simd/i386/jfdctint-mmx.asm b/simd/i386/jfdctint-mmx.asm +index 34a43b9..4d1e773 100644 +--- a/simd/i386/jfdctint-mmx.asm ++++ b/simd/i386/jfdctint-mmx.asm +@@ -102,6 +102,7 @@ PW_DESCALE_P2X times 4 dw 1 << (PASS1_BITS - 1) + GLOBAL_FUNCTION(jsimd_fdct_islow_mmx) + EXTN(jsimd_fdct_islow_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jfdctint-sse2-64.asm b/simd/jfdctint-sse2-64.asm -index 9a0ca0f..c5c90b4 100644 ---- a/simd/jfdctint-sse2-64.asm -+++ b/simd/jfdctint-sse2-64.asm -@@ -103,6 +103,7 @@ PW_DESCALE_P2X times 8 dw 1 << (PASS1_BITS-1) - global EXTN(jsimd_fdct_islow_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jfdctint-sse2.asm b/simd/i386/jfdctint-sse2.asm +index 6f8e18c..3954c8f 100644 +--- a/simd/i386/jfdctint-sse2.asm ++++ b/simd/i386/jfdctint-sse2.asm +@@ -103,6 +103,7 @@ PW_DESCALE_P2X times 8 dw 1 << (PASS1_BITS - 1) + GLOBAL_FUNCTION(jsimd_fdct_islow_sse2) + EXTN(jsimd_fdct_islow_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jfdctint-sse2.asm b/simd/jfdctint-sse2.asm -index db9d0bb..cdfeee5 100644 ---- a/simd/jfdctint-sse2.asm -+++ b/simd/jfdctint-sse2.asm -@@ -103,6 +103,7 @@ PW_DESCALE_P2X times 8 dw 1 << (PASS1_BITS-1) - global EXTN(jsimd_fdct_islow_sse2) - - EXTN(jsimd_fdct_islow_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctflt-3dn.asm b/simd/jidctflt-3dn.asm -index 99356f2..0c16289 100644 ---- a/simd/jidctflt-3dn.asm -+++ b/simd/jidctflt-3dn.asm -@@ -65,6 +65,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE - global EXTN(jsimd_idct_float_3dnow) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctflt-3dn.asm b/simd/i386/jidctflt-3dn.asm +index 8795191..eb49902 100644 +--- a/simd/i386/jidctflt-3dn.asm ++++ b/simd/i386/jidctflt-3dn.asm +@@ -65,6 +65,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_float_3dnow) + EXTN(jsimd_idct_float_3dnow): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctflt-sse.asm b/simd/jidctflt-sse.asm -index 4d4af2f..96fef5e 100644 ---- a/simd/jidctflt-sse.asm -+++ b/simd/jidctflt-sse.asm -@@ -75,6 +75,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE - global EXTN(jsimd_idct_float_sse) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctflt-sse.asm b/simd/i386/jidctflt-sse.asm +index b27ecfd..ffe54f8 100644 +--- a/simd/i386/jidctflt-sse.asm ++++ b/simd/i386/jidctflt-sse.asm +@@ -75,6 +75,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_float_sse) + EXTN(jsimd_idct_float_sse): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctflt-sse2-64.asm b/simd/jidctflt-sse2-64.asm -index bdda05d..70863f0 100644 ---- a/simd/jidctflt-sse2-64.asm -+++ b/simd/jidctflt-sse2-64.asm -@@ -76,6 +76,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_float_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctflt-sse2.asm b/simd/i386/jidctflt-sse2.asm +index c646eae..fd1fe35 100644 +--- a/simd/i386/jidctflt-sse2.asm ++++ b/simd/i386/jidctflt-sse2.asm +@@ -75,6 +75,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_float_sse2) + EXTN(jsimd_idct_float_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jidctflt-sse2.asm b/simd/jidctflt-sse2.asm -index a15a9c1..0eb849e 100644 ---- a/simd/jidctflt-sse2.asm -+++ b/simd/jidctflt-sse2.asm -@@ -75,6 +75,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_float_sse2) - - EXTN(jsimd_idct_float_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctfst-mmx.asm b/simd/jidctfst-mmx.asm -index 6e95bfb..095deed 100644 ---- a/simd/jidctfst-mmx.asm -+++ b/simd/jidctfst-mmx.asm -@@ -96,6 +96,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE - global EXTN(jsimd_idct_ifast_mmx) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctfst-mmx.asm b/simd/i386/jidctfst-mmx.asm +index 24622d4..00940b8 100644 +--- a/simd/i386/jidctfst-mmx.asm ++++ b/simd/i386/jidctfst-mmx.asm +@@ -96,6 +96,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_ifast_mmx) + EXTN(jsimd_idct_ifast_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctfst-sse2-64.asm b/simd/jidctfst-sse2-64.asm -index 4884642..f486c7e 100644 ---- a/simd/jidctfst-sse2-64.asm -+++ b/simd/jidctfst-sse2-64.asm -@@ -95,6 +95,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_ifast_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctfst-sse2.asm b/simd/i386/jidctfst-sse2.asm +index 19704ff..1f4af33 100644 +--- a/simd/i386/jidctfst-sse2.asm ++++ b/simd/i386/jidctfst-sse2.asm +@@ -94,6 +94,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_ifast_sse2) + EXTN(jsimd_idct_ifast_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jidctfst-sse2.asm b/simd/jidctfst-sse2.asm -index f591e55..7060d1e 100644 ---- a/simd/jidctfst-sse2.asm -+++ b/simd/jidctfst-sse2.asm -@@ -94,6 +94,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_ifast_sse2) - - EXTN(jsimd_idct_ifast_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctint-mmx.asm b/simd/jidctint-mmx.asm -index 5bd1981..35080f6 100644 ---- a/simd/jidctint-mmx.asm -+++ b/simd/jidctint-mmx.asm -@@ -109,6 +109,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE - global EXTN(jsimd_idct_islow_mmx) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctint-avx2.asm b/simd/i386/jidctint-avx2.asm +index 199c7df..2eb606a 100644 +--- a/simd/i386/jidctint-avx2.asm ++++ b/simd/i386/jidctint-avx2.asm +@@ -296,6 +296,7 @@ PW_1_NEG1 times 8 dw 1 + GLOBAL_FUNCTION(jsimd_idct_islow_avx2) + + EXTN(jsimd_idct_islow_avx2): ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctint-mmx.asm b/simd/i386/jidctint-mmx.asm +index f15c8d3..2d91b7e 100644 +--- a/simd/i386/jidctint-mmx.asm ++++ b/simd/i386/jidctint-mmx.asm +@@ -109,6 +109,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_islow_mmx) + EXTN(jsimd_idct_islow_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctint-sse2-64.asm b/simd/jidctint-sse2-64.asm -index afe1d6a..842f2dd 100644 ---- a/simd/jidctint-sse2-64.asm -+++ b/simd/jidctint-sse2-64.asm -@@ -108,6 +108,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_islow_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctint-sse2.asm b/simd/i386/jidctint-sse2.asm +index 43e3201..804be19 100644 +--- a/simd/i386/jidctint-sse2.asm ++++ b/simd/i386/jidctint-sse2.asm +@@ -107,6 +107,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_islow_sse2) + EXTN(jsimd_idct_islow_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -diff --git a/simd/jidctint-sse2.asm b/simd/jidctint-sse2.asm -index 6c7e7d9..3482088 100644 ---- a/simd/jidctint-sse2.asm -+++ b/simd/jidctint-sse2.asm -@@ -107,6 +107,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_islow_sse2) - - EXTN(jsimd_idct_islow_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -diff --git a/simd/jidctred-mmx.asm b/simd/jidctred-mmx.asm -index ba054e3..159e4c2 100644 ---- a/simd/jidctred-mmx.asm -+++ b/simd/jidctred-mmx.asm ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +diff --git a/simd/i386/jidctred-mmx.asm b/simd/i386/jidctred-mmx.asm +index e2307e1..cb43106 100644 +--- a/simd/i386/jidctred-mmx.asm ++++ b/simd/i386/jidctred-mmx.asm @@ -117,6 +117,7 @@ PB_CENTERJSAMP times 8 db CENTERJSAMPLE - global EXTN(jsimd_idct_4x4_mmx) - + GLOBAL_FUNCTION(jsimd_idct_4x4_mmx) + EXTN(jsimd_idct_4x4_mmx): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -@@ -505,6 +506,7 @@ EXTN(jsimd_idct_4x4_mmx): - global EXTN(jsimd_idct_2x2_mmx) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -504,6 +505,7 @@ EXTN(jsimd_idct_4x4_mmx): + GLOBAL_FUNCTION(jsimd_idct_2x2_mmx) + EXTN(jsimd_idct_2x2_mmx): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -diff --git a/simd/jidctred-sse2-64.asm b/simd/jidctred-sse2-64.asm -index a54bbe2..539602e 100644 ---- a/simd/jidctred-sse2-64.asm -+++ b/simd/jidctred-sse2-64.asm -@@ -116,6 +116,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_4x4_sse2) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jidctred-sse2.asm b/simd/i386/jidctred-sse2.asm +index 6e56494..2a61b9e 100644 +--- a/simd/i386/jidctred-sse2.asm ++++ b/simd/i386/jidctred-sse2.asm +@@ -115,6 +115,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_4x4_sse2) + EXTN(jsimd_idct_4x4_sse2): -+ _endbr64 - push rbp - mov rax,rsp ; rax = original rbp - sub rsp, byte 4 -@@ -415,6 +416,7 @@ EXTN(jsimd_idct_4x4_sse2): - global EXTN(jsimd_idct_2x2_sse2) - ++ _endbr32 + push ebp + mov eax, esp ; eax = original ebp + sub esp, byte 4 +@@ -425,6 +426,7 @@ EXTN(jsimd_idct_4x4_sse2): + GLOBAL_FUNCTION(jsimd_idct_2x2_sse2) + EXTN(jsimd_idct_2x2_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -diff --git a/simd/jidctred-sse2.asm b/simd/jidctred-sse2.asm -index 232d983..0145364 100644 ---- a/simd/jidctred-sse2.asm -+++ b/simd/jidctred-sse2.asm -@@ -115,6 +115,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE - global EXTN(jsimd_idct_4x4_sse2) - - EXTN(jsimd_idct_4x4_sse2): -+ _endbr32 - push ebp - mov eax,esp ; eax = original ebp - sub esp, byte 4 -@@ -426,6 +427,7 @@ EXTN(jsimd_idct_4x4_sse2): - global EXTN(jsimd_idct_2x2_sse2) - - EXTN(jsimd_idct_2x2_sse2): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -diff --git a/simd/jquant-3dn.asm b/simd/jquant-3dn.asm -index 0b4164b..eba7485 100644 ---- a/simd/jquant-3dn.asm -+++ b/simd/jquant-3dn.asm -@@ -37,6 +37,7 @@ - global EXTN(jsimd_convsamp_float_3dnow) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +diff --git a/simd/i386/jquant-3dn.asm b/simd/i386/jquant-3dn.asm +index 5cb60ca..a0599eb 100644 +--- a/simd/i386/jquant-3dn.asm ++++ b/simd/i386/jquant-3dn.asm +@@ -36,6 +36,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_float_3dnow) + EXTN(jsimd_convsamp_float_3dnow): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -@@ -140,6 +141,7 @@ EXTN(jsimd_convsamp_float_3dnow): - global EXTN(jsimd_quantize_float_3dnow) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +@@ -138,6 +139,7 @@ EXTN(jsimd_convsamp_float_3dnow): + GLOBAL_FUNCTION(jsimd_quantize_float_3dnow) + EXTN(jsimd_quantize_float_3dnow): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -diff --git a/simd/jquant-mmx.asm b/simd/jquant-mmx.asm -index aed6071..59a7f78 100644 ---- a/simd/jquant-mmx.asm -+++ b/simd/jquant-mmx.asm -@@ -37,6 +37,7 @@ - global EXTN(jsimd_convsamp_mmx) - ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jquant-mmx.asm b/simd/i386/jquant-mmx.asm +index 61305c6..080021b 100644 +--- a/simd/i386/jquant-mmx.asm ++++ b/simd/i386/jquant-mmx.asm +@@ -36,6 +36,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_mmx) + EXTN(jsimd_convsamp_mmx): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -@@ -142,6 +143,7 @@ EXTN(jsimd_convsamp_mmx): - global EXTN(jsimd_quantize_mmx) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +@@ -145,6 +146,7 @@ EXTN(jsimd_convsamp_mmx): + GLOBAL_FUNCTION(jsimd_quantize_mmx) + EXTN(jsimd_quantize_mmx): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -diff --git a/simd/jquant-sse.asm b/simd/jquant-sse.asm -index 1baf88f..87f513e 100644 ---- a/simd/jquant-sse.asm -+++ b/simd/jquant-sse.asm -@@ -37,6 +37,7 @@ - global EXTN(jsimd_convsamp_float_sse) - ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jquant-sse.asm b/simd/i386/jquant-sse.asm +index 218adc9..cacd2a9 100644 +--- a/simd/i386/jquant-sse.asm ++++ b/simd/i386/jquant-sse.asm +@@ -36,6 +36,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_float_sse) + EXTN(jsimd_convsamp_float_sse): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -@@ -140,6 +141,7 @@ EXTN(jsimd_convsamp_float_sse): - global EXTN(jsimd_quantize_float_sse) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +@@ -138,6 +139,7 @@ EXTN(jsimd_convsamp_float_sse): + GLOBAL_FUNCTION(jsimd_quantize_float_sse) + EXTN(jsimd_quantize_float_sse): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -diff --git a/simd/jquantf-sse2-64.asm b/simd/jquantf-sse2-64.asm -index ef5c1f9..b618287 100644 ---- a/simd/jquantf-sse2-64.asm -+++ b/simd/jquantf-sse2-64.asm -@@ -38,6 +38,7 @@ - global EXTN(jsimd_convsamp_float_sse2) - ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jquantf-sse2.asm b/simd/i386/jquantf-sse2.asm +index a881ab5..6f4789c 100644 +--- a/simd/i386/jquantf-sse2.asm ++++ b/simd/i386/jquantf-sse2.asm +@@ -36,6 +36,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_float_sse2) + EXTN(jsimd_convsamp_float_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -@@ -112,6 +113,7 @@ EXTN(jsimd_convsamp_float_sse2): - global EXTN(jsimd_quantize_float_sse2) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +@@ -115,6 +116,7 @@ EXTN(jsimd_convsamp_float_sse2): + GLOBAL_FUNCTION(jsimd_quantize_float_sse2) + EXTN(jsimd_quantize_float_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -diff --git a/simd/jquantf-sse2.asm b/simd/jquantf-sse2.asm -index 1cbc267..086416a 100644 ---- a/simd/jquantf-sse2.asm -+++ b/simd/jquantf-sse2.asm ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jquanti-avx2.asm b/simd/i386/jquanti-avx2.asm +index 5ed6bec..efcddd2 100644 +--- a/simd/i386/jquanti-avx2.asm ++++ b/simd/i386/jquanti-avx2.asm @@ -37,6 +37,7 @@ - global EXTN(jsimd_convsamp_float_sse2) - - EXTN(jsimd_convsamp_float_sse2): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -@@ -117,6 +118,7 @@ EXTN(jsimd_convsamp_float_sse2): - global EXTN(jsimd_quantize_float_sse2) - - EXTN(jsimd_quantize_float_sse2): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -diff --git a/simd/jquanti-sse2-64.asm b/simd/jquanti-sse2-64.asm -index 66c4e51..65c8564 100644 ---- a/simd/jquanti-sse2-64.asm -+++ b/simd/jquanti-sse2-64.asm -@@ -38,6 +38,7 @@ - global EXTN(jsimd_convsamp_sse2) - + GLOBAL_FUNCTION(jsimd_convsamp_avx2) + + EXTN(jsimd_convsamp_avx2): ++ _endbr32 + push ebp + mov ebp, esp + push ebx +@@ -130,6 +131,7 @@ EXTN(jsimd_convsamp_avx2): + GLOBAL_FUNCTION(jsimd_quantize_avx2) + + EXTN(jsimd_quantize_avx2): ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/i386/jquanti-sse2.asm b/simd/i386/jquanti-sse2.asm +index 0a50940..98d39e0 100644 +--- a/simd/i386/jquanti-sse2.asm ++++ b/simd/i386/jquanti-sse2.asm +@@ -36,6 +36,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_sse2) + EXTN(jsimd_convsamp_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -@@ -114,6 +115,7 @@ EXTN(jsimd_convsamp_sse2): - global EXTN(jsimd_quantize_sse2) - ++ _endbr32 + push ebp + mov ebp, esp + push ebx +@@ -121,6 +122,7 @@ EXTN(jsimd_convsamp_sse2): + GLOBAL_FUNCTION(jsimd_quantize_sse2) + EXTN(jsimd_quantize_sse2): -+ _endbr64 - push rbp - mov rax,rsp - mov rbp,rsp -diff --git a/simd/jquanti-sse2.asm b/simd/jquanti-sse2.asm -index aea8604..4ed539e 100644 ---- a/simd/jquanti-sse2.asm -+++ b/simd/jquanti-sse2.asm -@@ -37,6 +37,7 @@ - global EXTN(jsimd_convsamp_sse2) - - EXTN(jsimd_convsamp_sse2): -+ _endbr32 - push ebp - mov ebp,esp - push ebx -@@ -119,6 +120,7 @@ EXTN(jsimd_convsamp_sse2): - global EXTN(jsimd_quantize_sse2) - - EXTN(jsimd_quantize_sse2): -+ _endbr32 - push ebp - mov ebp,esp - ; push ebx ; unused -diff --git a/simd/jsimdcpu.asm b/simd/jsimdcpu.asm -index 599083b..03ae0cb 100644 ---- a/simd/jsimdcpu.asm -+++ b/simd/jsimdcpu.asm -@@ -31,6 +31,7 @@ - global EXTN(jpeg_simd_cpu_support) - - EXTN(jpeg_simd_cpu_support): -+ _endbr32 - push ebx - ; push ecx ; need not be preserved - ; push edx ; need not be preserved -diff --git a/simd/jsimdext.inc b/simd/jsimdext.inc -index f28db60..abc3493 100644 ---- a/simd/jsimdext.inc -+++ b/simd/jsimdext.inc -@@ -367,6 +367,14 @@ const_base: - ++ _endbr32 + push ebp + mov ebp, esp + ; push ebx ; unused +diff --git a/simd/nasm/jsimdext.inc b/simd/nasm/jsimdext.inc +index bebcb20..4b0cd69 100644 +--- a/simd/nasm/jsimdext.inc ++++ b/simd/nasm/jsimdext.inc +@@ -513,6 +513,14 @@ const_base: + %endif - + +%imacro _endbr32 0 -+ dd 0xfb1e0ff3 ++ dd 0xfb1e0ff3 +%endmacro + +%imacro _endbr64 0 -+ dd 0xfa1e0ff3 ++ dd 0xfa1e0ff3 +%endmacro + ; -------------------------------------------------------------------------- ; Defines picked up from the C headers ; +diff --git a/simd/x86_64/jccolext-avx2.asm b/simd/x86_64/jccolext-avx2.asm +index dd7ea39..e6c8283 100644 +--- a/simd/x86_64/jccolext-avx2.asm ++++ b/simd/x86_64/jccolext-avx2.asm +@@ -41,6 +41,7 @@ + GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_avx2) + + EXTN(jsimd_rgb_ycc_convert_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jccolext-sse2.asm b/simd/x86_64/jccolext-sse2.asm +index bc1e817..4bb1af6 100644 +--- a/simd/x86_64/jccolext-sse2.asm ++++ b/simd/x86_64/jccolext-sse2.asm +@@ -40,6 +40,7 @@ + GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_sse2) + + EXTN(jsimd_rgb_ycc_convert_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jcgryext-avx2.asm b/simd/x86_64/jcgryext-avx2.asm +index c8c8d12..12ecb7e 100644 +--- a/simd/x86_64/jcgryext-avx2.asm ++++ b/simd/x86_64/jcgryext-avx2.asm +@@ -41,6 +41,7 @@ + GLOBAL_FUNCTION(jsimd_rgb_gray_convert_avx2) + + EXTN(jsimd_rgb_gray_convert_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jcgryext-sse2.asm b/simd/x86_64/jcgryext-sse2.asm +index 7e5a0f2..e3a2413 100644 +--- a/simd/x86_64/jcgryext-sse2.asm ++++ b/simd/x86_64/jcgryext-sse2.asm +@@ -40,6 +40,7 @@ + GLOBAL_FUNCTION(jsimd_rgb_gray_convert_sse2) + + EXTN(jsimd_rgb_gray_convert_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jchuff-sse2.asm b/simd/x86_64/jchuff-sse2.asm +index 0c2cdd6..44ea81d 100644 +--- a/simd/x86_64/jchuff-sse2.asm ++++ b/simd/x86_64/jchuff-sse2.asm +@@ -261,6 +261,7 @@ times 1 << 15 db 16 + GLOBAL_FUNCTION(jsimd_huff_encode_one_block_sse2) + + EXTN(jsimd_huff_encode_one_block_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + +diff --git a/simd/x86_64/jcphuff-sse2.asm b/simd/x86_64/jcphuff-sse2.asm +index 11db4b2..2157e97 100644 +--- a/simd/x86_64/jcphuff-sse2.asm ++++ b/simd/x86_64/jcphuff-sse2.asm +@@ -282,6 +282,7 @@ + GLOBAL_FUNCTION(jsimd_encode_mcu_AC_first_prepare_sse2) + + EXTN(jsimd_encode_mcu_AC_first_prepare_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + and rsp, byte (-SIZEOF_XMMWORD) ; align to 128 bits +@@ -445,6 +446,7 @@ EXTN(jsimd_encode_mcu_AC_first_prepare_sse2): + GLOBAL_FUNCTION(jsimd_encode_mcu_AC_refine_prepare_sse2) + + EXTN(jsimd_encode_mcu_AC_refine_prepare_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + and rsp, byte (-SIZEOF_XMMWORD) ; align to 128 bits +diff --git a/simd/x86_64/jcsample-avx2.asm b/simd/x86_64/jcsample-avx2.asm +index 589c52b..7d8d4e0 100644 +--- a/simd/x86_64/jcsample-avx2.asm ++++ b/simd/x86_64/jcsample-avx2.asm +@@ -44,6 +44,7 @@ + GLOBAL_FUNCTION(jsimd_h2v1_downsample_avx2) + + EXTN(jsimd_h2v1_downsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 6 +@@ -205,6 +206,7 @@ EXTN(jsimd_h2v1_downsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_downsample_avx2) + + EXTN(jsimd_h2v2_downsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 6 +diff --git a/simd/x86_64/jcsample-sse2.asm b/simd/x86_64/jcsample-sse2.asm +index 7a4f1bc..8932b94 100644 +--- a/simd/x86_64/jcsample-sse2.asm ++++ b/simd/x86_64/jcsample-sse2.asm +@@ -43,6 +43,7 @@ + GLOBAL_FUNCTION(jsimd_h2v1_downsample_sse2) + + EXTN(jsimd_h2v1_downsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 6 +@@ -187,6 +188,7 @@ EXTN(jsimd_h2v1_downsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v2_downsample_sse2) + + EXTN(jsimd_h2v2_downsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 6 +diff --git a/simd/x86_64/jdcolext-avx2.asm b/simd/x86_64/jdcolext-avx2.asm +index 070436c..6c0a212 100644 +--- a/simd/x86_64/jdcolext-avx2.asm ++++ b/simd/x86_64/jdcolext-avx2.asm +@@ -42,6 +42,7 @@ + GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_avx2) + + EXTN(jsimd_ycc_rgb_convert_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jdcolext-sse2.asm b/simd/x86_64/jdcolext-sse2.asm +index bba3a30..28d05e4 100644 +--- a/simd/x86_64/jdcolext-sse2.asm ++++ b/simd/x86_64/jdcolext-sse2.asm +@@ -41,6 +41,7 @@ + GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_sse2) + + EXTN(jsimd_ycc_rgb_convert_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jdmrgext-avx2.asm b/simd/x86_64/jdmrgext-avx2.asm +index 1191645..f58384c 100644 +--- a/simd/x86_64/jdmrgext-avx2.asm ++++ b/simd/x86_64/jdmrgext-avx2.asm +@@ -42,6 +42,7 @@ + GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_avx2) + + EXTN(jsimd_h2v1_merged_upsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +@@ -506,6 +507,7 @@ EXTN(jsimd_h2v1_merged_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_avx2) + + EXTN(jsimd_h2v2_merged_upsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +diff --git a/simd/x86_64/jdmrgext-sse2.asm b/simd/x86_64/jdmrgext-sse2.asm +index 8988dd0..8641aa3 100644 +--- a/simd/x86_64/jdmrgext-sse2.asm ++++ b/simd/x86_64/jdmrgext-sse2.asm +@@ -41,6 +41,7 @@ + GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_sse2) + + EXTN(jsimd_h2v1_merged_upsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +@@ -448,6 +449,7 @@ EXTN(jsimd_h2v1_merged_upsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_sse2) + + EXTN(jsimd_h2v2_merged_upsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +diff --git a/simd/x86_64/jdsample-avx2.asm b/simd/x86_64/jdsample-avx2.asm +index c6ddbb5..c5594ed 100644 +--- a/simd/x86_64/jdsample-avx2.asm ++++ b/simd/x86_64/jdsample-avx2.asm +@@ -62,6 +62,7 @@ PW_EIGHT times 16 dw 8 + GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_avx2) + + EXTN(jsimd_h2v1_fancy_upsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + push_xmm 3 +@@ -215,6 +216,7 @@ EXTN(jsimd_h2v1_fancy_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_avx2) + + EXTN(jsimd_h2v2_fancy_upsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +@@ -524,6 +526,7 @@ EXTN(jsimd_h2v2_fancy_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v1_upsample_avx2) + + EXTN(jsimd_h2v1_upsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +@@ -612,6 +615,7 @@ EXTN(jsimd_h2v1_upsample_avx2): + GLOBAL_FUNCTION(jsimd_h2v2_upsample_avx2) + + EXTN(jsimd_h2v2_upsample_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +diff --git a/simd/x86_64/jdsample-sse2.asm b/simd/x86_64/jdsample-sse2.asm +index 24cd389..27bf771 100644 +--- a/simd/x86_64/jdsample-sse2.asm ++++ b/simd/x86_64/jdsample-sse2.asm +@@ -61,6 +61,7 @@ PW_EIGHT times 8 dw 8 + GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_sse2) + + EXTN(jsimd_h2v1_fancy_upsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +@@ -202,6 +203,7 @@ EXTN(jsimd_h2v1_fancy_upsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_sse2) + + EXTN(jsimd_h2v2_fancy_upsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +@@ -497,6 +499,7 @@ EXTN(jsimd_h2v2_fancy_upsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v1_upsample_sse2) + + EXTN(jsimd_h2v1_upsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +@@ -583,6 +586,7 @@ EXTN(jsimd_h2v1_upsample_sse2): + GLOBAL_FUNCTION(jsimd_h2v2_upsample_sse2) + + EXTN(jsimd_h2v2_upsample_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +diff --git a/simd/x86_64/jfdctflt-sse.asm b/simd/x86_64/jfdctflt-sse.asm +index 3595496..b5abeee 100644 +--- a/simd/x86_64/jfdctflt-sse.asm ++++ b/simd/x86_64/jfdctflt-sse.asm +@@ -66,6 +66,7 @@ PD_1_306 times 4 dd 1.306562964876376527856643 + GLOBAL_FUNCTION(jsimd_fdct_float_sse) + + EXTN(jsimd_fdct_float_sse): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jfdctfst-sse2.asm b/simd/x86_64/jfdctfst-sse2.asm +index d33c58a..78af5e4 100644 +--- a/simd/x86_64/jfdctfst-sse2.asm ++++ b/simd/x86_64/jfdctfst-sse2.asm +@@ -81,6 +81,7 @@ PW_F1306 times 8 dw F_1_306 << CONST_SHIFT + GLOBAL_FUNCTION(jsimd_fdct_ifast_sse2) + + EXTN(jsimd_fdct_ifast_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jfdctint-avx2.asm b/simd/x86_64/jfdctint-avx2.asm +index d0afe5e..b083fbb 100644 +--- a/simd/x86_64/jfdctint-avx2.asm ++++ b/simd/x86_64/jfdctint-avx2.asm +@@ -260,6 +260,7 @@ PW_1_NEG1 times 8 dw 1 + GLOBAL_FUNCTION(jsimd_fdct_islow_avx2) + + EXTN(jsimd_fdct_islow_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 1 +diff --git a/simd/x86_64/jfdctint-sse2.asm b/simd/x86_64/jfdctint-sse2.asm +index 024ce90..88ea491 100644 +--- a/simd/x86_64/jfdctint-sse2.asm ++++ b/simd/x86_64/jfdctint-sse2.asm +@@ -102,6 +102,7 @@ PW_DESCALE_P2X times 8 dw 1 << (PASS1_BITS - 1) + GLOBAL_FUNCTION(jsimd_fdct_islow_sse2) + + EXTN(jsimd_fdct_islow_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jidctflt-sse2.asm b/simd/x86_64/jidctflt-sse2.asm +index 952fbe3..8610710 100644 +--- a/simd/x86_64/jidctflt-sse2.asm ++++ b/simd/x86_64/jidctflt-sse2.asm +@@ -76,6 +76,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_float_sse2) + + EXTN(jsimd_idct_float_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jidctfst-sse2.asm b/simd/x86_64/jidctfst-sse2.asm +index a3da8d8..351ee06 100644 +--- a/simd/x86_64/jidctfst-sse2.asm ++++ b/simd/x86_64/jidctfst-sse2.asm +@@ -95,6 +95,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_ifast_sse2) + + EXTN(jsimd_idct_ifast_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jidctint-avx2.asm b/simd/x86_64/jidctint-avx2.asm +index 528da01..00087c7 100644 +--- a/simd/x86_64/jidctint-avx2.asm ++++ b/simd/x86_64/jidctint-avx2.asm +@@ -282,6 +282,7 @@ PW_1_NEG1 times 8 dw 1 + GLOBAL_FUNCTION(jsimd_idct_islow_avx2) + + EXTN(jsimd_idct_islow_avx2): ++ _endbr64 + push rbp + mov rbp, rsp ; rbp = aligned rbp + push_xmm 4 +diff --git a/simd/x86_64/jidctint-sse2.asm b/simd/x86_64/jidctint-sse2.asm +index 92f633e..9301e81 100644 +--- a/simd/x86_64/jidctint-sse2.asm ++++ b/simd/x86_64/jidctint-sse2.asm +@@ -108,6 +108,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_islow_sse2) + + EXTN(jsimd_idct_islow_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +diff --git a/simd/x86_64/jidctred-sse2.asm b/simd/x86_64/jidctred-sse2.asm +index 1ec500c..e74162d 100644 +--- a/simd/x86_64/jidctred-sse2.asm ++++ b/simd/x86_64/jidctred-sse2.asm +@@ -116,6 +116,7 @@ PB_CENTERJSAMP times 16 db CENTERJSAMPLE + GLOBAL_FUNCTION(jsimd_idct_4x4_sse2) + + EXTN(jsimd_idct_4x4_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + push r15 +@@ -413,6 +414,7 @@ EXTN(jsimd_idct_4x4_sse2): + GLOBAL_FUNCTION(jsimd_idct_2x2_sse2) + + EXTN(jsimd_idct_2x2_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 4 +diff --git a/simd/x86_64/jquantf-sse2.asm b/simd/x86_64/jquantf-sse2.asm +index 232bbb2..2d65986 100644 +--- a/simd/x86_64/jquantf-sse2.asm ++++ b/simd/x86_64/jquantf-sse2.asm +@@ -37,6 +37,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_float_sse2) + + EXTN(jsimd_convsamp_float_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 3 +@@ -109,6 +110,7 @@ EXTN(jsimd_convsamp_float_sse2): + GLOBAL_FUNCTION(jsimd_quantize_float_sse2) + + EXTN(jsimd_quantize_float_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 3 +diff --git a/simd/x86_64/jquanti-avx2.asm b/simd/x86_64/jquanti-avx2.asm +index 66104d7..a7ea496 100644 +--- a/simd/x86_64/jquanti-avx2.asm ++++ b/simd/x86_64/jquanti-avx2.asm +@@ -38,6 +38,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_avx2) + + EXTN(jsimd_convsamp_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 3 +@@ -115,6 +116,7 @@ EXTN(jsimd_convsamp_avx2): + GLOBAL_FUNCTION(jsimd_quantize_avx2) + + EXTN(jsimd_quantize_avx2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 3 +diff --git a/simd/x86_64/jquanti-sse2.asm b/simd/x86_64/jquanti-sse2.asm +index 11e9f4c..24cb1cf 100644 +--- a/simd/x86_64/jquanti-sse2.asm ++++ b/simd/x86_64/jquanti-sse2.asm +@@ -37,6 +37,7 @@ + GLOBAL_FUNCTION(jsimd_convsamp_sse2) + + EXTN(jsimd_convsamp_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 3 +@@ -115,6 +116,7 @@ EXTN(jsimd_convsamp_sse2): + GLOBAL_FUNCTION(jsimd_quantize_sse2) + + EXTN(jsimd_quantize_sse2): ++ _endbr64 + push rbp + mov rbp, rsp + collect_args 3 +-- diff --git a/libjpeg-turbo-CVE-2018-1152.patch b/libjpeg-turbo-CVE-2018-1152.patch deleted file mode 100644 index a71d3e1..0000000 --- a/libjpeg-turbo-CVE-2018-1152.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 399719595f413158b3510128eb85f944654f960c Mon Sep 17 00:00:00 2001 -From: DRC -Date: Tue, 12 Jun 2018 20:27:00 -0500 -Subject: [PATCH] tjLoadImage(): Fix FPE triggered by malformed BMP - -In rdbmp.c, it is necessary to guard against 32-bit overflow/wraparound -when allocating the row buffer, because since BMP files have 32-bit -width and height fields, the value of biWidth can be up to 4294967295. -Specifically, if biWidth is 1073741824 and cinfo->input_components = 4, -then the samplesperrow argument in alloc_sarray() would wrap around to -0, and a division by zero error would occur at line 458 in jmemmgr.c. - -If biWidth is set to a higher value, then samplesperrow would wrap -around to a small number, which would likely cause a buffer overflow -(this has not been tested or verified.) ---- - rdbmp.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/rdbmp.c b/rdbmp.c -index eaa7086..4104b68 100644 ---- a/rdbmp.c -+++ b/rdbmp.c -@@ -434,6 +434,12 @@ start_input_bmp (j_compress_ptr cinfo, cjpeg_source_ptr sinfo) - progress->total_extra_passes++; /* count file input as separate pass */ - } - -+ /* Ensure that biWidth * cinfo->input_components doesn't exceed the maximum -+ value of the JDIMENSION type. This is only a danger with BMP files, since -+ their width and height fields are 32-bit integers. */ -+ if ((unsigned long long)biWidth * -+ (unsigned long long)cinfo->input_components > 0xFFFFFFFFULL) -+ ERREXIT(cinfo, JERR_WIDTH_OVERFLOW); - /* Allocate one-row buffer for returned data */ - source->pub.buffer = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, --- -2.17.1 - diff --git a/libjpeg-turbo-CVE-2018-11813.patch b/libjpeg-turbo-CVE-2018-11813.patch deleted file mode 100644 index a2dd3ac..0000000 --- a/libjpeg-turbo-CVE-2018-11813.patch +++ /dev/null @@ -1,59 +0,0 @@ -From ac483bbac827694aef13a179c1bffcb2a3dc32b8 Mon Sep 17 00:00:00 2001 -From: DRC -Date: Tue, 12 Jun 2018 16:08:26 -0500 -Subject: [PATCH] Fix CVE-2018-11813 - -Fixed an issue (CVE-2018-11813) whereby a specially-crafted malformed input -file (specifically, a file with a valid Targa header but incomplete pixel data) -would cause cjpeg to generate a JPEG file that was potentially thousands of -times larger than the input file. The Targa reader in cjpeg was not properly -detecting that the end of the input file had been reached prematurely, so after -all valid pixels had been read from the input, the reader injected dummy pixels -with values of 255 into the JPEG compressor until the number of pixels -specified in the Targa header had been compressed. The Targa reader in cjpeg -now behaves like the PPM reader and aborts compression if the end of the input -file is reached prematurely. Because this issue only affected cjpeg and not -the underlying library, and because it did not involve any out-of-bounds reads -or other exploitable behaviors, it was not believed to represent a security -threat. ---- - rdtarga.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/rdtarga.c b/rdtarga.c -index b9bbd07..f874ece 100644 ---- a/rdtarga.c -+++ b/rdtarga.c -@@ -125,11 +125,10 @@ METHODDEF(void) - read_non_rle_pixel (tga_source_ptr sinfo) - /* Read one Targa pixel from the input file; no RLE expansion */ - { -- register FILE *infile = sinfo->pub.input_file; - register int i; - - for (i = 0; i < sinfo->pixel_size; i++) { -- sinfo->tga_pixel[i] = (U_CHAR) getc(infile); -+ sinfo->tga_pixel[i] = (U_CHAR) read_byte(sinfo); - } - } - -@@ -138,7 +137,6 @@ METHODDEF(void) - read_rle_pixel (tga_source_ptr sinfo) - /* Read one Targa pixel from the input file, expanding RLE data as needed */ - { -- register FILE *infile = sinfo->pub.input_file; - register int i; - - /* Duplicate previously read pixel? */ -@@ -160,7 +158,7 @@ read_rle_pixel (tga_source_ptr sinfo) - - /* Read next pixel */ - for (i = 0; i < sinfo->pixel_size; i++) { -- sinfo->tga_pixel[i] = (U_CHAR) getc(infile); -+ sinfo->tga_pixel[i] = (U_CHAR) read_byte(sinfo); - } - } - --- -2.17.1 - diff --git a/libjpeg-turbo-CVE-2018-14498.patch b/libjpeg-turbo-CVE-2018-14498.patch deleted file mode 100644 index d76f754..0000000 --- a/libjpeg-turbo-CVE-2018-14498.patch +++ /dev/null @@ -1,151 +0,0 @@ -From c7dd3cd0fec2d6785f2bd79e3e2f0adb62ee8bc1 Mon Sep 17 00:00:00 2001 -From: DRC -Date: Fri, 20 Jul 2018 17:21:36 -0500 -Subject: [PATCH] cjpeg: Fix OOB read caused by malformed 8-bit BMP - -... in which one or more of the color indices is out of range for the -number of palette entries. - -Fix partly borrowed from jpeg-9c. This commit also adopts Guido's -JERR_PPM_OUTOFRANGE enum value in lieu of our project-specific -JERR_PPM_TOOLARGE enum value. - -Fixes #258 ---- - cderror.h | 5 +++-- - rdbmp.c | 7 ++++++- - rdppm.c | 12 ++++++------ - 3 files changed, 15 insertions(+), 9 deletions(-) - -diff --git a/cderror.h b/cderror.h -index 63de498..e57a8c8 100644 ---- a/cderror.h -+++ b/cderror.h -@@ -2,7 +2,7 @@ - * cderror.h - * - * Copyright (C) 1994-1997, Thomas G. Lane. -- * Modified 2009 by Guido Vollbeding. -+ * Modified 2009-2017 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README.ijg - * file. -@@ -49,6 +49,7 @@ JMESSAGE(JERR_BMP_COLORSPACE, "BMP output must be grayscale or RGB") - JMESSAGE(JERR_BMP_COMPRESSED, "Sorry, compressed BMPs not yet supported") - JMESSAGE(JERR_BMP_EMPTY, "Empty BMP image") - JMESSAGE(JERR_BMP_NOT, "Not a BMP file - does not start with BM") -+JMESSAGE(JERR_BMP_OUTOFRANGE, "Numeric value out of range in BMP file") - JMESSAGE(JTRC_BMP, "%ux%u 24-bit BMP image") - JMESSAGE(JTRC_BMP_MAPPED, "%ux%u 8-bit colormapped BMP image") - JMESSAGE(JTRC_BMP_OS2, "%ux%u 24-bit OS2 BMP image") -@@ -75,8 +76,8 @@ JMESSAGE(JWRN_GIF_NOMOREDATA, "Ran out of GIF bits") - #ifdef PPM_SUPPORTED - JMESSAGE(JERR_PPM_COLORSPACE, "PPM output must be grayscale or RGB") - JMESSAGE(JERR_PPM_NONNUMERIC, "Nonnumeric data in PPM file") --JMESSAGE(JERR_PPM_TOOLARGE, "Integer value too large in PPM file") - JMESSAGE(JERR_PPM_NOT, "Not a PPM/PGM file") -+JMESSAGE(JERR_PPM_OUTOFRANGE, "Numeric value out of range in PPM file") - JMESSAGE(JTRC_PGM, "%ux%u PGM image") - JMESSAGE(JTRC_PGM_TEXT, "%ux%u text PGM image") - JMESSAGE(JTRC_PPM, "%ux%u PPM image") -diff --git a/rdbmp.c b/rdbmp.c -index 4104b68..a7dbe9f 100644 ---- a/rdbmp.c -+++ b/rdbmp.c -@@ -3,7 +3,7 @@ - * - * This file was part of the Independent JPEG Group's software: - * Copyright (C) 1994-1996, Thomas G. Lane. -- * Modified 2009-2010 by Guido Vollbeding. -+ * Modified 2009-2017 by Guido Vollbeding. - * libjpeg-turbo Modifications: - * Modified 2011 by Siarhei Siamashka. - * Copyright (C) 2015, D. R. Commander. -@@ -66,6 +66,7 @@ typedef struct _bmp_source_struct { - JDIMENSION row_width; /* Physical width of scanlines in file */ - - int bits_per_pixel; /* remembers 8- or 24-bit format */ -+ int cmap_length; /* colormap length */ - } bmp_source_struct; - - -@@ -126,6 +127,7 @@ get_8bit_row (j_compress_ptr cinfo, cjpeg_source_ptr sinfo) - { - bmp_source_ptr source = (bmp_source_ptr) sinfo; - register JSAMPARRAY colormap = source->colormap; -+ int cmaplen = source->cmap_length; - JSAMPARRAY image_ptr; - register int t; - register JSAMPROW inptr, outptr; -@@ -142,6 +144,8 @@ get_8bit_row (j_compress_ptr cinfo, cjpeg_source_ptr sinfo) - outptr = source->pub.buffer[0]; - for (col = cinfo->image_width; col > 0; col--) { - t = GETJSAMPLE(*inptr++); -+ if (t >= cmaplen) -+ ERREXIT(cinfo, JERR_BMP_OUTOFRANGE); - *outptr++ = colormap[0][t]; /* can omit GETJSAMPLE() safely */ - *outptr++ = colormap[1][t]; - *outptr++ = colormap[2][t]; -@@ -401,6 +405,7 @@ start_input_bmp (j_compress_ptr cinfo, cjpeg_source_ptr sinfo) - source->colormap = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - (JDIMENSION) biClrUsed, (JDIMENSION) 3); -+ source->cmap_length = (int)biClrUsed; - /* and read it from the file */ - read_colormap(source, (int) biClrUsed, mapentrysize); - /* account for size of colormap */ -diff --git a/rdppm.c b/rdppm.c -index 33ff749..c0c0962 100644 ---- a/rdppm.c -+++ b/rdppm.c -@@ -69,7 +69,7 @@ typedef struct { - JSAMPROW pixrow; /* compressor input buffer */ - size_t buffer_width; /* width of I/O buffer */ - JSAMPLE *rescale; /* => maxval-remapping array, or NULL */ -- int maxval; -+ unsigned int maxval; - } ppm_source_struct; - - typedef ppm_source_struct *ppm_source_ptr; -@@ -119,7 +119,7 @@ read_pbm_integer (j_compress_ptr cinfo, FILE *infile, unsigned int maxval) - } - - if (val > maxval) -- ERREXIT(cinfo, JERR_PPM_TOOLARGE); -+ ERREXIT(cinfo, JERR_PPM_OUTOFRANGE); - - return val; - } -@@ -255,7 +255,7 @@ get_word_gray_row (j_compress_ptr cinfo, cjpeg_source_ptr sinfo) - temp = UCH(*bufferptr++) << 8; - temp |= UCH(*bufferptr++); - if (temp > maxval) -- ERREXIT(cinfo, JERR_PPM_TOOLARGE); -+ ERREXIT(cinfo, JERR_PPM_OUTOFRANGE); - *ptr++ = rescale[temp]; - } - return 1; -@@ -282,17 +282,17 @@ get_word_rgb_row (j_compress_ptr cinfo, cjpeg_source_ptr sinfo) - temp = UCH(*bufferptr++) << 8; - temp |= UCH(*bufferptr++); - if (temp > maxval) -- ERREXIT(cinfo, JERR_PPM_TOOLARGE); -+ ERREXIT(cinfo, JERR_PPM_OUTOFRANGE); - *ptr++ = rescale[temp]; - temp = UCH(*bufferptr++) << 8; - temp |= UCH(*bufferptr++); - if (temp > maxval) -- ERREXIT(cinfo, JERR_PPM_TOOLARGE); -+ ERREXIT(cinfo, JERR_PPM_OUTOFRANGE); - *ptr++ = rescale[temp]; - temp = UCH(*bufferptr++) << 8; - temp |= UCH(*bufferptr++); - if (temp > maxval) -- ERREXIT(cinfo, JERR_PPM_TOOLARGE); -+ ERREXIT(cinfo, JERR_PPM_OUTOFRANGE); - *ptr++ = rescale[temp]; - } - return 1; --- -2.21.0 - diff --git a/libjpeg-turbo-CVE-2020-13790.patch b/libjpeg-turbo-CVE-2020-13790.patch deleted file mode 100644 index 7fce13c..0000000 --- a/libjpeg-turbo-CVE-2020-13790.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c.CVE-2020-13790 libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c ---- libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c.CVE-2020-13790 2025-05-07 12:07:29.982772307 +0200 -+++ libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c 2025-05-07 12:11:13.911892476 +0200 -@@ -55,6 +55,9 @@ typedef char U_CHAR; - #endif - #endif /* HAVE_UNSIGNED_CHAR */ - -+#ifndef MAX -+#define MAX(a, b) ((a) > (b) ? (a) : (b)) -+#endif - - #define ReadOK(file,buffer,len) (JFREAD(file,buffer,len) == ((size_t) (len))) - -@@ -424,7 +427,7 @@ start_input_ppm (j_compress_ptr cinfo, c - /* On 16-bit-int machines we have to be careful of maxval = 65535 */ - source->rescale = (JSAMPLE *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, -- (size_t) (((long) maxval + 1L) * -+ (size_t)(((long)MAX(maxval, 255) + 1L) * - sizeof(JSAMPLE))); - half_maxval = maxval / 2; - for (val = 0; val <= (long) maxval; val++) { diff --git a/libjpeg-turbo-CVE-2020-13790pre.patch b/libjpeg-turbo-CVE-2020-13790pre.patch deleted file mode 100644 index 066628a..0000000 --- a/libjpeg-turbo-CVE-2020-13790pre.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c.CVE-2020-13790p2of3 libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c ---- libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c.CVE-2020-13790p2of3 2025-05-06 17:38:26.175241021 +0200 -+++ libjpeg-turbo-1.5.3-build/libjpeg-turbo-1.5.3/rdppm.c 2025-05-06 17:38:26.177038002 +0200 -@@ -116,11 +116,10 @@ read_pbm_integer (j_compress_ptr cinfo, - while ((ch = pbm_getc(infile)) >= '0' && ch <= '9') { - val *= 10; - val += ch - '0'; -+ if (val > maxval) -+ ERREXIT(cinfo, JERR_PPM_OUTOFRANGE); - } - -- if (val > maxval) -- ERREXIT(cinfo, JERR_PPM_OUTOFRANGE); -- - return val; - } - diff --git a/libjpeg-turbo-CVE-2020-17541.patch b/libjpeg-turbo-CVE-2020-17541.patch deleted file mode 100644 index fe91ef8..0000000 --- a/libjpeg-turbo-CVE-2020-17541.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/jchuff.c b/jchuff.c -index fffaace..3bf0194 100644 ---- a/jchuff.c -+++ b/jchuff.c -@@ -428,7 +428,7 @@ dump_buffer (working_state *state) - * scanning order-- 1, 8, 16, etc.), then this will produce an encoded block - * larger than 200 bytes. - */ --#define BUFSIZE (DCTSIZE2 * 4) -+#define BUFSIZE (DCTSIZE2 * 8) - - #define LOAD_BUFFER() { \ - if (state->free_in_buffer < BUFSIZE) { \ diff --git a/libjpeg-turbo-cmake.patch b/libjpeg-turbo-cmake.patch new file mode 100644 index 0000000..ef4c14d --- /dev/null +++ b/libjpeg-turbo-cmake.patch @@ -0,0 +1,33 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index adb0ca4..902c271 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1768,18 +1768,6 @@ endif() + + install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg +- ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_SOURCE_DIR}/example.c +- ${CMAKE_CURRENT_SOURCE_DIR}/tjexample.c +- ${CMAKE_CURRENT_SOURCE_DIR}/libjpeg.txt +- ${CMAKE_CURRENT_SOURCE_DIR}/structure.txt +- ${CMAKE_CURRENT_SOURCE_DIR}/usage.txt ${CMAKE_CURRENT_SOURCE_DIR}/wizard.txt +- ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR}) +-if(WITH_JAVA) +- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJExample.java +- DESTINATION ${CMAKE_INSTALL_DOCDIR}) +-endif() +- + if(UNIX OR MINGW) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cjpeg.1 + ${CMAKE_CURRENT_SOURCE_DIR}/djpeg.1 ${CMAKE_CURRENT_SOURCE_DIR}/jpegtran.1 +@@ -1803,7 +1791,7 @@ install(EXPORT ${CMAKE_PROJECT_NAME}Targets + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h + ${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h +- ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h ++ ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h ${CMAKE_CURRENT_SOURCE_DIR}/jpegint.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + include(cmakescripts/BuildPackages.cmake) +-- diff --git a/libjpeg-turbo-coverity.patch b/libjpeg-turbo-coverity.patch deleted file mode 100644 index 3d89a98..0000000 --- a/libjpeg-turbo-coverity.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/md5/md5hl.c b/md5/md5hl.c -index 983ea76..1b5ced2 100644 ---- a/md5/md5hl.c -+++ b/md5/md5hl.c -@@ -75,14 +75,18 @@ MD5FileChunk(const char *filename, char *buf, off_t ofs, off_t len) - #endif - if (f < 0) - return 0; -- if (fstat(f, &stbuf) < 0) -+ if (fstat(f, &stbuf) < 0) { -+ close(f); - return 0; -+ } - if (ofs > stbuf.st_size) - ofs = stbuf.st_size; - if ((len == 0) || (len > stbuf.st_size - ofs)) - len = stbuf.st_size - ofs; -- if (lseek(f, ofs, SEEK_SET) < 0) -+ if (lseek(f, ofs, SEEK_SET) < 0) { -+ close(f); - return 0; -+ } - n = len; - i = 0; - while (n > 0) { diff --git a/libjpeg-turbo-header-files.patch b/libjpeg-turbo-header-files.patch deleted file mode 100644 index e55058a..0000000 --- a/libjpeg-turbo-header-files.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index d767e4f..584d0c0 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,6 +1,6 @@ - lib_LTLIBRARIES = libjpeg.la - libjpeg_la_LDFLAGS = -version-info ${LIBTOOL_CURRENT}:${SO_MINOR_VERSION}:${SO_AGE} -no-undefined --include_HEADERS = jerror.h jmorecfg.h jpeglib.h -+include_HEADERS = jerror.h jmorecfg.h jpegint.h jconfig.h jpeglib.h - - if WITH_TURBOJPEG - lib_LTLIBRARIES += libturbojpeg.la diff --git a/libjpeg-turbo-honor-naflags.patch b/libjpeg-turbo-honor-naflags.patch deleted file mode 100644 index 23aac64..0000000 --- a/libjpeg-turbo-honor-naflags.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/acinclude.m4 b/acinclude.m4 -index 113169f..0417819 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -90,17 +90,17 @@ fi - - AC_MSG_CHECKING([for object file format specifier (NAFLAGS) ]) - case "$objfmt" in -- MSOMF) NAFLAGS='-fobj -DOBJ32';; -- Win32-COFF) NAFLAGS='-fwin32 -DWIN32';; -- Win64-COFF) NAFLAGS='-fwin64 -DWIN64 -D__x86_64__';; -- COFF) NAFLAGS='-fcoff -DCOFF';; -- a.out) NAFLAGS='-faout -DAOUT';; -- BSD-a.out) NAFLAGS='-faoutb -DAOUT';; -- ELF) NAFLAGS='-felf -DELF';; -- ELF64) NAFLAGS='-felf64 -DELF -D__x86_64__';; -- RDF) NAFLAGS='-frdf -DRDF';; -- Mach-O) NAFLAGS='-fmacho -DMACHO';; -- Mach-O64) NAFLAGS='-fmacho64 -DMACHO -D__x86_64__';; -+ MSOMF) NAFLAGS="$NAFLAGS -fobj -DOBJ32";; -+ Win32-COFF) NAFLAGS="$NAFLAGS -fwin32 -DWIN32";; -+ Win64-COFF) NAFLAGS="$NAFLAGS -fwin64 -DWIN64 -D__x86_64__";; -+ COFF) NAFLAGS="$NAFLAGS -fcoff -DCOFF";; -+ a.out) NAFLAGS="$NAFLAGS -faout -DAOUT";; -+ BSD-a.out) NAFLAGS="$NAFLAGS -faoutb -DAOUT";; -+ ELF) NAFLAGS="$NAFLAGS -felf -DELF";; -+ ELF64) NAFLAGS="$NAFLAGS -felf64 -DELF -D__x86_64__";; -+ RDF) NAFLAGS="$NAFLAGS -frdf -DRDF";; -+ Mach-O) NAFLAGS="$NAFLAGS -fmacho -DMACHO";; -+ Mach-O64) NAFLAGS="$NAFLAGS -fmacho64 -DMACHO -D__x86_64__";; - esac - AC_MSG_RESULT([$NAFLAGS]) - AC_SUBST([NAFLAGS]) diff --git a/libjpeg-turbo.spec b/libjpeg-turbo.spec index 0af7cae..00c1724 100644 --- a/libjpeg-turbo.spec +++ b/libjpeg-turbo.spec @@ -1,28 +1,16 @@ Name: libjpeg-turbo -Version: 1.5.3 -Release: 14%{?dist} +Version: 3.0.2 +Release: 4%{?dist} Summary: A MMX/SSE2/SIMD accelerated library for manipulating JPEG image files -License: IJG -URL: http://sourceforge.net/projects/libjpeg-turbo +License: Zlib AND BSD-3-Clause AND MIT AND IJG +URL: https://github.com/%{name}/%{name} -Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz -Patch0: libjpeg-turbo14-noinst.patch -Patch1: libjpeg-turbo-header-files.patch -Patch2: libjpeg-turbo-CVE-2018-11813.patch -Patch3: libjpeg-turbo-CVE-2018-1152.patch -Patch4: libjpeg-turbo-honor-naflags.patch -Patch5: libjpeg-turbo-coverity.patch -Patch6: libjpeg-turbo-CET.patch -Patch7: libjpeg-turbo-CVE-2018-14498.patch -Patch8: libjpeg-turbo-CVE-2020-17541.patch -# from upstream, for < 2.0.5, RHEL-87364 -# https://github.com/libjpeg-turbo/libjpeg-turbo/commit/3de15e0c344d11d4b90f4a47136467053eb2d09a -# https://github.com/libjpeg-turbo/libjpeg-turbo/commit/dd830b3ffe30a76fbe8c1f13ebc7483c9ff792e5 -Patch9: libjpeg-turbo-CVE-2020-13790pre.patch -Patch10: libjpeg-turbo-CVE-2020-13790.patch +Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.gz +Patch0: libjpeg-turbo-cmake.patch +Patch1: libjpeg-turbo-CET.patch -BuildRequires: autoconf -BuildRequires: automake +BuildRequires: gcc +BuildRequires: cmake BuildRequires: libtool BuildRequires: nasm @@ -80,36 +68,33 @@ This package contains header files necessary for developing programs which will manipulate JPEG files using the TurboJPEG library. %prep -%setup -q -%patch -P 0 -p1 -b .noinst -%patch -P 1 -p1 -b .header-files -%patch -P 2 -p1 -b .CVE-2018-11813 -%patch -P 3 -p1 -b .CVE-2018-1152 -%patch -P 4 -p1 -b .honor-naflags -%patch -P 5 -p1 -b .coverity -%patch -P 6 -p1 -b .CET -%patch -P 7 -p1 -b .CVE-2018-14498 -%patch -P 8 -p1 -b .CVE-2020-17541 -%patch -P 9 -p2 -b .CVE-2020-13790pre -%patch -P 10 -p2 -b .CVE-2020-13790 +%autosetup -p1 + +rm -rf doc %build -autoreconf -vif -export NAFLAGS="-g -Fdwarf" -export CCASFLAGS="-Wa,--generate-missing-build-notes=yes" # NASM object files are missing GNU Property note for Intel CET, # force it on the resulting library %ifarch %{ix86} x86_64 export LDFLAGS="$RPM_LD_FLAGS -Wl,-z,ibt -Wl,-z,shstk" %endif -%configure --disable-static -make %{?_smp_mflags} V=1 +%{cmake} -DCMAKE_SKIP_RPATH:BOOL=YES \ + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \ +%ifarch s390x riscv64 + -DFLOATTEST:STRING="fp-contract" \ +%endif + -DENABLE_STATIC:BOOL=NO + +%cmake_build %install -make install DESTDIR=%{buildroot} +%cmake_install find %{buildroot} -name "*.la" -delete +# Remove tjbench +rm -f %{buildroot}/%{_bindir}/tjbench + # Fix perms chmod -x README.md @@ -152,7 +137,8 @@ EOF fi %check -make test %{?_smp_mflags} +export LD_LIBRARY_PATH=%{buildroot}%{_libdir} +%ctest %ldconfig_scriptlets %ldconfig_scriptlets -n turbojpeg @@ -163,7 +149,7 @@ make test %{?_smp_mflags} %{_libdir}/libjpeg.so.62* %files devel -%doc coderules.txt jconfig.txt libjpeg.txt structure.txt example.c +%doc coderules.txt jconfig.txt libjpeg.txt structure.txt %{_includedir}/jconfig*.h %{_includedir}/jerror.h %{_includedir}/jmorecfg.h @@ -171,6 +157,7 @@ make test %{?_smp_mflags} %{_includedir}/jpeglib.h %{_libdir}/libjpeg.so %{_libdir}/pkgconfig/libjpeg.pc +%{_libdir}/cmake/%{name}/%{name}*.cmake %files utils %doc usage.txt wizard.txt @@ -187,46 +174,144 @@ make test %{?_smp_mflags} %files -n turbojpeg %license LICENSE.md +%doc README.md README.ijg ChangeLog.md %{_libdir}/libturbojpeg.so.0* %files -n turbojpeg-devel +%doc tjexample.c %{_includedir}/turbojpeg.h %{_libdir}/libturbojpeg.so %{_libdir}/pkgconfig/libturbojpeg.pc %changelog -* Tue May 06 2025 Michal Hlavinka - 1.5.3-14 -- updated previous fix (RHEL-87364) +* Tue Oct 29 2024 Troy Dawson - 3.0.2-4 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 -* Tue Apr 22 2025 Michal Hlavinka - 1.5.3-13 -- fix CVE-2020-13790: heap-based buffer over-read in get_rgb_row (RHEL-87364) +* Mon Jun 24 2024 Troy Dawson - 3.0.2-3 +- Bump release for June 2024 mass rebuild -* Thu Jul 15 2021 Nikola Forró - 1.5.3-12 -- Add missing license file (#1982572) +* Wed Mar 06 2024 David Abdurachmanov - 3.0.2-2 +- Set fp-contract for riscv64 -* Wed Jun 30 2021 Nikola Forró - 1.5.3-11 -- Fix CVE-2020-17541 (#1972289) +* Mon Feb 05 2024 Frantisek Zatloukal - 3.0.2-1 +- New upstream release 3.0.2 (Fixes RHBZ#2256228 and RHBZ#2166459 and RHBZ#2208448) -* Thu Jun 06 2019 Nikola Forró - 1.5.3-10 -- Fix CVE-2018-14498 (#1687477) +* Mon Jan 29 2024 Matej Mužila - 2.1.4-6 +- migrated to SPDX license -* Tue Jun 04 2019 Nikola Forró - 1.5.3-9 -- Fix LDFLAGS (#1688397) +* Thu Jan 25 2024 Fedora Release Engineering - 2.1.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Thu Mar 21 2019 Nikola Forró - 1.5.3-8 -- Support running with Intel CET (#1688397) +* Sun Jan 21 2024 Fedora Release Engineering - 2.1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Mon Oct 15 2018 Nikola Forró - 1.5.3-7 -- Fix important Covscan defects (#1606984) +* Thu Jul 20 2023 Fedora Release Engineering - 2.1.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild -* Mon Oct 01 2018 Nikola Forró - 1.5.3-6 -- Compile NASM sources with debug info, annotate GAS object files (#1630583) +* Thu Jan 19 2023 Fedora Release Engineering - 2.1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild -* Fri Jun 29 2018 Nikola Forró - 1.5.3-5 -- Fix CVE-2018-1152 (#1593557) +* Mon Aug 15 2022 Nikola Forró - 2.1.4-1 +- New upstream release 2.1.4 (#2118023) -* Fri Jun 15 2018 Nikola Forró - 1.5.3-4 -- Fix CVE-2018-11813 (#1588807) +* Thu Jul 21 2022 Fedora Release Engineering - 2.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Feb 27 2022 Nikola Forró - 2.1.3-1 +- New upstream release 2.1.3 (#2058898) + +* Thu Jan 20 2022 Fedora Release Engineering - 2.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Nov 22 2021 Matej Mužila - 2.1.2-1 +- New upstream release 2.1.2 (#2025141) + +* Wed Aug 11 2021 Nikola Forró - 2.1.1-1 +- New upstream release 2.1.1 (#1991844) + +* Thu Jul 22 2021 Fedora Release Engineering - 2.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Apr 26 2021 Nikola Forró - 2.1.0-1 +- New upstream release 2.1.0 (#1953074) + +* Thu Mar 25 2021 Nikola Forró - 2.0.90-2 +- Fix CVE-2021-20205 (#1937387) + +* Thu Jan 28 2021 Nikola Forró - 2.0.90-1 +- New upstream release 2.0.90 (#1898427) + +* Tue Jan 26 2021 Fedora Release Engineering - 2.0.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Aug 04 2020 Nikola Forró - 2.0.5-5 +- Fix FTBFS (#1864007) + +* Sat Aug 01 2020 Fedora Release Engineering - 2.0.5-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 2.0.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 2.0.5-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Fri Jul 03 2020 Nikola Forró - 2.0.5-1 +- New upstream release 2.0.5 (#1850293) + +* Tue Jun 16 2020 Nikola Forró - 2.0.4-3 +- Fix CVE-2020-13790 (#1847159) + +* Wed Jan 29 2020 Fedora Release Engineering - 2.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 08 2020 Nikola Forró - 2.0.4-1 +- New upstream release 2.0.4 (#1787793) + +* Thu Sep 05 2019 Nikola Forró - 2.0.3-1 +- New upstream release 2.0.3 (#1749130) + +* Thu Jul 25 2019 Fedora Release Engineering - 2.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jun 04 2019 Nikola Forró - 2.0.2-3 +- Fix LDFLAGS + +* Mon Apr 29 2019 Nikola Forró - 2.0.2-2 +- Support running with Intel CET + +* Wed Feb 27 2019 Nikola Forró - 2.0.2-1 +- New upstream release 2.0.2 + +* Fri Feb 01 2019 Fedora Release Engineering - 2.0.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jan 11 2019 Nikola Forró - 2.0.0-3 +- Fix CVE-2018-19664 (#1656219) + +* Fri Jan 11 2019 Nikola Forró - 2.0.0-2 +- Fix CVE-2018-20330 (#1665224) + +* Mon Jul 30 2018 Nikola Forró - 2.0.0-1 +- New upstream release 2.0.0 (#1609439) + +* Fri Jul 13 2018 Fedora Release Engineering - 1.5.90-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Nikola Forró - 1.5.90-3 +- Fix CVE-2018-1152 (#1593555) + +* Fri Jun 15 2018 Nikola Forró - 1.5.90-2 +- Fix CVE-2018-11813 (#1588804) + +* Wed Mar 28 2018 Nikola Forró - 1.5.90-1 +- New upstream release 1.5.90 (#1560219) + +* Tue Feb 20 2018 Nikola Forró - 1.5.3-4 +- Add missing gcc build dependency * Wed Feb 07 2018 Fedora Release Engineering - 1.5.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild diff --git a/libjpeg-turbo14-noinst.patch b/libjpeg-turbo14-noinst.patch deleted file mode 100644 index 3499142..0000000 --- a/libjpeg-turbo14-noinst.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index 80f0059..eea9a32 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -92,9 +92,7 @@ noinst_PROGRAMS = jcstest - - if WITH_TURBOJPEG - --bin_PROGRAMS += tjbench -- --noinst_PROGRAMS += tjunittest -+noinst_PROGRAMS += tjbench tjunittest - - tjbench_SOURCES = tjbench.c bmp.h bmp.c tjutil.h tjutil.c rdbmp.c rdppm.c \ - wrbmp.c wrppm.c -@@ -160,13 +158,6 @@ dist_man1_MANS = cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1 - DOCS= coderules.txt jconfig.txt change.log rdrle.c wrrle.c BUILDING.md \ - ChangeLog.md - --dist_doc_DATA = README.ijg README.md libjpeg.txt structure.txt usage.txt \ -- wizard.txt LICENSE.md -- --exampledir = $(docdir) --dist_example_DATA = example.c -- -- - EXTRA_DIST = win release $(DOCS) testimages CMakeLists.txt \ - sharedlib/CMakeLists.txt cmakescripts libjpeg.map.in doc doxygen.config \ - doxygen-extra.css jccolext.c jdcolext.c jdcol565.c jdmrgext.c jdmrg565.c \ diff --git a/sources b/sources index 9f2b814..2573f54 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libjpeg-turbo-1.5.3.tar.gz) = b611b1cc3d1ddedddad871854b42449d053a5f910ed1bdfa45c98e0270f4ecc110fde3a10111d2b876d847a826fa634f09c0bb8c357056c9c3a91c9065eb5202 +SHA512 (libjpeg-turbo-3.0.2.tar.gz) = f5eadda0712feb810a8c3bb2621fda24a4c30574998ce30f423b3ffa25225c7a87cb14b696232bc0270485f422a2853a5c32eafb65bc5eeab1b41d8aeb32ad29