[dpdk-dev] build: set CFLAGS for ppc64el build

Message ID 1455296713-7417-1-git-send-email-ferseiti@linux.vnet.ibm.com (mailing list archive)
State Rejected, archived
Headers

Commit Message

Fernando Seiti Furusato Feb. 12, 2016, 5:05 p.m. UTC
  Add a proper ifeq statement to set the mcpu as needed for ppc64el, as
the only one originally set is not valid for ppc architectures.

Signed-off-by: Fernando Seiti Furusato <ferseiti@linux.vnet.ibm.com>
---
 mk/machine/default/rte.vars.mk | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
  

Comments

Thomas Monjalon Feb. 12, 2016, 5:37 p.m. UTC | #1
2016-02-12 12:05, Fernando Seiti Furusato:
> Add a proper ifeq statement to set the mcpu as needed for ppc64el, as
> the only one originally set is not valid for ppc architectures.

What is the benefit of using the default machine config, compared to
the power8 one?

Don't you think the default machine should be renamed core2?

[...]
> +ifeq (ppc64le,$(shell uname -m))
> +        MACHINE_CFLAGS += -mcpu=power8

Why this flag is not set in mk/machine/power8/rte.vars.mk ?
  
Fernando Seiti Furusato Feb. 12, 2016, 7:18 p.m. UTC | #2
Hello Thomas.
Thanks for your quick response.

On 02/12/2016 03:37 PM, Thomas Monjalon wrote:
> 2016-02-12 12:05, Fernando Seiti Furusato:
>> Add a proper ifeq statement to set the mcpu as needed for ppc64el, as
>> the only one originally set is not valid for ppc architectures.
>
> What is the benefit of using the default machine config, compared to
> the power8 one?
>
> Don't you think the default machine should be renamed core2?

I think it would be better indeed. Thanks for pointing that out.

>
> [...]
>> +ifeq (ppc64le,$(shell uname -m))
>> +        MACHINE_CFLAGS += -mcpu=power8
>
> Why this flag is not set in mk/machine/power8/rte.vars.mk ?
>

This and what observed above would make a better patch.
Let me try those.

Thanks!
  
Fernando Seiti Furusato Feb. 16, 2016, 6:04 p.m. UTC | #3
Hi Thomas.

On 02/12/2016 05:18 PM, Fernando Seiti Furusato wrote:
> Hello Thomas.
> Thanks for your quick response.
>
> On 02/12/2016 03:37 PM, Thomas Monjalon wrote:
>> 2016-02-12 12:05, Fernando Seiti Furusato:
>>> Add a proper ifeq statement to set the mcpu as needed for ppc64el, as
>>> the only one originally set is not valid for ppc architectures.
>>
>> What is the benefit of using the default machine config, compared to
>> the power8 one?
>>
>> Don't you think the default machine should be renamed core2?
>
> I think it would be better indeed. Thanks for pointing that out.
>
>>
>> [...]
>>> +ifeq (ppc64le,$(shell uname -m))
>>> +        MACHINE_CFLAGS += -mcpu=power8
>>
>> Why this flag is not set in mk/machine/power8/rte.vars.mk ?
>>
>
> This and what observed above would make a better patch.
> Let me try those.

I will be just changing the flag within mk/machine/power8/rte.vars.mk so
it will be used on ppc64le.
I thought since I am not sure how it will affect others, I will not mess
with the default file.

I had to copy config/defconfig_ppc_64-power8-linuxapp-gcc to
config/defconfig_ppc64le-native-linuxapp-gcc, because the build searches
for it on ppc64le. Should I include that in the patch?
Do you think there is a better approach?

Thanks and regards.
  
