Skip to content

Commit d9379ca

Browse files
runer112ZERICO2005
authored andcommitted
Add EASTL
At least some of it has been verified to work in an actual program.
1 parent 60c3994 commit d9379ca

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/library_examples/graphx/graphx-template"]
1919
path = examples/library_examples/graphx/template
2020
url = https://github.com/CE-Programming/graphx-template
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
@@ -20,7 +20,7 @@ PREFIX = CEdev
2020
include $(CURDIR)/src/common.mk
2121

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

2626
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
@@ -83,6 +83,7 @@ INSTALL_CRT := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/crt))
8383
INSTALL_LIBC := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/libc))
8484
INSTALL_LIBCXX := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/libcxx))
8585
INSTALL_SOFTFLOAT := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/softfloat))
86+
INSTALL_EASTL := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/EASTL))
8687
INSTALL_CE := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/lib/ce))
8788
INSTALL_BIN := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/bin))
8889
INSTALL_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include))
@@ -91,5 +92,11 @@ INSTALL_HW_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/sys))
9192
INSTALL_CXX_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/c++))
9293
INSTALL_CXX_TI_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/c++/ti))
9394
INSTALL_CXX_HW_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/c++/sys))
95+
INSTALL_EABASE_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EABase))
96+
INSTALL_EABASE_CONFIG_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EABase/config))
97+
INSTALL_EASTL_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL))
98+
INSTALL_EASTL_BONUS_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL/bonus))
99+
INSTALL_EASTL_INTERNAL_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL/internal))
100+
INSTALL_EASTL_INTERNAL_ATOMIC_H := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/include/EASTL/internal/atomic))
94101
INSTALL_META := $(call QUOTE_ARG,$(call NATIVEPATH,$(INSTALL_DIR)/meta))
95102
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 -Wimplicit-float-conversion -Wimplicit-int-float-conversion -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
@@ -23,6 +23,8 @@ CRT_FILES := $(filter-out crt/crt0.src,$(wildcard crt/*.src) $(patsubst crt/%,cr
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))
2525
SOFTFLOAT_FILES := $(wildcard softfloat/*.src) $(patsubst softfloat/%,softfloat/build/%.src,$(wildcard softfloat/*.c softfloat/*.cpp))
26+
# TODO: atomic
27+
EASTL_FILES := $(filter-out EASTL/atomic.cpp.src,$(patsubst EASTL/source/%,EASTL/%.src,$(wildcard EASTL/source/*.c EASTL/source/*.cpp)))
2628
CE_FILES := $(wildcard ce/*.src)
2729

2830
linker_script: $(STATIC_FILES) $(LINKED_FILES) $(SHARED_FILES)
@@ -68,3 +70,6 @@ linker_script: $(STATIC_FILES) $(LINKED_FILES) $(SHARED_FILES)
6870
$(Q)$(call APPEND,if HAS_LIBCXX)
6971
$(Q)$(call APPEND_FILES, source ,libcxx,$(sort $(LIBCXX_FILES)))
7072
$(Q)$(call APPEND,end if)
73+
$(Q)$(call APPEND,if HAS_EASTL)
74+
$(Q)$(call APPEND_FILES, source ,EASTL,$(sort $(EASTL_FILES)))
75+
$(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
ALLOCATOR ?= STANDARD
4849
PREFER_OS_CRT ?= NO
4950
PREFER_OS_LIBC ?= YES
@@ -73,6 +74,7 @@ LDPREFER_OS_LIBC := 0
7374
LDHAS_PRINTF := 0
7475
LDHAS_LIBC := 0
7576
LDHAS_LIBCXX := 0
77+
LDHAS_EASTL := 0
7678

7779
# verbosity
7880
V ?= 0
@@ -245,6 +247,9 @@ endif
245247
ifeq ($(HAS_LIBCXX),YES)
246248
LDHAS_LIBCXX := 1
247249
endif
250+
ifeq ($(HAS_EASTL),YES)
251+
LDHAS_EASTL := 1
252+
endif
248253
ifeq ($(HAS_PRINTF),YES)
249254
LDHAS_PRINTF := 1
250255
endif
@@ -254,6 +259,9 @@ EZLLVMFLAGS = -mllvm -profile-guided-section-prefix=false
254259
EZCOMMONFLAGS = -nostdinc -isystem $(call NATIVEPATH,$(CEDEV_TOOLCHAIN)/include) -I$(SRCDIR) -fno-threadsafe-statics -Xclang -fforce-mangle-main-argc-argv $(EZLLVMFLAGS) -D$(DEBUGMODE) $(DEFCUSTOMFILE) $(CCDEBUG)
255260
EZCFLAGS = $(EZCOMMONFLAGS) $(CFLAGS)
256261
EZCXXFLAGS = $(EZCOMMONFLAGS) -isystem $(call NATIVEPATH,$(CEDEV_TOOLCHAIN)/include/c++) -fno-exceptions -fno-use-cxa-atexit $(CXXFLAGS)
262+
ifeq ($(HAS_EASTL),YES)
263+
EZCXXFLAGS += -DEASTL_USER_CONFIG_HEADER="<__EASTL_user_config.h>"
264+
endif
257265
EZLTOFLAGS = $(EZLLVMFLAGS) $(LTOFLAGS)
258266

259267
# these are the fasmg linker flags
@@ -264,6 +272,7 @@ FASMGFLAGS = \
264272
-i $(call QUOTE_ARG,HAS_PRINTF := $(LDHAS_PRINTF)) \
265273
-i $(call QUOTE_ARG,HAS_LIBC := $(LDHAS_LIBC)) \
266274
-i $(call QUOTE_ARG,HAS_LIBCXX := $(LDHAS_LIBCXX)) \
275+
-i $(call QUOTE_ARG,HAS_EASTL := $(LDHAS_EASTL)) \
267276
-i $(call QUOTE_ARG,PREFER_OS_CRT := $(LDPREFER_OS_CRT)) \
268277
-i $(call QUOTE_ARG,PREFER_OS_LIBC := $(LDPREFER_OS_LIBC)) \
269278
-i $(call QUOTE_ARG,ALLOCATOR_$(ALLOCATOR) := 1) \

0 commit comments

Comments
 (0)