git: 064036198c23 - main - devel/sse2neon: SSE to NEON compatibility shim
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 21 Oct 2024 09:37:09 UTC
The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=064036198c23d84372f51266cba47fc8d0a8b897 commit 064036198c23d84372f51266cba47fc8d0a8b897 Author: Robert Clausecker <fuz@FreeBSD.org> AuthorDate: 2024-10-15 14:21:16 +0000 Commit: Robert Clausecker <fuz@FreeBSD.org> CommitDate: 2024-10-21 09:36:00 +0000 devel/sse2neon: SSE to NEON compatibility shim sse2neon is a translator of Intel SSE (Streaming SIMD Extensions) intrinsics to Arm NEON, shortening the time needed to get an Arm working program that then can be used to extract profiles and to identify hot paths in the code. The header file sse2neon.h contains several of the functions provided by Intel intrinsic headers such as <xmmintrin.h>, only implemented with NEON-based counterparts to produce the exact semantics of the intrinsics. WWW: https://github.com/DLTcollab/sse2neon --- devel/Makefile | 1 + devel/sse2neon/Makefile | 30 ++++++++++++++++++++++++++++++ devel/sse2neon/distinfo | 3 +++ devel/sse2neon/files/patch-Makefile | 13 +++++++++++++ devel/sse2neon/files/patch-sse2neon.h | 11 +++++++++++ devel/sse2neon/pkg-descr | 7 +++++++ 6 files changed, 65 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index 8a13bd400ae0..8608317a2d25 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -8100,6 +8100,7 @@ SUBDIR += spread-sheet-widget SUBDIR += spyder SUBDIR += srecord + SUBDIR += sse2neon SUBDIR += st SUBDIR += stack SUBDIR += staf diff --git a/devel/sse2neon/Makefile b/devel/sse2neon/Makefile new file mode 100644 index 000000000000..25b87b2668a5 --- /dev/null +++ b/devel/sse2neon/Makefile @@ -0,0 +1,30 @@ +PORTNAME= sse2neon +DISTVERSIONPREFIX= v +DISTVERSION= 1.7.0 +CATEGORIES= devel + +MAINTAINER= fuz@FreeBSD.org +COMMENT= SSE to NEON compatibility shim +WWW= https://github.com/DLTcollab/sse2neon + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= aarch64 amd64 armv7 i386 +ONLY_FOR_ARCHS_REASON= requires x86 SSE or ARM NEON to work + +BROKEN_i386= wants to use amd64-only SSE intrinsics + +TEST_TARGET= check +NO_ARCH= yes +NO_BUILD= yes +PLIST_FILES= include/sse2neon.h + +USES= gmake +USE_GITHUB= yes +GH_ACCOUNT= DLTcollab + +do-install: + ${INSTALL_DATA} ${WRKSRC}/sse2neon.h ${STAGEDIR}${PREFIX}/include/ + +.include <bsd.port.mk> diff --git a/devel/sse2neon/distinfo b/devel/sse2neon/distinfo new file mode 100644 index 000000000000..56f52515c359 --- /dev/null +++ b/devel/sse2neon/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1729001713 +SHA256 (DLTcollab-sse2neon-v1.7.0_GH0.tar.gz) = cee6d54922dbc9d4fa57749e3e4b46161b7f435a22e592db9da008051806812a +SIZE (DLTcollab-sse2neon-v1.7.0_GH0.tar.gz) = 134103 diff --git a/devel/sse2neon/files/patch-Makefile b/devel/sse2neon/files/patch-Makefile new file mode 100644 index 000000000000..4530299b8fc5 --- /dev/null +++ b/devel/sse2neon/files/patch-Makefile @@ -0,0 +1,13 @@ +--- Makefile.orig 2024-10-15 14:24:20 UTC ++++ Makefile +@@ -40,8 +40,8 @@ ifdef ARCH_CFLAGS_IS_SET + ifdef ARCH_CFLAGS_IS_SET + ifeq ($(processor),$(filter $(processor),aarch64 arm64)) + override ARCH_CFLAGS := -march=armv8-a+fp+simd +- else ifeq ($(processor),$(filter $(processor),i386 x86_64)) +- override ARCH_CFLAGS := -maes -mpclmul -mssse3 -msse4.2 ++ else ifeq ($(processor),$(filter $(processor),amd64 i386 x86_64)) ++ override ARCH_CFLAGS := -maes -mpclmul -msse -msse2 -msse3 -mssse3 -msse4.2 + else ifeq ($(processor),$(filter $(processor),arm armv7 armv7l)) + override ARCH_CFLAGS := -mfpu=neon + else diff --git a/devel/sse2neon/files/patch-sse2neon.h b/devel/sse2neon/files/patch-sse2neon.h new file mode 100644 index 000000000000..ee025ebb7c55 --- /dev/null +++ b/devel/sse2neon/files/patch-sse2neon.h @@ -0,0 +1,11 @@ +--- sse2neon.h.orig 2024-10-15 17:08:16 UTC ++++ sse2neon.h +@@ -104,7 +104,7 @@ + #pragma message("Macro name collisions may happen with unsupported compilers.") + #endif + +-#if defined(__GNUC__) && __GNUC__ < 10 ++#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 10 + #warning "GCC versions earlier than 10 are not supported." + #endif + diff --git a/devel/sse2neon/pkg-descr b/devel/sse2neon/pkg-descr new file mode 100644 index 000000000000..3330a74b0951 --- /dev/null +++ b/devel/sse2neon/pkg-descr @@ -0,0 +1,7 @@ +sse2neon is a translator of Intel SSE (Streaming SIMD Extensions) +intrinsics to Arm NEON, shortening the time needed to get an Arm working +program that then can be used to extract profiles and to identify hot +paths in the code. The header file sse2neon.h contains several of the +functions provided by Intel intrinsic headers such as <xmmintrin.h>, +only implemented with NEON-based counterparts to produce the exact +semantics of the intrinsics.