[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to build proper "user" emdebian packages



> > My question is now how to generate a proper emdebian package. I
> > successfully compiled a simple hello world app and it worked on the
> > target device.

> A package is generated by emsource, but things are little stalled at
> the moment and Neil, doing most part of this work wants to do the code
> audit and change the way crush builds, more towards to what grip does.
> See
> http://wiki.debian.org/EmdebianQuickStart
> http://wiki.debian.org/EmdebianCodeAudit

> >The header <stdio.h> is used there and the c file is
> > simply compiled with arm-linux-gnu. I guess the default stdio.h
header
> > from the development system is used then instead of the emdebian
> > specific one?

> The header files are under /usr/$triplet/include, using apt-cross or
> dpkg-cross you can get lots of headers. See
> http://wiki.debian.org/EmdebianToolchain

> > Is there a makefile template for building apps for emdebian crush?

> I do not think we have one. I might be wrong.
Hello Hector,
A part of the application to port to emdebian is a little led deamon. I
start with that one and it simply consists of one C file. The header 
#include <pthread.h> is included in the C-file.

To compile it I use this makefile:
	CROSS_COMPILE	= arm-linux-gnu-

	AS		= $(CROSS_COMPILE)as
	LD		= $(CROSS_COMPILE)ld
	CC		= $(CROSS_COMPILE)gcc


	CFLAGS +=-O0
	CFLAGS +=-I/usr/include

	APP = ledd

	OBJS += ledd.o

	BLD_DIR=$(PWD)

	all: $(APP)


	$(APP): $(OBJS)
		@echo ' '
		@echo 'Building target: $@'
		$(CC)  -o$(APP) $(CFLAGS) $(OBJS) $(LDLIBS)


A make in the project folder:

hoefle@wks02-lin:~/projects/hasler/emdebian_eval/datr_led_daemon$ make
arm-linux-gnu-gcc -O0 -I/usr/include   -c -o ledd.o ledd.c
In file included from ledd.c:23:
/usr/include/pthread.h:653: warning: ‘__regparm__’ attribute directive
ignored
/usr/include/pthread.h:665: warning: ‘__regparm__’ attribute directive
ignored
/usr/include/pthread.h:710: warning: ‘__regparm__’ attribute directive
ignored
 
Building target: ledd
arm-linux-gnu-gcc  -oledd -O0 -I/usr/include ledd.o 
ledd.o: In function `main':
ledd.c:(.text+0x139c): undefined reference to `pthread_create'

Note a "cd /usr/$triplet/include" ends up in /usr/include.
So I suppose the CFLAGS+=-I/usr/include is not correct.
Do you have any Ideas how to proceed?


 




Reply to: