summaryrefslogtreecommitdiffstats
path: root/c/src
diff options
context:
space:
mode:
Diffstat (limited to 'c/src')
-rw-r--r--c/src/lib/libbsp/arm/shared/startup/linkcmds.base9
-rw-r--r--c/src/lib/libbsp/sparc/erc32/make/custom/erc32.cfg2
-rw-r--r--c/src/lib/libbsp/sparc/shared/startup/linkcmds.base35
-rw-r--r--c/src/make/Makefile.am2
-rw-r--r--c/src/make/bsp.mk.in59
-rw-r--r--c/src/make/configure.ac1
6 files changed, 103 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
index d6561dde77..008685ee67 100644
--- a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
+++ b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
@@ -310,6 +310,15 @@ SECTIONS {
_bsd__start_set_sysctl_set = .;
*(_bsd_set_sysctl_set);
_bsd__stop_set_sysctl_set = .;
+ __start_pcpu_set = .;
+ *(set_pcpu);
+ __stop_pcpu_set = .;
+ _bsd__start_set_ieee80211_ioctl_getset = .;
+ *(_bsd_set_ieee80211_ioctl_getset);
+ _bsd__stop_set_ieee80211_ioctl_getset = .;
+ _bsd__start_set_ieee80211_ioctl_setset = .;
+ *(_bsd_set_ieee80211_ioctl_setset);
+ _bsd__stop_set_ieee80211_ioctl_setset = .;
bsp_section_rodata_end = .;
} > REGION_RODATA AT > REGION_RODATA_LOAD
diff --git a/c/src/lib/libbsp/sparc/erc32/make/custom/erc32.cfg b/c/src/lib/libbsp/sparc/erc32/make/custom/erc32.cfg
index 3879d3dc73..f1fced8bc6 100644
--- a/c/src/lib/libbsp/sparc/erc32/make/custom/erc32.cfg
+++ b/c/src/lib/libbsp/sparc/erc32/make/custom/erc32.cfg
@@ -12,4 +12,4 @@ RTEMS_CPU_MODEL=erc32
CPU_CFLAGS = -mcpu=cypress
# optimize flag: typically -O2
-CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V = -O0 -g
diff --git a/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base b/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base
index 1bbb77374e..ab5a9ef604 100644
--- a/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base
+++ b/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base
@@ -120,6 +120,9 @@ SECTIONS
} > ram
.rela.dyn :
{
+ data_start = .;
+ _data_start = .;
+ _sdata = . ;
*(.rela.init)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rela.fini)
@@ -132,11 +135,37 @@ SECTIONS
*(.rela.got)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
} >ram
+ .robsdsets : {
+ /* Special FreeBSD linker set sections */
+ __start_set_sysctl_set = .;
+ *(set_sysctl_*);
+ __stop_set_sysctl_set = .;
+ *(set_domain_*);
+ *(set_pseudo_*);
+ _bsd__start_set_modmetadata_set = .;
+ *(_bsd_set_modmetadata_set);
+ _bsd__stop_set_modmetadata_set = .;
+ _bsd__start_set_sysctl_set = .;
+ *(_bsd_set_sysctl_set);
+ _bsd__stop_set_sysctl_set = .;
+ __start_pcpu_set = .;
+ *(set_pcpu);
+ __stop_pcpu_set = .;
+ _bsd__start_set_ieee80211_ioctl_getset = .;
+ *(_bsd_set_ieee80211_ioctl_getset);
+ _bsd__stop_set_ieee80211_ioctl_getset = .;
+ _bsd__start_set_ieee80211_ioctl_setset = .;
+ *(_bsd_set_ieee80211_ioctl_setset);
+ _bsd__stop_set_ieee80211_ioctl_setset = .;
+ } >ram
+ .rwbsdsets : {
+ /* Special FreeBSD linker set sections */
+ _bsd__start_set_sysinit_set = .;
+ *(_bsd_set_sysinit_set);
+ _bsd__stop_set_sysinit_set = .;
+ } >ram
.data :
{
- data_start = .;
- _data_start = .;
- _sdata = . ;
*(.data*)
*(.gnu.linkonce.d*)
*(.gcc_except_table*)
diff --git a/c/src/make/Makefile.am b/c/src/make/Makefile.am
index d0383df8ed..b3ca7c0a7a 100644
--- a/c/src/make/Makefile.am
+++ b/c/src/make/Makefile.am
@@ -18,7 +18,7 @@ rtems_bspdir = $(rtemsdir)/@RTEMS_BSP@
rtems_bsp_DATA = Makefile.inc
rtems_bsp_makedir = $(rtems_bspdir)/make
-rtems_bsp_make_DATA = bsp.cfg target.cfg
+rtems_bsp_make_DATA = bsp.cfg target.cfg bsp.mk
bsp.cfg: bsp.cfg.in Makefile
sed \
diff --git a/c/src/make/bsp.mk.in b/c/src/make/bsp.mk.in
new file mode 100644
index 0000000000..12a4e1936f
--- /dev/null
+++ b/c/src/make/bsp.mk.in
@@ -0,0 +1,59 @@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+RTEMS_API = @RTEMS_API@
+RTEMS_BSP = @RTEMS_BSP@
+RTEMS_ROOT = @prefix@
+RTEMS_SHARE = $(RTEMS_ROOT)/share/rtems$(RTEMS_API)
+PROJECT_ROOT = @exec_prefix@/@RTEMS_BSP@
+PROJECT_INCLUDE = $(PROJECT_ROOT)/lib/include
+PROJECT_LIB = $(PROJECT_ROOT)/lib
+BUILDDIR = build-$(RTEMS_BSP)
+
+include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
+
+DEPFLAGS = -MT $@ -MD -MP -MF $(basename $@).d
+SYSFLAGS = -B $(PROJECT_LIB) -specs bsp_specs -qrtems
+WARNFLAGS = -Wall -Wextra -Wformat=2 -Wcast-qual -Wconversion -Wno-unused
+OPTFLAGS = $(CFLAGS_OPTIMIZE_V)
+
+CFLAGS = $(DEPFLAGS) $(SYSFLAGS) $(WARNFLAGS) $(CPU_CFLAGS) $(OPTFLAGS)
+CXXFLAGS = $(DEPFLAGS) $(SYSFLAGS) $(WARNFLAGS) $(CPU_CFLAGS) $(OPTFLAGS)
+LINKFLAGS = $(SYSFLAGS) $(CPU_CFLAGS) $(LDFLAGS) $(OPTFLAGS)
+ASFLAGS = $(CPU_CFLAGS)
+
+CCLINK = $(CC) $(LINKFLAGS) -Wl,-Map,$(basename $@).map
+CXXLINK = $(CXX) $(LINKFLAGS) -Wl,-Map,$(basename $@).map
+
+$(BUILDDIR)/%.o: %.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+
+$(BUILDDIR)/%.o: %.S
+ $(CC) $(CPPFLAGS) -DASM $(CFLAGS) -c $< -o $@
+
+$(BUILDDIR)/%.o: %.cc
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
+
+$(BUILDDIR)/%.o: %.s
+ $(AS) $(ASFLAGS) $< -o $@
+
+AR = @AR@
+AS = @AS@
+CC = @CC@
+CXX = @CXX@
+LD = @LD@
+NM = @NM@
+OBJCOPY = @OBJCOPY@
+RANLIB = @RANLIB@
+SIZE = @SIZE@
+STRIP = @STRIP@
+export AR
+export AS
+export CC
+export CXX
+export LD
+export NM
+export OBJCOPY
+export RANLIB
+export SIZE
+export STRIP
diff --git a/c/src/make/configure.ac b/c/src/make/configure.ac
index 1517c68a99..0a5abd959f 100644
--- a/c/src/make/configure.ac
+++ b/c/src/make/configure.ac
@@ -78,5 +78,6 @@ AC_CONFIG_LINKS([leaf.cfg:leaf.cfg])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile
+bsp.mk
])
AC_OUTPUT