Skip to content

Commit d77701e

Browse files
committed
Add EASTL
At least some of it has been verified to work in an actual program.
1 parent 9fc6b50 commit d77701e

File tree

9 files changed

+56
-3
lines changed

9 files changed

+56
-3
lines changed

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,9 @@
1818
[submodule "examples/standalone_examples/template"]
1919
path = examples/standalone_examples/template
2020
url = https://github.com/CE-Programming/template.git
21+
[submodule "src/EASTL"]
22+
path = src/EASTL
23+
url = https://github.com/electronicarts/EASTL.git
24+
[submodule "src/EABase"]
25+
path = src/EABase
26+
url = https://github.com/electronicarts/EABase.git

makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
include $(CURDIR)/src/common.mk
1818

1919
LIBS := libload graphx fontlibc keypadc fileioc usbdrvce srldrvce msddrvce fatdrvce
20-
SRCS := ce crt libc libcxx
20+
SRCS := ce crt libc libcxx EASTL
2121
TOOLS := fasmg convbin convimg convfont cedev-config
2222

2323
ifeq ($(OS),Windows_NT)

src/EABase

Submodule EABase added at 6d237f1

src/EASTL

Submodule EASTL added at de76647

src/ce/include/sys/types.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @file
3+
* @authors
4+
* Zachary "Runer112" Wassall
5+
* @brief Data types
6+
*/
7+
8+
#ifndef SYS_TYPES_H
9+
#define SYS_TYPES_H
10+
11+
#ifdef __cplusplus
12+
extern "C" {
13+
#endif
14+
15+
#include <cstddef>
16+
17+
18+
typedef ptrdiff_t ssize_t;
19+
20+
21+
#ifdef __cplusplus
22+
}
23+
#endif
24+
25+
#endif // SYS_TYPES_H

src/common.mk

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ INSTALL_LIB := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/libload))
8787
INSTALL_CRT := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/crt))
8888
INSTALL_LIBC := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/libc))
8989
INSTALL_LIBCXX := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/libcxx))
90+
INSTALL_EASTL := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/EASTL))
9091
INSTALL_CE := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/ce))
9192
INSTALL_BIN := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/bin))
9293
INSTALL_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include))
@@ -95,5 +96,11 @@ INSTALL_HW_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/sys))
9596
INSTALL_CXX_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/c++))
9697
INSTALL_CXX_TI_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/c++/ti))
9798
INSTALL_CXX_HW_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/c++/sys))
99+
INSTALL_EABASE_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EABase))
100+
INSTALL_EABASE_CONFIG_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EABase/config))
101+
INSTALL_EASTL_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL))
102+
INSTALL_EASTL_BONUS_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL/bonus))
103+
INSTALL_EASTL_INTERNAL_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL/internal))
104+
INSTALL_EASTL_INTERNAL_ATOMIC_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL/internal/atomic))
98105
INSTALL_META := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/meta))
99106
INSTALL_DIR := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)))

src/libcxx/makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ BUILD_SRC := $(patsubst %,build/%.src,$(wildcard *.c *.cpp))
2020

2121
EZCFLAGS := -S -ffreestanding -Wall -Wextra -Oz
2222
EZCFLAGS += -D_EZ80 -isystem ../libc/include -isystem ../ce/include -isystem ../fileioc -mllvm -profile-guided-section-prefix=false
23-
EZCXXFLAGS := $(EZCFLAGS) -fno-exceptions -fno-rtti
23+
EZCXXFLAGS := $(EZCFLAGS) -fno-exceptions -fno-rtti -fno-use-cxa-atexit
2424
EZCXXFLAGS += -isystem ../libcxx/include
2525

2626
WILDCARD_SRC = $(wildcard *.src) $(BUILD_SRC)
@@ -40,7 +40,6 @@ clean:
4040
$(Q)$(call RMDIR,build)
4141

4242
install: all
43-
$(Q)$(call MKDIR,$(INSTALL_H))
4443
$(Q)$(call MKDIR,$(INSTALL_CXX_H))
4544
$(Q)$(call MKDIR,$(INSTALL_LIBCXX))
4645
$(Q)$(call COPY,$(call NATIVEPATH,$(WILDCARD_SRC)),$(INSTALL_LIBCXX))

