Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
7adc8e7842
!12 [sync] PR-9: 添加sw架构
From: @openeuler-sync-bot 
Reviewed-by: @wang--ge 
Signed-off-by: @wang--ge
2024-03-30 13:21:35 +00:00
wzx
95f5b682a6 Add sw64 architecture
Signed-off-by: wzx <wuzx1226@qq.com>
(cherry picked from commit ce2063d1d9a6c7ecdf378d9de75d95568143a5e8)
2024-03-30 17:07:03 +08:00
openeuler-ci-bot
bf4308801f !8 修复因缺少依赖导致编译失败问题
From: @wu-leilei
Reviewed-by: @small_leek
Signed-off-by: @small_leek
2021-06-03 15:31:13 +08:00
wu-leilei
454e458fb0 fixes failed: no acceptable C compiler found in PATH 2021-06-03 09:35:12 +08:00
openeuler-ci-bot
8bd744c747 !4 Fix fuzz undefined behavior runtime error of package lame
From: @wang--ge
Reviewed-by: @small_leek
Signed-off-by: @small_leek
2020-12-07 11:55:42 +08:00
wang--ge
fc2985a73d fix fuzz undefined behavior error 2020-12-07 10:51:27 +08:00
openeuler-ci-bot
511554fd2e !2 Add lame.yaml
Merge pull request !2 from yaokai13/master
2020-05-11 20:20:51 +08:00
yaokai13
97b56c7346 Add lame.yaml 2020-05-09 09:37:04 +08:00
openeuler-ci-bot
28a68c23a2 !1 Package Init
Merge pull request !1 from 窃格瓦拉/master
2020-02-18 11:36:54 +08:00
qiegewala
253409081a Package Init 2020-02-18 11:31:27 +08:00
7 changed files with 326 additions and 0 deletions

View File

