Compile with OpenEmbedded's SDK

Hi,

I’m trying to build libmcc based program using OpenEmbedded’s SDK. The problem is everytime I include an header file in $(OECORE_TARGET_SYSROOT) I got errors in compilation process. Here is my Makefile

###############################################################################
# Setup project settings
###############################################################################

PROG := app_linux

SRCS = ../../source/main.c
SRCS += ../../source/lib/mcc_a5.c
SRCS += ../../../common/mcc/mcc.c
LIBS = -lmcc

INC = -I../../source/lib    
INC += -I../../../common
INC += -I$(OECORE_TARGET_SYSROOT)/usr/include
INC += -I$(OECORE_TARGET_SYSROOT)/usr/include/linux

# Set flags to the compiler and linker

CFLAGS+=$(INC)
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"

###############################################################################
# This section of Makefile usually needs no change
###############################################################################

# Sets the output filename and objects files
PROG := $(PROG)
OBJS = $(SRCS:.c=.o)
DEPS = $(OBJS:.o=.o.d)

-include $(DEPS)

all: $(PROG)

$(PROG): $(OBJS) Makefile
	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(LDFLAGS)
#	$(STRIP) $@

%.O: %.C
	$(CC) -c $(CFLAGS) -O $@ $<
	$(CC) -MM $(CFLAGS) $< > $@.d

clean:
	$(RM) $(DEPS) $(OBJS) $(PROG)

Following the console output

arm-angstrom-linux-gnueabi-gcc  -march=armv7-a -mthumb  -mthumb-interwork -mfloat-abi=hard -mfpu=neon --sysroot=/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi  -O2 -pipe -g -feliminate-unused-debug-types -I../../source/lib -I../../../common -I/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include -I/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/linux   -c -o ../../source/main.o ../../source/main.c
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:74:0,
                 from ../../source/main.c:45:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/libio.h:306:3: error: unknown type name 'size_t'
   size_t __pad5;
   ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/libio.h:310:67: error: 'size_t' undeclared here (not in a function)
   char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
                                                                   ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/libio.h:338:62: error: expected declaration specifiers or '...' before 'size_t'
 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
                                                              ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/libio.h:347:6: error: expected declaration specifiers or '...' before 'size_t'
      size_t __n);
      ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/libio.h:469:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_IO_sgetn'
 extern _IO_size_t _IO_sgetn (_IO_FILE *, void *, _IO_size_t);
                   ^
