Skip to content

Commit

Permalink
Merge remote-tracking branch 'mpg123/master' into master-with-github-ci
Browse files Browse the repository at this point in the history
  • Loading branch information
mpg123 GitHub bot committed Sep 20, 2024
2 parents b66125f + fe2b949 commit 6249ee1
Show file tree
Hide file tree
Showing 14 changed files with 70 additions and 1 deletion.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ The creator: Michael Hipp (email: [email protected] - please bot

Contributions/ideas Thomas Orgis era (includes backports from mhipp trunk):

Bill Roberts <[email protected]>: PAC/BTI for aarch64
Dave Yeo <[email protected]>: continued OS/2 fixing
madebr and manx: github mirror and CI
Vitaly Kirsanov <[email protected]>: ports/cmake (optional CMake build)
Expand Down
6 changes: 6 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
1.32.8
------
- libmpg123: Add sections to assembly to support PAC/BTI code
for aarch64 (-mbranch-protection variants), thanks to Bill Roberts
(github PR 15).

1.32.7
------
- ports/cmake: Work around bug in CMake that does not detect FPU on
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/Makemodule.am
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ src_libmpg123_libmpg123_la_SOURCES = \
src/libmpg123/gapless.h \
src/libmpg123/mpg123lib_intern.h \
src/libmpg123/mangle.h \
src/libmpg123/aarch64_defs.h \
src/libmpg123/getcpuflags.h \
src/libmpg123/index.h \
src/libmpg123/index.c
Expand Down
52 changes: 52 additions & 0 deletions src/libmpg123/aarch64_defs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/* SPDX-License-Identifier: LGPL-2.1
*
* aarch64_defs.h: Support macros for the aarch64 architectural features
*/

#ifndef SRC_LIBMPG123_AARCH64_DEFS_H_
#define SRC_LIBMPG123_AARCH64_DEFS_H_

/*
* Guard this header so arm assembly files can just include it without the need
* to if-def each instance.
*/
#ifdef __aarch64__

/*
* References:
* - https://developer.arm.com/documentation/101028/0012/5--Feature-test-macros
* - https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst
*/

#if defined(__ARM_FEATURE_BTI_DEFAULT) && __ARM_FEATURE_BTI_DEFAULT == 1
#define GNU_PROPERTY_AARCH64_BTI 1 /* bit 0 GNU Notes is for BTI support */
#else
#define GNU_PROPERTY_AARCH64_BTI 0
#endif

#if defined(__ARM_FEATURE_PAC_DEFAULT)
#define GNU_PROPERTY_AARCH64_POINTER_AUTH 2 /* bit 1 GNU Notes is for PAC support */
#else
#define GNU_PROPERTY_AARCH64_POINTER_AUTH 0
#endif

/* Add the BTI support to GNU Notes section */
#if defined(__ASSEMBLER__) && defined(__ELF__)
#if GNU_PROPERTY_AARCH64_BTI != 0 || GNU_PROPERTY_AARCH64_POINTER_AUTH != 0
.pushsection .note.gnu.property, "a"; /* Start a new allocatable section */
.balign 8; /* align it on a byte boundry */
.long 4; /* size of "GNU\0" */
.long 0x10; /* size of descriptor */
.long 0x5; /* NT_GNU_PROPERTY_TYPE_0 */
.asciz "GNU";
.long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */
.long 4; /* Four bytes of data */
.long (GNU_PROPERTY_AARCH64_BTI|GNU_PROPERTY_AARCH64_POINTER_AUTH); /* BTI or PAC is enabled */
.long 0; /* padding for 8 byte alignment */
.popsection; /* end the section */
#endif /* GNU Notes additions */
#endif /* if __ASSEMBLER__ and __ELF__ */

#endif /* __arch64__ */

#endif /* SRC_LIBMPG123_AARCH64_DEFS_H_ */
1 change: 1 addition & 0 deletions src/libmpg123/check_neon.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Momma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __aarch64__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/dct36_neon64.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/dct64_neon64_float.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/synth_neon64_accurate.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/synth_neon64_float.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/synth_neon64_s32.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/synth_stereo_neon64_accurate.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/synth_stereo_neon64_float.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
1 change: 1 addition & 0 deletions src/libmpg123/synth_stereo_neon64_s32.S
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
initially written by Taihei Monma
*/

#include "aarch64_defs.h"
#include "mangle.h"

#ifndef __APPLE__
Expand Down
2 changes: 1 addition & 1 deletion src/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
// only single spaces as separator to ease parsing by build scripts
#define MPG123_MAJOR 1
#define MPG123_MINOR 32
#define MPG123_PATCH 7
#define MPG123_PATCH 8
// Don't get too wild with that to avoid confusing m4. No brackets.
// Also, it should fit well into a sane file name for the tarball.
#define MPG123_SUFFIX "-dev"
Expand Down

0 comments on commit 6249ee1

Please sign in to comment.