@ -0,0 +1,77 @@
Date: Sat, 5 Dec 2020 06:33:28 +0000
Subject: [PATCH] fix fuzz undefined behavior error
---
libmp3lame/VbrTag.c | 2 +-
libmp3lame/bitstream.c | 6 +++---
libmp3lame/id3tag.c | 3 ++-
libmp3lame/quantize.c | 2 +-
4 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/libmp3lame/VbrTag.c b/libmp3lame/VbrTag.c
index 5800a44..880010a 100644
--- a/libmp3lame/VbrTag.c
+++ b/libmp3lame/VbrTag.c
@@ -251,7 +251,7 @@ IsVbrTag(const unsigned char *buf)
return (isTag0 || isTag1);
}
-#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
+#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(0xffffffffu << (n)) ) )
static void
setLameTagFrameHeader(lame_internal_flags const *gfc, unsigned char *buffer)
diff --git a/libmp3lame/bitstream.c b/libmp3lame/bitstream.c
index aa35915..25ee88a 100644
--- a/libmp3lame/bitstream.c
+++ b/libmp3lame/bitstream.c
@@ -178,7 +178,7 @@ putbits2(lame_internal_flags * gfc, int val, int j)
assert(j < MAX_LENGTH); /* 32 too large on 32 bit machines */
assert(bs->buf_bit_idx < MAX_LENGTH);
- bs->buf[bs->buf_byte_idx] |= ((val >> j) << bs->buf_bit_idx);
+ bs->buf[bs->buf_byte_idx] |= (((unsigned int)val >> j) << bs->buf_bit_idx);
bs->totbit += k;
}
}
@@ -290,8 +290,8 @@ CRC_update(int value, int crc)
int i;
value <<= 8;
for (i = 0; i < 8; i++) {
- value <<= 1;
- crc <<= 1;
+ value = (unsigned int)value * 2;
+ crc = (unsigned int)crc * 2;
if (((crc ^ value) & 0x10000))
crc ^= CRC16_POLYNOMIAL;
diff --git a/libmp3lame/id3tag.c b/libmp3lame/id3tag.c
index ac48510..f2888c3 100644
--- a/libmp3lame/id3tag.c
+++ b/libmp3lame/id3tag.c
@@ -157,7 +157,8 @@ typedef enum MiscIDs { ID_TXXX = FRAME_ID('T', 'X', 'X', 'X')
static int
frame_id_matches(int id, int mask)
{
- int result = 0, i, window = 0xff;
+ int result = 0, i;
+ unsigned int window = 0xff;
for (i = 0; i < 4; ++i, window <<= 8) {
int const mw = (mask & window);
int const iw = (id & window);
diff --git a/libmp3lame/quantize.c b/libmp3lame/quantize.c
index 9ba9c16..1417763 100644
--- a/libmp3lame/quantize.c
+++ b/libmp3lame/quantize.c
@@ -895,7 +895,7 @@ inc_subblock_gain(const lame_internal_flags * const gfc, gr_info * const cod_inf
scalefac[sfb] = 0;
{
- int const gain = 210 + (s << (cod_info->scalefac_scale + 1));
+ int const gain = 210 + (int)((unsigned int)s << (cod_info->scalefac_scale + 1));
amp = IPOW20(gain);
}
j += width * (window + 1);
--
2.23.0

54
lame-3.100-sw.patch Executable file
View File

@ -0,0 +1,54 @@
diff -Nuar lame-3.100.org/configure lame-3.100.sw/configure
--- lame-3.100.org/configure 2022-05-26 15:39:59.220000000 +0000
+++ lame-3.100.sw/configure 2022-05-26 15:46:24.500000000 +0000
@@ -17507,7 +17507,7 @@
*86)
OPTIMIZATION="${OPTIMIZATION} -mfancy-math-387"
;;
- alpha*)
+ alpha* | sw_64*)
OPTIMIZATION="${OPTIMIZATION} -mfp-regs"
$as_echo "#define FLOAT double" >>confdefs.h
@@ -17670,7 +17670,7 @@
# LINUX on Digital/Compaq Alpha CPUs
##########################################################################
case $host in
-alpha*-*-linux*)
+alpha*-*-linux* | sw_64*-*-linux*)
################################################################
#### Check if 'ccc' is in our path
diff -Nuar lame-3.100.org/libmp3lame/lame.c lame-3.100.sw/libmp3lame/lame.c
--- lame-3.100.org/libmp3lame/lame.c 2022-05-26 15:39:59.240000000 +0000
+++ lame-3.100.sw/libmp3lame/lame.c 2022-05-26 15:44:51.440000000 +0000
@@ -48,7 +48,7 @@
#include "tables.h"
-#if defined(__FreeBSD__) && !defined(__alpha__)
+#if defined(__FreeBSD__) && !defined(__alpha__) && !defined(__sw_64__)
#include <floatingpoint.h>
#endif
#ifdef __riscos__
diff -Nuar lame-3.100.org/libmp3lame/util.c lame-3.100.sw/libmp3lame/util.c
--- lame-3.100.org/libmp3lame/util.c 2022-05-26 15:39:59.240000000 +0000
+++ lame-3.100.sw/libmp3lame/util.c 2022-05-26 15:43:59.070000000 +0000
@@ -34,7 +34,7 @@
#include "tables.h"
#define PRECOMPUTE
-#if defined(__FreeBSD__) && !defined(__alpha__)
+#if defined(__FreeBSD__) && !defined(__alpha__) && !defined(__sw_64__)
# include <machine/floatingpoint.h>
#endif
@@ -845,7 +845,7 @@
-#if defined(__FreeBSD__) && !defined(__alpha__)
+#if defined(__FreeBSD__) && !defined(__alpha__) && !defined(__sw_64__)
{
/* seet floating point mask to the Linux default */
fp_except_t mask;

BIN
lame-3.100.tar.gz Normal file

Binary file not shown.

77
lame-noexecstack.patch Normal file
View File

@ -0,0 +1,77 @@
diff -up lame-398-2/libmp3lame/i386/choose_table.nas.noexec lame-398-2/libmp3lame/i386/choose_table.nas
--- lame-398-2/libmp3lame/i386/choose_table.nas.noexec 2008-08-31 14:28:37.000000000 +0200
+++ lame-398-2/libmp3lame/i386/choose_table.nas 2008-10-20 22:34:23.000000000 +0200
@@ -445,3 +445,7 @@ from2:
ret
end
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff -up lame-398-2/libmp3lame/i386/cpu_feat.nas.noexec lame-398-2/libmp3lame/i386/cpu_feat.nas
--- lame-398-2/libmp3lame/i386/cpu_feat.nas.noexec 2003-11-10 16:41:00.000000000 +0100
+++ lame-398-2/libmp3lame/i386/cpu_feat.nas 2008-10-20 22:34:23.000000000 +0200
@@ -105,3 +105,7 @@ return0:
ret
end
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff -up lame-398-2/libmp3lame/i386/fft3dn.nas.noexec lame-398-2/libmp3lame/i386/fft3dn.nas
--- lame-398-2/libmp3lame/i386/fft3dn.nas.noexec 2008-08-31 14:28:37.000000000 +0200
+++ lame-398-2/libmp3lame/i386/fft3dn.nas 2008-10-20 22:34:23.000000000 +0200
@@ -486,3 +486,7 @@ proc fht_E3DN
add esp,20
popd ebp, ebx, esi, edi
endproc
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff -up lame-398-2/libmp3lame/i386/fftfpu.nas.noexec lame-398-2/libmp3lame/i386/fftfpu.nas
--- lame-398-2/libmp3lame/i386/fftfpu.nas.noexec 2000-10-04 14:13:26.000000000 +0200
+++ lame-398-2/libmp3lame/i386/fftfpu.nas 2008-10-20 22:34:23.000000000 +0200
@@ -617,3 +617,7 @@ fht_FPU_FXCH_3rd_part:
endproc
end
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff -up lame-398-2/libmp3lame/i386/fft.nas.noexec lame-398-2/libmp3lame/i386/fft.nas
--- lame-398-2/libmp3lame/i386/fft.nas.noexec 2000-10-04 14:13:26.000000000 +0200
+++ lame-398-2/libmp3lame/i386/fft.nas 2008-10-20 22:34:23.000000000 +0200
@@ -265,3 +265,7 @@ fht_3DN:
pop esi
pop ebx
ret
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff -up lame-398-2/libmp3lame/i386/fftsse.nas.noexec lame-398-2/libmp3lame/i386/fftsse.nas
--- lame-398-2/libmp3lame/i386/fftsse.nas.noexec 2008-08-31 14:28:37.000000000 +0200
+++ lame-398-2/libmp3lame/i386/fftsse.nas 2008-10-20 22:34:23.000000000 +0200
@@ -420,3 +420,7 @@ fht_SSE:
ret
end
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff -up lame-398-2/libmp3lame/i386/ffttbl.nas.noexec lame-398-2/libmp3lame/i386/ffttbl.nas
--- lame-398-2/libmp3lame/i386/ffttbl.nas.noexec 2000-10-04 14:13:26.000000000 +0200
+++ lame-398-2/libmp3lame/i386/ffttbl.nas 2008-10-20 22:34:23.000000000 +0200
@@ -76,3 +76,7 @@ gray_index:
segment_code
end
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif

98
lame.spec Normal file
View File

@ -0,0 +1,98 @@
Name: lame
Version: 3.100
Release: 10
Summary: Free MP3 audio compressor
License: GPL-2.0+ and GPL-2.0 and LGPL-2.0
URL: http://lame.sourceforge.net/
Source0: http://downloads.sourceforge.net/sourceforge/lame/%{name}-%{version}.tar.gz
Patch0001: lame-noexecstack.patch
Patch0002: libmp3lame-symbols.patch
Patch0003: 0001-fix-fuzz-undefined-behavior-error.patch
Patch0004: lame-3.100-sw.patch
BuildRequires: ncurses-devel gtk+-devel gcc
Provides: %{name}-libs = %{version}-%{release}
Obsoletes: %{name}-libs < %{version}-%{release}
%description
LAME is a high quality MPEG Audio Layer III (MP3) encoder.
%package devel
Summary: Development files for lame
Requires: %{name} = %{version}-%{release}
%description devel
The lame-devel package contains development files for lame.
%package help
Summary: man info for lame
%description help
The lame-help Package contains man info for lame.
%package mp3x
Summary: MP3 frame analyzer
Requires: %{name} = %{version}-%{release}
%description mp3x
The lame-mp3x package contains the mp3x frame analyzer.
%prep
%autosetup -p1
%build
sed -i -e 's/^\(\s*hardcode_libdir_flag_spec\s*=\).*/\1/' configure
%configure \
--disable-dependency-tracking --disable-static --enable-mp3x --enable-mp3rtp
%make_build
%install
%make_install
%delete_la
ln -sf lame/lame.h %{buildroot}%{_includedir}/lame.h
%check
make test
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%exclude %{_docdir}/%{name}
%doc README TODO USAGE doc/html/*.html ChangeLog COPYING LICENSE
%{_bindir}/{lame,mp3rtp}
%{_libdir}/libmp3lame.so.0*
%files devel
%exclude %{_docdir}/%{name}
%doc API HACKING STYLEGUIDE
%{_libdir}/libmp3lame.so
%{_includedir}/{lame,lame.h}
%files help
%{_mandir}/man1/lame.1*
%files mp3x
%{_bindir}/mp3x
%changelog
* Fri Oct 21 2022 wuzx<wuzx1226@qq.com> - 3.100-10
- add sw64 patch
* Thu Jun 03 2021 wulei <wulei80@huawei.com> - 3.100-9
- fixes failed: no acceptable C compiler found in $PATH
* Sat Dec 05 2020 Ge Wang<wangge20@huawei.com> - 3.100-8
- fix fuzz undefined bebavior error
* Thu Dec 12 2019 zoushuangshuang<zoushuangshuang@huawei.com> - 3.100-7
- Package init

4
lame.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: svn
src_repo: https://svn.code.sf.net/p/lame/svn/trunk/lame
tag_prefix: RELEASE_
seperator: _

16
libmp3lame-symbols.patch Normal file
View File

@ -0,0 +1,16 @@
--- lame-3.100/include/libmp3lame.sym 2017-09-06 14:33:35.000000000 -0500
+++ lame-3.100/include/libmp3lame.sym 2017-10-22 16:18:44.708436200 -0500
@@ -1,5 +1,4 @@
lame_init
-lame_init_old
lame_set_num_samples
lame_get_num_samples
lame_set_in_samplerate
@@ -188,6 +187,7 @@ hip_decode_exit
hip_set_errorf
hip_set_debugf
hip_set_msgf
+hip_set_pinfo
hip_decode
hip_decode_headers
hip_decode1