mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-13 16:49:17 +08:00
Add file to ensure some C++ compatibility
This commit is contained in:
parent
62bdb6ae50
commit
7e982cf603
56
Makefile
56
Makefile
@ -5,31 +5,33 @@ include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
|
||||
include $(RTEMS_CUSTOM)
|
||||
include $(PROJECT_ROOT)/make/leaf.cfg
|
||||
|
||||
CFLAGS += -ffreestanding
|
||||
CFLAGS += -fno-common
|
||||
CFLAGS += -Irtemsbsd/include
|
||||
CFLAGS += -Irtemsbsd/$(RTEMS_CPU)/include
|
||||
CFLAGS += -Ifreebsd/sys
|
||||
CFLAGS += -Ifreebsd/sys/$(RTEMS_CPU)/include
|
||||
CFLAGS += -Ifreebsd/sys/contrib/altq
|
||||
CFLAGS += -Ifreebsd/sys/contrib/pf
|
||||
CFLAGS += -Icopied/rtemsbsd/$(RTEMS_CPU)/include
|
||||
CFLAGS += -Ifreebsd/include
|
||||
CFLAGS += -Ifreebsd/lib/libc/include
|
||||
CFLAGS += -Ifreebsd/lib/libc/isc/include
|
||||
CFLAGS += -Ifreebsd/lib/libc/resolv
|
||||
CFLAGS += -Ifreebsd/lib/libutil
|
||||
CFLAGS += -Ifreebsd/lib/libkvm
|
||||
CFLAGS += -Ifreebsd/lib/libmemstat
|
||||
CFLAGS += -Ifreebsd/lib/libipsec
|
||||
CFLAGS += -ImDNSResponder/mDNSCore
|
||||
CFLAGS += -ImDNSResponder/mDNSShared
|
||||
CFLAGS += -ImDNSResponder/mDNSPosix
|
||||
CFLAGS += -Itestsuite/include
|
||||
CFLAGS += -Wall
|
||||
CFLAGS += -Wno-format
|
||||
COMMON_FLAGS += -ffreestanding
|
||||
COMMON_FLAGS += -fno-common
|
||||
COMMON_FLAGS += -Irtemsbsd/include
|
||||
COMMON_FLAGS += -Irtemsbsd/$(RTEMS_CPU)/include
|
||||
COMMON_FLAGS += -Ifreebsd/sys
|
||||
COMMON_FLAGS += -Ifreebsd/sys/$(RTEMS_CPU)/include
|
||||
COMMON_FLAGS += -Ifreebsd/sys/contrib/altq
|
||||
COMMON_FLAGS += -Ifreebsd/sys/contrib/pf
|
||||
COMMON_FLAGS += -Icopied/rtemsbsd/$(RTEMS_CPU)/include
|
||||
COMMON_FLAGS += -Ifreebsd/include
|
||||
COMMON_FLAGS += -Ifreebsd/lib/libc/include
|
||||
COMMON_FLAGS += -Ifreebsd/lib/libc/isc/include
|
||||
COMMON_FLAGS += -Ifreebsd/lib/libc/resolv
|
||||
COMMON_FLAGS += -Ifreebsd/lib/libutil
|
||||
COMMON_FLAGS += -Ifreebsd/lib/libkvm
|
||||
COMMON_FLAGS += -Ifreebsd/lib/libmemstat
|
||||
COMMON_FLAGS += -Ifreebsd/lib/libipsec
|
||||
COMMON_FLAGS += -ImDNSResponder/mDNSCore
|
||||
COMMON_FLAGS += -ImDNSResponder/mDNSShared
|
||||
COMMON_FLAGS += -ImDNSResponder/mDNSPosix
|
||||
COMMON_FLAGS += -Itestsuite/include
|
||||
COMMON_FLAGS += -Wall
|
||||
COMMON_FLAGS += -Wno-format
|
||||
COMMON_FLAGS += -MT $@ -MD -MP -MF $(basename $@).d
|
||||
CFLAGS += $(COMMON_FLAGS)
|
||||
CFLAGS += -std=gnu99
|
||||
CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d
|
||||
CXXFLAGS += $(COMMON_FLAGS)
|
||||
NEED_DUMMY_PIC_IRQ=yes
|
||||
|
||||
TEST_NETWORK_CONFIG = testsuite/include/rtems/bsd/test/network-config.h
|
||||
@ -46,6 +48,8 @@ D_FILES =
|
||||
LIB = libbsd.a
|
||||
LIB_GEN_FILES =
|
||||
LIB_C_FILES =
|
||||
LIB_CXX_FILES =
|
||||
LIB_CXX_FILES += rtemsbsd/rtems/rtems-bsd-cxx.cc
|
||||
LIB_C_FILES += rtemsbsd/local/bus_if.c
|
||||
LIB_C_FILES += rtemsbsd/local/cryptodev_if.c
|
||||
LIB_C_FILES += rtemsbsd/local/device_if.c
|
||||
@ -1431,9 +1435,9 @@ LIB_C_FILES += mDNSResponder/mDNSPosix/mDNSUNP.c
|
||||
ifeq ($(NEED_DUMMY_PIC_IRQ),yes)
|
||||
CFLAGS += -I rtems-dummy-pic-irq/include
|
||||
endif
|
||||
LIB_O_FILES = $(LIB_C_FILES:%.c=%.o)
|
||||
LIB_O_FILES = $(LIB_C_FILES:%.c=%.o) $(LIB_CXX_FILES:%.cc=%.o)
|
||||
O_FILES += $(LIB_O_FILES)
|
||||
D_FILES += $(LIB_C_FILES:%.c=%.d)
|
||||
D_FILES += $(LIB_C_FILES:%.c=%.d) $(LIB_CXX_FILES:%.cc=%.d)
|
||||
|
||||
all: $(LIB) $(TESTS) $(TEST_NETWORK_CONFIG) $(NET_TESTS)
|
||||
|
||||
|
@ -411,31 +411,33 @@ class ModuleManager:
|
||||
'include $(RTEMS_CUSTOM)\n' \
|
||||
'include $(PROJECT_ROOT)/make/leaf.cfg\n' \
|
||||
'\n' \
|
||||
'CFLAGS += -ffreestanding\n' \
|
||||
'CFLAGS += -fno-common\n' \
|
||||
'CFLAGS += -Irtemsbsd/include\n' \
|
||||
'CFLAGS += -Irtemsbsd/$(RTEMS_CPU)/include\n' \
|
||||
'CFLAGS += -Ifreebsd/sys\n' \
|
||||
'CFLAGS += -Ifreebsd/sys/$(RTEMS_CPU)/include\n' \
|
||||
'CFLAGS += -Ifreebsd/sys/contrib/altq\n' \
|
||||
'CFLAGS += -Ifreebsd/sys/contrib/pf\n' \
|
||||
'CFLAGS += -Icopied/rtemsbsd/$(RTEMS_CPU)/include\n' \
|
||||
'CFLAGS += -Ifreebsd/include\n' \
|
||||
'CFLAGS += -Ifreebsd/lib/libc/include\n' \
|
||||
'CFLAGS += -Ifreebsd/lib/libc/isc/include\n' \
|
||||
'CFLAGS += -Ifreebsd/lib/libc/resolv\n' \
|
||||
'CFLAGS += -Ifreebsd/lib/libutil\n' \
|
||||
'CFLAGS += -Ifreebsd/lib/libkvm\n' \
|
||||
'CFLAGS += -Ifreebsd/lib/libmemstat\n' \
|
||||
'CFLAGS += -Ifreebsd/lib/libipsec\n' \
|
||||
'CFLAGS += -ImDNSResponder/mDNSCore\n' \
|
||||
'CFLAGS += -ImDNSResponder/mDNSShared\n' \
|
||||
'CFLAGS += -ImDNSResponder/mDNSPosix\n' \
|
||||
'CFLAGS += -Itestsuite/include\n' \
|
||||
'CFLAGS += -Wall\n' \
|
||||
'CFLAGS += -Wno-format\n' \
|
||||
'COMMON_FLAGS += -ffreestanding\n' \
|
||||
'COMMON_FLAGS += -fno-common\n' \
|
||||
'COMMON_FLAGS += -Irtemsbsd/include\n' \
|
||||
'COMMON_FLAGS += -Irtemsbsd/$(RTEMS_CPU)/include\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/sys\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/sys/$(RTEMS_CPU)/include\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/sys/contrib/altq\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/sys/contrib/pf\n' \
|
||||
'COMMON_FLAGS += -Icopied/rtemsbsd/$(RTEMS_CPU)/include\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/include\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/lib/libc/include\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/lib/libc/isc/include\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/lib/libc/resolv\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/lib/libutil\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/lib/libkvm\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/lib/libmemstat\n' \
|
||||
'COMMON_FLAGS += -Ifreebsd/lib/libipsec\n' \
|
||||
'COMMON_FLAGS += -ImDNSResponder/mDNSCore\n' \
|
||||
'COMMON_FLAGS += -ImDNSResponder/mDNSShared\n' \
|
||||
'COMMON_FLAGS += -ImDNSResponder/mDNSPosix\n' \
|
||||
'COMMON_FLAGS += -Itestsuite/include\n' \
|
||||
'COMMON_FLAGS += -Wall\n' \
|
||||
'COMMON_FLAGS += -Wno-format\n' \
|
||||
'COMMON_FLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \
|
||||
'CFLAGS += $(COMMON_FLAGS)\n' \
|
||||
'CFLAGS += -std=gnu99\n' \
|
||||
'CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \
|
||||
'CXXFLAGS += $(COMMON_FLAGS)\n' \
|
||||
'NEED_DUMMY_PIC_IRQ=yes\n' \
|
||||
'\n' \
|
||||
'TEST_NETWORK_CONFIG = testsuite/include/rtems/bsd/test/network-config.h\n' \
|
||||
@ -451,7 +453,9 @@ class ModuleManager:
|
||||
'\n' \
|
||||
'LIB = libbsd.a\n' \
|
||||
'LIB_GEN_FILES =\n' \
|
||||
'LIB_C_FILES =\n'
|
||||
'LIB_C_FILES =\n' \
|
||||
'LIB_CXX_FILES =\n' \
|
||||
'LIB_CXX_FILES += rtemsbsd/rtems/rtems-bsd-cxx.cc\n'
|
||||
for m in self.modules:
|
||||
if m.conditionalOn != "none":
|
||||
data += 'ifneq ($(' + m.conditionalOn + '),yes)\n'
|
||||
@ -471,9 +475,9 @@ class ModuleManager:
|
||||
'ifeq ($(NEED_DUMMY_PIC_IRQ),yes)\n' \
|
||||
'CFLAGS += -I rtems-dummy-pic-irq/include\n' \
|
||||
'endif\n' \
|
||||
'LIB_O_FILES = $(LIB_C_FILES:%.c=%.o)\n' \
|
||||
'LIB_O_FILES = $(LIB_C_FILES:%.c=%.o) $(LIB_CXX_FILES:%.cc=%.o)\n' \
|
||||
'O_FILES += $(LIB_O_FILES)\n' \
|
||||
'D_FILES += $(LIB_C_FILES:%.c=%.d)\n' \
|
||||
'D_FILES += $(LIB_C_FILES:%.c=%.d) $(LIB_CXX_FILES:%.cc=%.d)\n' \
|
||||
'\n' \
|
||||
'all: $(LIB) $(TESTS) $(TEST_NETWORK_CONFIG) $(NET_TESTS)\n' \
|
||||
'\n' \
|
||||
|
64
rtemsbsd/rtems/rtems-bsd-cxx.cc
Normal file
64
rtemsbsd/rtems/rtems-bsd-cxx.cc
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright (c) 2014 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Dornierstr. 4
|
||||
* 82178 Puchheim
|
||||
* Germany
|
||||
* <rtems@embedded-brains.de>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
|
||||
extern "C" {
|
||||
|
||||
#include <machine/rtems-bsd-kernel-space.h>
|
||||
|
||||
#include <rtems/bsd/sys/param.h>
|
||||
#include <rtems/bsd/sys/types.h>
|
||||
#include <sys/mbuf.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/sockio.h>
|
||||
|
||||
#include <sys/bus.h>
|
||||
#include <machine/bus.h>
|
||||
|
||||
#include <net/if.h>
|
||||
#include <net/ethernet.h>
|
||||
#include <net/if_arp.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/if_media.h>
|
||||
#include <net/if_types.h>
|
||||
#include <net/if_var.h>
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Just make sure that these header files are C++ compatible to enable network
|
||||
* interface drivers in C++.
|
||||
*/
|
Loading…
x
Reference in New Issue
Block a user