On 11/15/16 8:56 PM, Jianxun Zhang wrote: > Add detection of current path for -I option, also update > type definitions for EFI compiling. > > Signed-off-by: Jianxun Zhang <[email protected]> > --- > Makefile | 4 +++- > Makefile.efi | 4 +++- > inc/rmc_types.h | 9 ++++++--- > 3 files changed, 12 insertions(+), 5 deletions(-) > > diff --git a/Makefile b/Makefile > index f152829..6c68a51 100644 > --- a/Makefile > +++ b/Makefile > @@ -1,5 +1,7 @@ > # Copyright (C) 2016 Jianxun Zhang <[email protected]> > > +TOPDIR = $(shell if [ -z "$$PWD" ]; then pwd; else echo "$$PWD"; fi) > + > RMC_TOOL_SRC := $(wildcard src/*.c) > RMC_TOOL_OBJ := $(patsubst %.c,%.o,$(RMC_TOOL_SRC)) > > @@ -17,7 +19,7 @@ RMC_INSTALL_BIN_PATH := $(RMC_INSTALL_PREFIX)/bin/ > > ALL_OBJS := $(RMC_TOOL_OBJ) $(RMCL_OBJ) $(RSMP_OBJ) > > -CFLAGS := -Wall -O2 -Iinc $(RMC_CFLAGS) > +CFLAGS := -Wall -O2 -I$(TOPDIR)/inc $(RMC_CFLAGS) > > all: rmc librmcl librsmp > > diff --git a/Makefile.efi b/Makefile.efi > index 4c2aada..2af85cb 100644 > --- a/Makefile.efi > +++ b/Makefile.efi > @@ -1,5 +1,7 @@ > # Copyright (C) 2016 Jianxun Zhang <[email protected]> > > +TOPDIR = $(shell if [ -z "$$PWD" ]; then pwd; else echo "$$PWD"; fi) > + > RMCL_SRC :=$(wildcard src/rmcl/*.c) > RMCL_OBJ := $(patsubst %.c,%.efi.o,$(RMCL_SRC)) > > @@ -34,7 +36,7 @@ RMC_INSTALL_LIBS_PATH := $(RMC_INSTALL_PREFIX)/lib/ > SHARED_OBJS := src/util/util.efi.o > ALL_OBJS := $(RMCL_OBJ) $(RSMP_OBJ) $(SHARED_OBJS) > > -CFLAGS := -DRMC_EFI -Wall -O2 -Iinc -fpic -nostdinc -nostdlib -fno-builtin > -std=gnu90 \ > +CFLAGS := -DRMC_EFI -Wall -O2 -I$(TOPDIR)/inc -fpic -nostdinc -nostdlib > -fno-builtin -std=gnu90 \ > -I$(RMC_EFI_HEADER_PREFIX) > -I$(RMC_EFI_HEADER_PREFIX)/$(RMC_EFI_ARCH) $(RMC_CFLAGS)
while this patch improves the situation. It would be better if the package would respect the flags coming from environment and not ignore them as it is doing here and then synthesizing stuff. Are there other compile scenarios where its compiled for non-linux targets as well ? when will RMC_EFI_HEADER_PREFIX not look into sysroot ? if this makefile was accomodating the environment then bitbake rightly sets up CFLAGS for cross compiling. > > all: librmclefi librsmpefi > diff --git a/inc/rmc_types.h b/inc/rmc_types.h > index b6e4521..9154231 100644 > --- a/inc/rmc_types.h > +++ b/inc/rmc_types.h > @@ -7,14 +7,17 @@ > #define INC_RMC_TYPES_H_ > > #ifndef RMC_EFI > +#include <sys/types.h> > #include <stdint.h> > #include <stddef.h> > #include <string.h> > #else > #include <efi.h> > -/* Fixme: we define (s)size_t here for both 32 and 64 bit because gnu-efi > doesn't provide these */ > -typedef uint64_t size_t; > -typedef uint64_t ssize_t; > +/* we specify -nostdinc in C flag and provide these in rmc > + * for EFI applications that don't want to use standard headers. > + */ > +typedef unsigned long size_t; > +typedef long ssize_t; > #endif > > typedef uint8_t BYTE; >
signature.asc
Description: OpenPGP digital signature
-- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
