mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
support building on NetBSD
This commit is contained in:
parent
71f3e7d994
commit
12f61d15ed
11
README.md
11
README.md
@ -113,6 +113,17 @@ Assuming an existing HomeBrew installation:
|
|||||||
% brew install boost cmake gcc libpcap pkg-config ragel sqlite
|
% brew install boost cmake gcc libpcap pkg-config ragel sqlite
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### NetBSD
|
||||||
|
In NetBSD you will almost certainly need to have a newer compiler installed.
|
||||||
|
Using the example of gcc12 from pkgsrc, one will need to set three
|
||||||
|
environment variables before starting:
|
||||||
|
export CC="/usr/pkg/gcc12/bin/cc"
|
||||||
|
export CXX="/usr/pkg/gcc12/bin/g++"
|
||||||
|
export CXXFLAGS="-gdwarf-4"
|
||||||
|
|
||||||
|
Then continue with the build as below.
|
||||||
|
|
||||||
|
|
||||||
## Configure & build
|
## Configure & build
|
||||||
|
|
||||||
In order to configure with `cmake` first create and cd into a build directory:
|
In order to configure with `cmake` first create and cd into a build directory:
|
||||||
|
@ -6,7 +6,11 @@ if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
|||||||
set(FREEBSD true)
|
set(FREEBSD true)
|
||||||
endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||||
|
|
||||||
if (ARCH_IA32 OR ARCH_X86_64)
|
if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
||||||
|
set(NETBSD true)
|
||||||
|
endif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
||||||
|
|
||||||
|
if (LINUX AND (ARCH_IA32 OR ARCH_X86_64))
|
||||||
option(FAT_RUNTIME "Build a library that supports multiple microarchitectures" ON)
|
option(FAT_RUNTIME "Build a library that supports multiple microarchitectures" ON)
|
||||||
else()
|
else()
|
||||||
option(FAT_RUNTIME "Build a library that supports multiple microarchitectures" OFF)
|
option(FAT_RUNTIME "Build a library that supports multiple microarchitectures" OFF)
|
||||||
|
@ -134,7 +134,12 @@
|
|||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
#include <netinet/udp.h>
|
#include <netinet/udp.h>
|
||||||
#include <netinet/ip_icmp.h>
|
#include <netinet/ip_icmp.h>
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <net/ethertypes.h>
|
||||||
|
#include <net/if_ether.h>
|
||||||
|
#else
|
||||||
#include <net/ethernet.h>
|
#include <net/ethernet.h>
|
||||||
|
#endif /* __NetBSD__ */
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
#include <pcap.h>
|
#include <pcap.h>
|
||||||
|
@ -68,7 +68,12 @@
|
|||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
#include <netinet/udp.h>
|
#include <netinet/udp.h>
|
||||||
#include <netinet/ip_icmp.h>
|
#include <netinet/ip_icmp.h>
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <net/ethertypes.h>
|
||||||
|
#include <net/if_ether.h>
|
||||||
|
#else
|
||||||
#include <net/ethernet.h>
|
#include <net/ethernet.h>
|
||||||
|
#endif /* __NetBSD__ */
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
#include <pcap.h>
|
#include <pcap.h>
|
||||||
|
@ -36,7 +36,12 @@
|
|||||||
|
|
||||||
#include "ue2common.h"
|
#include "ue2common.h"
|
||||||
#include "util/arch.h"
|
#include "util/arch.h"
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <strings.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __NetBSD__
|
||||||
static really_inline
|
static really_inline
|
||||||
u32 popcount32(u32 x) {
|
u32 popcount32(u32 x) {
|
||||||
return __builtin_popcount(x);
|
return __builtin_popcount(x);
|
||||||
@ -51,6 +56,7 @@ u32 popcount32(u32 x) {
|
|||||||
// return (((x + (x >> 4)) & 0xf0f0f0f) * 0x1010101) >> 24;
|
// return (((x + (x >> 4)) & 0xf0f0f0f) * 0x1010101) >> 24;
|
||||||
// #endif
|
// #endif
|
||||||
}
|
}
|
||||||
|
#endif /* __NetBSD__ */
|
||||||
|
|
||||||
static really_inline
|
static really_inline
|
||||||
u32 popcount32x4(u32 const *x) {
|
u32 popcount32x4(u32 const *x) {
|
||||||
@ -61,6 +67,7 @@ u32 popcount32x4(u32 const *x) {
|
|||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __NetBSD__
|
||||||
static really_inline
|
static really_inline
|
||||||
u32 popcount64(u64a x) {
|
u32 popcount64(u64a x) {
|
||||||
return __builtin_popcountll(x);
|
return __builtin_popcountll(x);
|
||||||
@ -81,6 +88,7 @@ u32 popcount64(u64a x) {
|
|||||||
// return popcount32(x >> 32) + popcount32(x);
|
// return popcount32(x >> 32) + popcount32(x);
|
||||||
// #endif
|
// #endif
|
||||||
}
|
}
|
||||||
|
#endif /* __NetBSD__ */
|
||||||
|
|
||||||
static really_inline
|
static really_inline
|
||||||
u32 popcount64x4(u64a const *x) {
|
u32 popcount64x4(u64a const *x) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user