2015-03-05 16:08, Tetsuya Mukawa: > On 2015/03/04 19:15, Bruce Richardson wrote: > > On Wed, Mar 04, 2015 at 10:33:14AM +0100, Olivier MATZ wrote: > >> Hi Tetsuya, Hi Bruce, > >> > >> On 03/04/2015 04:34 AM, Tetsuya Mukawa wrote: > >>> On 2015/03/02 19:22, Bruce Richardson wrote: > >>>> On Mon, Mar 02, 2015 at 12:47:42PM +0900, Tetsuya Mukawa wrote: > >>>>> Hi, > >>>>> > >>>>> I got a error while building master branch on FreeBSD. > >>>>> Here is a log. > >>>>> > >>>>> $ gmake T=x86_64-native-bsdapp-clang config > >>>>> cc: error: unknown argument: '-fdirectives-only' > >>>>> cp: /usr/home/mukawa/work/dpdk/build/.config_tmp: No such file or > >>>>> directory > >>>>> cp: /usr/home/mukawa/work/dpdk/build/.config_tmp: No such file or > >>>>> directory > >>>>> gmake[3]: Nothing to be done for 'depdirs'. > >>>>> Configuration done > >>>>> > >>>>> > >>>>> Here is log came from 'uname' > >>>>> > >>>>> $ uname -a > >>>>> FreeBSD eris.hq.igel.co.jp 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: > >>>>> Tue Nov 11 21:02:49 UTC 2014 > >>>>> > >>>>> > >>>>> I've tried to remove '-fdirectives-only' from mk/rte.sdkconfig.mk like > >>>>> below. > >>>>> With the fixing, It seems I can compile and run testpmd. > >>>>> (Obviously, we should not merge below patch, but I've done just for > >>>>> testing) > >>>>> > >>>>> diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk > >>>>> index d43c430..f8d95b1 100644 > >>>>> --- a/mk/rte.sdkconfig.mk > >>>>> +++ b/mk/rte.sdkconfig.mk > >>>>> @@ -75,7 +75,7 @@ else > >>>>> $(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE | $(RTE_OUTPUT) > >>>>> $(Q)if [ "$(RTE_CONFIG_TEMPLATE)" != "" -a -f > >>>>> "$(RTE_CONFIG_TEMPLATE)" ]; then \ > >>>>> $(CPP) -undef -P -x assembler-with-cpp \ > >>>>> - -fdirectives-only -ffreestanding \ > >>>>> + -ffreestanding \ > >>>>> -o $(RTE_OUTPUT)/.config_tmp $(RTE_CONFIG_TEMPLATE) ; \ > >>>>> if ! cmp -s $(RTE_OUTPUT)/.config_tmp > >>>>> $(RTE_OUTPUT)/.config; then \ > >>>>> cp $(RTE_OUTPUT)/.config_tmp > >>>>> $(RTE_OUTPUT)/.config ; \ > >>>>> > >>>>> > >>>>> Also, I've checked /usr/ports/net/dpdk, and found below line. > >>>>> (It seems above ports dpdk package is based on DPDK-1.8.) > >>>>> > >>>>> > >>>>> $(CPP) -undef -P -x assembler-with-cpp \ > >>>>> -ffreestanding \ > >>>>> -o $(RTE_OUTPUT)/.config_tmp $(RTE_CONFIG_TEMPLATE) ; \ > >>>>> > >>>>> So, I guess we should not add '-fdirectives-only' for flags of $(CPP) > >>>>> for BSD system like dpdk package of ports. > >>>>> > >>>>> Thanks, > >>>>> Tetsuya > >>>>> > >>>> Yes, that is correct. In most cases I have tested, the extra flag only > >>>> gives a > >>>> warning but it appears its now an error. We should conditionally include > >>>> or > >>>> omit the flag for BSD vs Linux, I think. > >>>> > >>>> /Bruce > >>> Hi Bruce, > >>> > >>> It seems we cannot use CONFIG_RTE_EXEC_ENV_LINUXAPP/BSDAPP definition > >>> here. > >>> Now I am looking for other way to check target OS. > >>> Is it not so good to use $(T) definition value here? > >> Indeed, it seems that the -fdirectives-only option does not exist in > >> freebsd. This is probably because the default cpp is not GNU cpp: > >> > >> On my version, I have: > >> FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610 > >> Target: x86_64-unknown-freebsd10.0 > >> Thread model: posix > >> > >> To decide whether using the option, we could check the return value of > >> cpp -fdirectives-only /dev/null > /dev/null 2>/dev/null > > It?s a great idea. > > >> But I don't really think it's an issue to remove the option for all > >> OSes. In my opinion, expanding macros when parsing the config files > >> won't add any issue, and it's probably better to have no differences > >> between FreeBSD and Linux. > >> > >> Regards, > >> Olivier > >> > > +1 > > I was just going to suggest that this morning! :-) > > Thanks for suggestions. > I will send a patch that just removes '-fdirectives-only'.
Fixed in http://dpdk.org/browse/dpdk/commit/?id=64702e5f6ff68bff Thanks