src/linker.mk

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ APPEND_FILES = $(foreach file,$(addprefix ../lib/$2/,$(notdir $3)),$(call APPEND
2222
CRT_FILES := $(filter-out crt/crt0.src,$(wildcard crt/*.src) $(patsubst crt/%,crt/build/%.src,$(wildcard crt/*.c crt/*.cpp)))
2323
LIBC_FILES := $(wildcard libc/*.src) $(patsubst libc/%,libc/build/%.src,$(wildcard libc/*.c libc/*.cpp))
2424
LIBCXX_FILES := $(wildcard libcxx/*.src) $(patsubst libcxx/%,libcxx/build/%.src,$(wildcard libcxx/*.c libcxx/*.cpp))
25+
# TODO: atomic
26+
EASTL_FILES := $(filter-out EASTL/atomic.cpp.src,$(patsubst EASTL/source/%,EASTL/%.src,$(wildcard EASTL/source/*.c EASTL/source/*.cpp)))
2527
CE_FILES := $(wildcard ce/*.src)
2628

2729
linker_script: $(STATIC_FILES) $(LINKED_FILES) $(SHARED_FILES)
@@ -66,3 +68,6 @@ linker_script: $(STATIC_FILES) $(LINKED_FILES) $(SHARED_FILES)
6668
$(Q)$(call APPEND,if HAS_LIBCXX)
6769
$(Q)$(call APPEND_FILES, source ,libcxx,$(sort $(LIBCXX_FILES)))
6870
$(Q)$(call APPEND,end if)
71+
$(Q)$(call APPEND,if HAS_EASTL)
72+
$(Q)$(call APPEND_FILES, source ,EASTL,$(sort $(EASTL_FILES)))
73+
$(Q)$(call APPEND,end if)

src/makefile.mk

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ HAS_PRINTF ?= YES
4444
HAS_CUSTOM_FILE ?= NO
4545
HAS_LIBC ?= YES
4646
HAS_LIBCXX ?= YES
47+
HAS_EASTL ?= YES
4748
PREFER_OS_CRT ?= NO
4849
PREFER_OS_LIBC ?= YES
4950
LIBLOAD_OPTIONAL ?=
@@ -71,6 +72,7 @@ LDPREFER_OS_LIBC := 0
7172
LDHAS_PRINTF := 0
7273
LDHAS_LIBC := 0
7374
LDHAS_LIBCXX := 0
75+
LDHAS_EASTL := 0
7476

7577
# verbosity
7678
V ?= 0
@@ -240,6 +242,9 @@ endif
240242
ifeq ($(HAS_LIBCXX),YES)
241243
LDHAS_LIBCXX := 1
242244
endif
245+
ifeq ($(HAS_EASTL),YES)
246+
LDHAS_EASTL := 1
247+
endif
243248
ifeq ($(HAS_PRINTF),YES)
244249
LDHAS_PRINTF := 1
245250
endif
@@ -249,6 +254,9 @@ EZLLVMFLAGS = -mllvm -profile-guided-section-prefix=false
249254
EZCOMMONFLAGS = -nostdinc -isystem $(call NATIVEPATH,$(CEDEV_TOOLCHAIN)/include) -I$(SRCDIR) -fno-threadsafe-statics -Xclang -fforce-mangle-main-argc-argv $(EZLLVMFLAGS) -D$(DEBUGMODE) $(DEFCUSTOMFILE) $(CCDEBUG)
250255
EZCFLAGS = $(EZCOMMONFLAGS) $(CFLAGS)
251256
EZCXXFLAGS = $(EZCOMMONFLAGS) -isystem $(call NATIVEPATH,$(CEDEV_TOOLCHAIN)/include/c++) -fno-exceptions -fno-use-cxa-atexit $(CXXFLAGS)
257+
ifeq ($(HAS_EASTL),YES)
258+
EZCXXFLAGS += -DEASTL_USER_CONFIG_HEADER="<__EASTL_user_config.h>"
259+
endif
252260
EZLTOFLAGS = $(EZLLVMFLAGS) $(LTOFLAGS)
253261

254262
# these are the fasmg linker flags
@@ -259,6 +267,7 @@ FASMGFLAGS = \
259267
-i $(call QUOTE_ARG,HAS_PRINTF := $(LDHAS_PRINTF)) \
260268
-i $(call QUOTE_ARG,HAS_LIBC := $(LDHAS_LIBC)) \
261269
-i $(call QUOTE_ARG,HAS_LIBCXX := $(LDHAS_LIBCXX)) \
270+
-i $(call QUOTE_ARG,HAS_EASTL := $(LDHAS_EASTL)) \
262271
-i $(call QUOTE_ARG,PREFER_OS_CRT := $(LDPREFER_OS_CRT)) \
263272
-i $(call QUOTE_ARG,PREFER_OS_LIBC := $(LDPREFER_OS_LIBC)) \
264273
-i $(call QUOTE_ARG,include $(call FASMG_FILES,$(LINKER_SCRIPT))) \

0 commit comments

Comments
 (0)