summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-10-24 15:04:24 +0800
committerGitHub <[email protected]>2022-10-24 15:04:24 +0800
commit4649fbb7cd8c1fe322275c42abf79c2f6bed55ff (patch)
treec43f369dc530862bb60e9d0a5e58e2f05cffc7b4
parent668f7370386352af3228b1329471fc0c09403934 (diff)
parent57a2967cbac9338b412d9bb883191d1c6f756e03 (diff)
Merge pull request #2965 from xmake-io/openbsd
support openbsd
-rw-r--r--.github/workflows/openbsd.yml2
-rw-r--r--core/makefile4
-rw-r--r--core/plat/bsd/prefix.mak2
-rw-r--r--core/src/xmake/engine.c2
-rw-r--r--core/src/xmake/os/cpuinfo.c2
-rw-r--r--core/src/xmake/os/meminfo.c2
-rw-r--r--makefile2
-rwxr-xr-xscripts/srcenv.profile2
8 files changed, 12 insertions, 6 deletions
diff --git a/.github/workflows/openbsd.yml b/.github/workflows/openbsd.yml
index 0ab7743ad..c86a794c3 100644
--- a/.github/workflows/openbsd.yml
+++ b/.github/workflows/openbsd.yml
@@ -25,7 +25,7 @@ jobs:
usesh: true
mem: 4096
copyback: false
- prepare: pkg install -y curl unzip gmake llvm gsed bash perl5
+ prepare: pkg_add curl unzip gmake llvm gsed bash perl5
run: |
gmake -j4
gmake install
diff --git a/core/makefile b/core/makefile
index 2104bb688..c7771307c 100644
--- a/core/makefile
+++ b/core/makefile
@@ -158,12 +158,14 @@ BUILD_ARCH :=$(if $(findstring msys,$(PLAT)),$(MSYSARCH),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring cygwin,$(PLAT)),x$(shell getconf LONG_BIT),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring macosx,$(PLAT)),$(shell uname -m),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring linux,$(PLAT)),$(shell uname -m),$(BUILD_ARCH))
+BUILD_ARCH :=$(if $(findstring bsd,$(PLAT)),$(shell uname -m),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring bsd,$(PLAT)),x$(shell getconf LONG_BIT),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring iphoneos,$(PLAT)),arm64,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring android,$(PLAT)),armv7,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring i686,$(BUILD_ARCH)),i386,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring x32,$(BUILD_ARCH)),i386,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring x64,$(BUILD_ARCH)),x86_64,$(BUILD_ARCH))
+BUILD_ARCH :=$(if $(findstring amd64,$(BUILD_ARCH)),x86_64,$(BUILD_ARCH))
# on termux/ci
ifneq ($(TERMUX_ARCH),)
@@ -295,7 +297,7 @@ base_LIBPATH :=
base_LIBNAMES :=
base_LIBNAMES += $(shell if { cat detect/curses.c | $(CC) -xc - -lcurses -ltinfo -o /dev/null 2>/dev/null; }; then echo curses tinfo; fi )
base_LIBNAMES += $(shell if { cat detect/readline.c | $(CC) -xc - -lreadline -o /dev/null 2>/dev/null; }; then echo readline; fi )
-base_LIBNAMES += m dl pthread
+base_LIBNAMES += m pthread
endif
# get branch and commit
diff --git a/core/plat/bsd/prefix.mak b/core/plat/bsd/prefix.mak
index cee3a4406..e9486bdb6 100644
--- a/core/plat/bsd/prefix.mak
+++ b/core/plat/bsd/prefix.mak
@@ -91,7 +91,7 @@ CCFLAGS := $(CXXFLAGS) -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_S
# ldflags
LDFLAGS_RELEASE =
-LDFLAGS_DEBUG = -rdynamic
+LDFLAGS_DEBUG = -rdynamic -lexecinfo
LDFLAGS := $(LDFLAGS) $(AHFLAGS) $(LDFLAGS_CHECK)
LDFLAGS-L = -L
LDFLAGS-l = -l
diff --git a/core/src/xmake/engine.c b/core/src/xmake/engine.c
index 20b845ccb..4331fa715 100644
--- a/core/src/xmake/engine.c
+++ b/core/src/xmake/engine.c
@@ -52,7 +52,7 @@
*/
#if defined(TB_CONFIG_OS_LINUX)
# define XM_PROC_SELF_FILE "/proc/self/exe"
-#elif defined(TB_CONFIG_OS_BSD)
+#elif defined(TB_CONFIG_OS_BSD) && !defined(__OpenBSD__)
# if defined(__FreeBSD__)
# define XM_PROC_SELF_FILE "/proc/curproc/file"
# elif defined(__NetBSD__)
diff --git a/core/src/xmake/os/cpuinfo.c b/core/src/xmake/os/cpuinfo.c
index 2cbb931ce..1e7753940 100644
--- a/core/src/xmake/os/cpuinfo.c
+++ b/core/src/xmake/os/cpuinfo.c
@@ -185,7 +185,7 @@ static tb_float_t xm_os_cpuinfo_usagerate()
}
}
return usagerate;
-#elif defined(TB_CONFIG_OS_BSD)
+#elif defined(TB_CONFIG_OS_BSD) && !defined(__OpenBSD__)
# define CP_USER 0
# define CP_NICE 1
# define CP_SYS 2
diff --git a/core/src/xmake/os/meminfo.c b/core/src/xmake/os/meminfo.c
index cd9ace234..b3bb435cd 100644
--- a/core/src/xmake/os/meminfo.c
+++ b/core/src/xmake/os/meminfo.c
@@ -135,7 +135,7 @@ static tb_bool_t xm_os_meminfo_stats(tb_int_t* ptotalsize, tb_int_t* pavailsize)
*pavailsize = (tb_int_t)(statex.ullAvailPhys / (1024 * 1024));
return tb_true;
}
-#elif defined(TB_CONFIG_OS_BSD)
+#elif defined(TB_CONFIG_OS_BSD) && !defined(__OpenBSD__)
unsigned long totalsize;
size_t size = sizeof(totalsize);
if (sysctlbyname("hw.physmem", &totalsize, &size, tb_null, 0) != 0)
diff --git a/makefile b/makefile
index 906fa8d4c..ba512df6a 100644
--- a/makefile
+++ b/makefile
@@ -50,12 +50,14 @@ BUILD_ARCH :=$(if $(findstring msys,$(PLAT)),$(MSYSARCH),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring cygwin,$(PLAT)),x$(shell getconf LONG_BIT),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring macosx,$(PLAT)),$(shell uname -m),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring linux,$(PLAT)),$(shell uname -m),$(BUILD_ARCH))
+BUILD_ARCH :=$(if $(findstring bsd,$(PLAT)),$(shell uname -m),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring bsd,$(PLAT)),x$(shell getconf LONG_BIT),$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring iphoneos,$(PLAT)),arm64,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring android,$(PLAT)),armv7,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring i686,$(BUILD_ARCH)),i386,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring x32,$(BUILD_ARCH)),i386,$(BUILD_ARCH))
BUILD_ARCH :=$(if $(findstring x64,$(BUILD_ARCH)),x86_64,$(BUILD_ARCH))
+BUILD_ARCH :=$(if $(findstring amd64,$(BUILD_ARCH)),x86_64,$(BUILD_ARCH))
# on termux/ci
ifneq ($(TERMUX_ARCH),)
diff --git a/scripts/srcenv.profile b/scripts/srcenv.profile
index ead66b4f8..c673b2636 100755
--- a/scripts/srcenv.profile
+++ b/scripts/srcenv.profile
@@ -2,8 +2,10 @@
export XMAKE_PROGRAM_DIR=`pwd`/xmake
if [ -f `pwd`/core/build/xmake ]; then
alias xmake=`pwd`/core/build/xmake
+ export XMAKE_PROGRAM_FILE=`pwd`/core/build/xmake
else
alias xmake=`pwd`/core/src/demo/demo.b
+ export XMAKE_PROGRAM_FILE=`pwd`/core/src/demo/demo.b
fi
alias xrepo=`pwd`/scripts/xrepo.sh
xmake --version