This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Remove a CFLAG for one .c file (How to compile only one file in no-thumb mode)
- From: John Dallaway <john at dallaway dot org dot uk>
- To: Martin Laabs <martin dot laabs at mailbox dot tu-dresden dot de>
- Cc: eCos Discuss <ecos-discuss at ecos dot sourceware dot org>
- Date: Mon, 28 May 2012 14:15:24 +0100
- Subject: [ECOS] Re: Remove a CFLAG for one .c file (How to compile only one file in no-thumb mode)
- References: <4FC35C30.2080707@mailbox.tu-dresden.de>
Hi Martin
Martin Laabs wrote:
> i have one (inline asm intensive) file in my arm hal package that I do
> not want to convert to thumb mode. (This is IMHO for some i.e. cache
> functionality even impossible.)
> Since I have thumb-interwork enabled I wanna compile this file in arm
> mode and the rest of the kernel in thumb mode.
> For the whole file I could use the CFLAG_REMOVE functionality from cdl.
> However - I'd like to remove the -mthumb flag only for one file.
>
> I could use the make { ... } function from cdl. But to stay consistent
> wit the rest I would like to use the gcc flags that are configured in
> the configtool. So just make the object with hardcorded flags is one but
> a unattractive option.
>
> So I would like something like this in my cdl file:
>
> {
> CFLAGS_REMOVE="-mthumb
> compile cstx01_misc.c
> }
>
> Do you have an idea how to accomplish this?
You should be able to build the file using a CDL make_object rule as
follows (untested):
> make_object {
> cstx01_misc.o : cstx01_misc.c
> $(CC) $(INCLUDE_FLAGS) $(filter-out -mthumb, $(ACTUAL_CFLAGS)) -c -o $@ $<
> }
You will need to remove the file from the regular CDL "compile" list.
I hope this helps...
John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss