From ea562ee977d4b48500a9b117e543e9c4ae0eb05e Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 12 Aug 1999 18:22:17 +0000 Subject: Patch from Ralf Corsepius : After upgrading my linux box to the brand new SuSE 6.2 release, which is glibc-2.1 based, I came across a bug in RTEMS - IIRC, I even warned you about it about 1/2 a year ago, but nothing has been done since then :-. The *.m4 macros to check for SYSV/IPC are broken for linux/glibc2.1, because they assume that linux always defines union semun, which isn't true anymore for glibc2.1 (the manpage for semctl states _X_OPEN specifies it this way). Therefore I have tried to implement a more general approach for handling SYSV for unix/posix which checks for presence of struct semun, instead of trying to evaluate OS specific preprocessor symbols. This approach is a bit adventureous, because I only tested it with linux/glibc2.1 and linux/libc5, but not under other Unix variants RTEMS supports. I am quite confident it will work on other hosts, too, but who knows :-. [FYI: I think this might also is the cause of some problems with RedHat 6.X / Mandrake linux recently reported on the rtems list -- rtems-4.0.0 can not be build for posix on any glibc2.1 based host] Furthermore the patch below contains a couple of minor fixes and configuration cleanups, which IMO should be applied before releasing a new snapshot. To apply this patch: cd patch -p1 < rtems-rc-19990709-8.diff ./autogen --- make/custom/mcp750.cfg | 4 ++-- make/custom/posix.cfg | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'make/custom') diff --git a/make/custom/mcp750.cfg b/make/custom/mcp750.cfg index ef7e656640..846ef5ea37 100644 --- a/make/custom/mcp750.cfg +++ b/make/custom/mcp750.cfg @@ -101,12 +101,12 @@ CFLAGS_OPTIMIZE_V=-O2 -fno-keep-inline-functions -fvolatile-global -fvolatile -m # $(LD_LIBS) \ # -Wl,-\( -Wl,-lc -Wl,-lrtemsall -Wl,-lgcc -Wl,-\) define make-exe - $(CC) $(CFLAGS) -o $(basename $@).exe $(LINK_OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) -o $(basename $@).exe $(LINK_OBJS) $(NM) -g -n $(basename $@).exe > $(basename $@).num $(SIZE) $(basename $@).exe $(CP) $(basename $@).exe $(PROJECT_ROOT)/powerpc-rtems/c/mcp750/lib/libbsp/powerpc/mcp750/bootloader/$(ARCH); \ cd $(PROJECT_ROOT)/powerpc-rtems/c/mcp750/lib/libbsp/powerpc/mcp750/bootloader; \ - make bootloader BINARY_LOADED=$(basename $@).exe; \ + $(MAKE) bootloader BINARY_LOADED=$(basename $@).exe; \ COMPLETE_FILE_NAME=$(basename $@).exe ;\ echo $${COMPLETE_FILE_NAME} ;\ FILE_NAME=`basename $${COMPLETE_FILE_NAME}` ;\ diff --git a/make/custom/posix.cfg b/make/custom/posix.cfg index dd446b1c93..490f2c940b 100644 --- a/make/custom/posix.cfg +++ b/make/custom/posix.cfg @@ -4,7 +4,7 @@ # $Id$ # -include $(RTEMS_ROOT)/make/target.cfg +# include $(RTEMS_ROOT)/make/target.cfg include $(RTEMS_ROOT)/make/host.cfg # Set them here, otherwise gcc-target-default.cfg will set them to values -- cgit v1.2.3