diff --git a/security/masscan/Makefile b/security/masscan/Makefile index 85aaa246e53d..8eb1c1fcf037 100644 --- a/security/masscan/Makefile +++ b/security/masscan/Makefile @@ -1,33 +1,27 @@ # Created by: Chie Taguchi PORTNAME= masscan DISTVERSION= 1.3.2 CATEGORIES= security MAINTAINER= taguchi.ch@gmail.com COMMENT= Very fast port scanner LICENSE= GPLv3 USES= gmake USE_GITHUB= yes GH_ACCOUNT= robertdavidgraham MAKE_ARGS= SYS=freebsd CC="${CC}" CFLAGS="${CFLAGS}" CFLAGS+= -Wno-format PLIST_FILES= bin/masscan man/man8/masscan.8.gz -.include - -.if ${ARCH} == powerpc64 || ${ARCH} == powerpc -USE_GCC= yes -.endif - do-install: ${INSTALL_PROGRAM} ${WRKSRC}/bin/masscan ${STAGEDIR}${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/doc/masscan.8 ${STAGEDIR}${MANPREFIX}/man/man8 do-test: ${WRKSRC}/bin/masscan --selftest .include diff --git a/security/masscan/files/patch-src_smack1.c b/security/masscan/files/patch-src_smack1.c index 8a5448fd62dc..909d256435cf 100644 --- a/security/masscan/files/patch-src_smack1.c +++ b/security/masscan/files/patch-src_smack1.c @@ -1,23 +1,46 @@ --- src/smack1.c.orig 2021-01-31 09:13:30 UTC +++ src/smack1.c -@@ -119,8 +119,7 @@ +@@ -119,9 +119,8 @@ #elif defined(__FreeBSD__) #include #include -#define __rdtsc rdtsc -#if (__ARM_ARCH >= 6) // V6 is the earliest arch that has a standard cyclecount +#if (__ARM_ARCH >= 6 && __ARM_ARCH <= 7) // V6 is the earliest arch that has a standard cyclecount unsigned long long rdtsc(void) { uint32_t pmccntr; -@@ -138,6 +137,10 @@ unsigned long long rdtsc(void) + uint32_t pmuseren; +@@ -138,6 +137,32 @@ unsigned long long rdtsc(void) } return 0; } +#elif defined(__aarch64__) +#define __rdtsc() 0 ++#elif defined(__powerpc64__) ++unsigned long long __rdtsc(void) ++{ ++ unsigned long long rval; ++ __asm__ __volatile__("mfspr %%r3, 268": "=r" (rval)); ++ return rval; ++} ++#elif defined(__powerpc__) ++unsigned long long __rdtsc(void) ++{ ++ unsigned int tmp; ++ union { unsigned long long complete; unsigned int part[2]; } ticks; ++ __asm__ ("0:" ++ "mftbu %[hi32]\n" ++ "mftb %[lo32]\n" ++ "mftbu %[tmp]\n" ++ "cmpw %[tmp],%[hi32]\n" ++ "bne 0b\n" ++ : [hi32] "=r"(ticks.part[0]), [lo32] "=r"(ticks.part[1]), ++ [tmp] "=r"(tmp)); ++ return ticks.complete; ++} +#else +#define __rdtsc rdtsc #endif #elif defined (__llvm__) #if defined(i386) || defined(__i386__)