Thomas Monjalon Feb. 16, 2016, 6:09 p.m. UTC | #4
2016-02-16 16:04, Fernando Seiti Furusato:
> Hi Thomas.
> 
> On 02/12/2016 05:18 PM, Fernando Seiti Furusato wrote:
> > Hello Thomas.
> > Thanks for your quick response.
> >
> > On 02/12/2016 03:37 PM, Thomas Monjalon wrote:
> >> 2016-02-12 12:05, Fernando Seiti Furusato:
> >>> Add a proper ifeq statement to set the mcpu as needed for ppc64el, as
> >>> the only one originally set is not valid for ppc architectures.
> >>
> >> What is the benefit of using the default machine config, compared to
> >> the power8 one?
> >>
> >> Don't you think the default machine should be renamed core2?
> >
> > I think it would be better indeed. Thanks for pointing that out.
> >
> >>
> >> [...]
> >>> +ifeq (ppc64le,$(shell uname -m))
> >>> +        MACHINE_CFLAGS += -mcpu=power8
> >>
> >> Why this flag is not set in mk/machine/power8/rte.vars.mk ?
> >>
> >
> > This and what observed above would make a better patch.
> > Let me try those.
> 
> I will be just changing the flag within mk/machine/power8/rte.vars.mk so
> it will be used on ppc64le.

Does it mean that only little endian is supported on POWER8?

> I thought since I am not sure how it will affect others, I will not mess
> with the default file.

Yes let's keep it for another patch if someone is concerned.

> I had to copy config/defconfig_ppc_64-power8-linuxapp-gcc to
> config/defconfig_ppc64le-native-linuxapp-gcc, because the build searches
> for it on ppc64le. Should I include that in the patch?
> Do you think there is a better approach?

Not sure to understand.
I think there is something wrong in the commands you use to compile.
Are you using "make config T=ppc_64-power8-linuxapp-gcc" ?
  
Fernando Seiti Furusato Feb. 16, 2016, 7:07 p.m. UTC | #5
On 02/16/2016 04:09 PM, Thomas Monjalon wrote:
> 2016-02-16 16:04, Fernando Seiti Furusato:
>> Hi Thomas.
>>
>> On 02/12/2016 05:18 PM, Fernando Seiti Furusato wrote:
>>> Hello Thomas.
>>> Thanks for your quick response.
>>>
>>> On 02/12/2016 03:37 PM, Thomas Monjalon wrote:
>>>> 2016-02-12 12:05, Fernando Seiti Furusato:
>>>>> Add a proper ifeq statement to set the mcpu as needed for ppc64el, as
>>>>> the only one originally set is not valid for ppc architectures.
>>>>
>>>> What is the benefit of using the default machine config, compared to
>>>> the power8 one?
>>>>
>>>> Don't you think the default machine should be renamed core2?
>>>
>>> I think it would be better indeed. Thanks for pointing that out.
>>>
>>>>
>>>> [...]
>>>>> +ifeq (ppc64le,$(shell uname -m))
>>>>> +        MACHINE_CFLAGS += -mcpu=power8
>>>>
>>>> Why this flag is not set in mk/machine/power8/rte.vars.mk ?
>>>>
>>>
>>> This and what observed above would make a better patch.
>>> Let me try those.
>>
>> I will be just changing the flag within mk/machine/power8/rte.vars.mk so
>> it will be used on ppc64le.
>
> Does it mean that only little endian is supported on POWER8?

Not exactly. It is just that I work mainly on LE.
It would probably work on big endian too.

>
>> I thought since I am not sure how it will affect others, I will not mess
>> with the default file.
>
> Yes let's keep it for another patch if someone is concerned.
>
>> I had to copy config/defconfig_ppc_64-power8-linuxapp-gcc to
>> config/defconfig_ppc64le-native-linuxapp-gcc, because the build searches
>> for it on ppc64le. Should I include that in the patch?
>> Do you think there is a better approach?
>
> Not sure to understand.
> I think there is something wrong in the commands you use to compile.
> Are you using "make config T=ppc_64-power8-linuxapp-gcc" ?
>

Nah, never mind about this one. You are right, I messed it up.
I copied the line from what was generated by debian/rules on the ubuntu package.

Thanks.
  

Patch

diff --git a/mk/machine/default/rte.vars.mk b/mk/machine/default/rte.vars.mk
index 53c6af6..77b4065 100644
--- a/mk/machine/default/rte.vars.mk
+++ b/mk/machine/default/rte.vars.mk
@@ -55,4 +55,8 @@ 
 # CPU_LDFLAGS =
 # CPU_ASFLAGS =
 
-MACHINE_CFLAGS += -march=core2
+ifeq (ppc64le,$(shell uname -m))
+        MACHINE_CFLAGS += -mcpu=power8
+else
+        MACHINE_CFLAGS += -march=core2
+endif