In file included from ../../source/main.c:45:0:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:319:35: error: expected declaration specifiers or '...' before 'size_t'
 extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
                                   ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:325:47: error: expected declaration specifiers or '...' before 'size_t'
 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW __wur;
                                               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:337:20: error: expected declaration specifiers or '...' before 'size_t'
       int __modes, size_t __n) __THROW;
                    ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:344:10: error: expected declaration specifiers or '...' before 'size_t'
          size_t __size) __THROW;
          ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:386:44: error: expected declaration specifiers or '...' before 'size_t'
 extern int snprintf (char *__restrict __s, size_t __maxlen,
                                            ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:390:45: error: expected declaration specifiers or '...' before 'size_t'
 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
                                             ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:666:11: error: expected declaration specifiers or '...' before 'size_t'
           size_t *__restrict __n, int __delimiter,
           ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:669:9: error: expected declaration specifiers or '...' before 'size_t'
         size_t *__restrict __n, int __delimiter,
         ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:679:8: error: expected declaration specifiers or '...' before 'size_t'
        size_t *__restrict __n,
        ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:709:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fread'
 extern size_t fread (void *__restrict __ptr, size_t __size,
               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:715:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fwrite'
 extern size_t fwrite (const void *__restrict __ptr, size_t __size,
               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:737:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fread_unlocked'
 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdio.h:739:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fwrite_unlocked'
 extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
               ^
In file included from ../../source/main.c:47:0:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:139:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__ctype_get_mb_cur_max'
 extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
               ^
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/sys/select.h:45:0,
                 from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/sys/types.h:219,
                 from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:314,
                 from ../../source/main.c:47:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/bits/time.h:30:8: error: redefinition of 'struct timeval'
 struct timeval
        ^
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/sys/types.h:132:0,
                 from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:314,
                 from ../../source/main.c:47:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/linux/time.h:15:8: note: originally defined here
 struct timeval {
        ^
In file included from ../../source/main.c:47:0:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:331:4: error: expected declaration specifiers or '...' before 'size_t'
    size_t __statelen) __THROW __nonnull ((2));
    ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:361:4: error: expected declaration specifiers or '...' before 'size_t'
    size_t __statelen,
    ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:466:22: error: expected declaration specifiers or '...' before 'size_t'
 extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
                      ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:468:22: error: expected declaration specifiers or '...' before 'size_t'
 extern void *calloc (size_t __nmemb, size_t __size)
                      ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:468:38: error: expected declaration specifiers or '...' before 'size_t'
 extern void *calloc (size_t __nmemb, size_t __size)
                                      ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:480:36: error: expected declaration specifiers or '...' before 'size_t'
 extern void *realloc (void *__ptr, size_t __size)
                                    ^
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:492:0,
                 from ../../source/main.c:47:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/alloca.h:32:22: error: expected declaration specifiers or '...' before 'size_t'
 extern void *alloca (size_t __size) __THROW;
                      ^
In file included from ../../source/main.c:47:0:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:498:22: error: expected declaration specifiers or '...' before 'size_t'
 extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur;
                      ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:503:45: error: expected declaration specifiers or '...' before 'size_t'
 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
                                             ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:503:65: error: expected declaration specifiers or '...' before 'size_t'
 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
                                                                 ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:755:9: error: expected declaration specifiers or '...' before 'size_t'
         size_t __nmemb, size_t __size, __compar_fn_t __compar)
         ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:755:25: error: expected declaration specifiers or '...' before 'size_t'
         size_t __nmemb, size_t __size, __compar_fn_t __compar)
                         ^
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:759:0,
                 from ../../source/main.c:47:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/bits/stdlib-bsearch.h:20:49: error: expected declaration specifiers or '...' before 'size_t'
 bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
                                                 ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/bits/stdlib-bsearch.h:20:65: error: expected declaration specifiers or '...' before 'size_t'
 bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
                                                                 ^
In file included from ../../source/main.c:47:0:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:764:34: error: expected declaration specifiers or '...' before 'size_t'
 extern void qsort (void *__base, size_t __nmemb, size_t __size,
                                  ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:764:50: error: expected declaration specifiers or '...' before 'size_t'
 extern void qsort (void *__base, size_t __nmemb, size_t __size,
                                                  ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:843:6: error: expected declaration specifiers or '...' before 'size_t'
      size_t __len) __THROW __nonnull ((3, 4, 5));
      ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:846:6: error: expected declaration specifiers or '...' before 'size_t'
      size_t __len) __THROW __nonnull ((3, 4, 5));
      ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:850:31: error: expected declaration specifiers or '...' before 'size_t'
       char *__restrict __buf, size_t __len)
                               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:854:31: error: expected declaration specifiers or '...' before 'size_t'
       char *__restrict __buf, size_t __len)
                               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:862:36: error: expected declaration specifiers or '...' before 'size_t'
 extern int mblen (const char *__s, size_t __n) __THROW;
                                    ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:865:20: error: unknown type name 'wchar_t'
 extern int mbtowc (wchar_t *__restrict __pwc,
                    ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:866:34: error: expected declaration specifiers or '...' before 'size_t'
      const char *__restrict __s, size_t __n) __THROW;
                                  ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:869:31: error: unknown type name 'wchar_t'
 extern int wctomb (char *__s, wchar_t __wchar) __THROW;
                               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:873:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'mbstowcs'
 extern size_t mbstowcs (wchar_t *__restrict  __pwcs,
               ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:876:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'wcstombs'
 extern size_t wcstombs (char *__restrict __s,
               ^
In file included from ../../source/main.c:49:0:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/pthread.h:308:11: error: expected declaration specifiers or '...' before 'size_t'
           size_t *__guardsize)
           ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/pthread.h:313:11: error: expected declaration specifiers or '...' before 'size_t'
           size_t __guardsize)
           ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/pthread.h:371:19: error: expected declaration specifiers or '...' before 'size_t'
           __attr, size_t *__restrict __stacksize)
                   ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/pthread.h:378:11: error: expected declaration specifiers or '...' before 'size_t'
           size_t __stacksize)
           ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/pthread.h:385:7: error: expected declaration specifiers or '...' before 'size_t'
       size_t *__restrict __stacksize)
       ^
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/pthread.h:392:7: error: expected declaration specifiers or '...' before 'size_t'
       size_t __stacksize) __THROW __nonnull ((1));
       ^
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/linux/signal.h:4:0,
                 from ../../source/main.c:50:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/asm/signal.h:12:23: error: conflicting types for 'sigset_t'
 typedef unsigned long sigset_t;
                       ^
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/sys/types.h:219:0,
                 from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:314,
                 from ../../source/main.c:47:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/sys/select.h:37:20: note: previous declaration of 'sigset_t' was here
 typedef __sigset_t sigset_t;
                    ^
In file included from /usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/linux/signal.h:4:0,
                 from ../../source/main.c:50:
/usr/local/oecore-x86_64/sysroots/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/usr/include/asm/signal.h:112:2: error: expected specifier-qualifier-list before 'size_t'
  size_t ss_size;
  ^
make: ** [../../source/main.o] Erro 1

Thanks for any help

I solved this problem don’t putting in search path /sysroot/usr/local (the compiler looks by default) and changing in source file:

#include "mcc_config.h" - > #include "linux/mcc_config.h"
#include "mcc_common.h" -> #include "linux/mcc_common.h"

Now everything works fine.