Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v5 2/2] Patch to assembler to strip LOCK prefix.
@ 2015-10-02 11:49 Kinsella, Ray
  2015-10-04 18:15 ` Arnout Vandecappelle
  0 siblings, 1 reply; 5+ messages in thread
From: Kinsella, Ray @ 2015-10-02 11:49 UTC (permalink / raw)
  To: buildroot

The lock prefix is usually stripped by passing to the compiler
-Wa,momit-lock-prefix=yes via EXTRA_CFLAGS. However I couldn't find
a way to get buildroot to pass CFLAGS/EXTRA_CFLAGS around.

I tried using BR2_TARGET_OPTIMIZATION, and creating a new processor type
but the flag kept stripping it out. I found the most reliable way to 
achieve the behavior was to make stripping the LOCK prefix the assembler's 
default behavior, hence the patch

Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
---
 .../galileo/patches/binutils/2.25/default-lock-prefix.patch   | 11 +++++++++++
 1 file changed, 11 insertions(+)
 create mode 100644 board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch

diff --git a/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch b/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
new file mode 100644
index 0000000..7814ae4
--- /dev/null
+++ b/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
@@ -0,0 +1,11 @@
+--- a/gas/config/tc-i386.orig	2015-07-24 15:54:51.359080778 +0100
++++ b/gas/config/tc-i386.c	2015-07-24 15:54:59.692192247 +0100
+@@ -545,7 +545,7 @@ static int allow_index_reg = 0;
+ 
+ /* 1 if the assembler should ignore LOCK prefix, even if it was
+    specified explicitly.  */
+-static int omit_lock_prefix = 0;
++static int omit_lock_prefix = 1;
+ 
+ static enum check_kind
+   {
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 2/2] Patch to assembler to strip LOCK prefix.
  2015-10-02 11:49 [Buildroot] [PATCH v5 2/2] Patch to assembler to strip LOCK prefix Kinsella, Ray
@ 2015-10-04 18:15 ` Arnout Vandecappelle
  2015-10-07  9:53   ` Kinsella, Ray
  0 siblings, 1 reply; 5+ messages in thread
From: Arnout Vandecappelle @ 2015-10-04 18:15 UTC (permalink / raw)
  To: buildroot

 Hi Ray,

On 02-10-15 12:49, Kinsella, Ray wrote:
> The lock prefix is usually stripped by passing to the compiler
> -Wa,momit-lock-prefix=yes via EXTRA_CFLAGS. However I couldn't find
> a way to get buildroot to pass CFLAGS/EXTRA_CFLAGS around.
> 
> I tried using BR2_TARGET_OPTIMIZATION, and creating a new processor type
> but the flag kept stripping it out. I found the most reliable way to 
> achieve the behavior was to make stripping the LOCK prefix the assembler's 
> default behavior, hence the patch

 We now have a toolchain wrapper both for internal and external toolchains. This
will allow you to reliably pass options to the compiler. So we'd preferably use
that approach.

 Also, we think it's worthwhile to add a new subarchitecture for the Quark in
arch/Config.in.x86. This should set the arch and tune options to i586, but the
toolchain wrapper can then carry an option that adds -Wa,-momit-lock-prefix=yes.
This also fixes the problem for external toolchains.

 So the proposal is that you create a first patch that adds BR2_x86_quark and
adds -Wa,-momit-lock-prefix=yes, and then a second patch that adds the Galileo2
defconfig.

 I have now marked both patches as Changes Requested in out patch tracking
system, so please resubmit a new version that fixes the above comments,
otherwise we'll forget about your contribution.


 Regards,
 Arnout


> Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
> ---
>  .../galileo/patches/binutils/2.25/default-lock-prefix.patch   | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>  create mode 100644 board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
> 
> diff --git a/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch b/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
> new file mode 100644
> index 0000000..7814ae4
> --- /dev/null
> +++ b/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
> @@ -0,0 +1,11 @@
> +--- a/gas/config/tc-i386.orig	2015-07-24 15:54:51.359080778 +0100
> ++++ b/gas/config/tc-i386.c	2015-07-24 15:54:59.692192247 +0100
> +@@ -545,7 +545,7 @@ static int allow_index_reg = 0;
> + 
> + /* 1 if the assembler should ignore LOCK prefix, even if it was
> +    specified explicitly.  */
> +-static int omit_lock_prefix = 0;
> ++static int omit_lock_prefix = 1;
> + 
> + static enum check_kind
> +   {
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 2/2] Patch to assembler to strip LOCK prefix.
  2015-10-04 18:15 ` Arnout Vandecappelle
@ 2015-10-07  9:53   ` Kinsella, Ray
  2015-10-07 10:09     ` Baruch Siach
  2015-10-07 22:09     ` Arnout Vandecappelle
  0 siblings, 2 replies; 5+ messages in thread
From: Kinsella, Ray @ 2015-10-07  9:53 UTC (permalink / raw)
  To: buildroot

Hi Arnout,

On Sun, 2015-10-04 at 19:15 +0100, Arnout Vandecappelle wrote:
>  We now have a toolchain wrapper both for internal and external toolchains. This
> will allow you to reliably pass options to the compiler. So we'd preferably use
> that approach.

Ok - I will investigate - any examples I can look at?

>  Also, we think it's worthwhile to add a new subarchitecture for the Quark in
> arch/Config.in.x86. This should set the arch and tune options to i586, but the
> toolchain wrapper can then carry an option that adds -Wa,-momit-lock-prefix=yes.
> This also fixes the problem for external toolchains.

Ok - I actually proto-typed this and I couldn't get it to work reliably,
hence the nasty patch.
I should have it on a branch (I hope), I can dust it off. 

>  So the proposal is that you create a first patch that adds BR2_x86_quark and
> adds -Wa,-momit-lock-prefix=yes, and then a second patch that adds the Galileo2
> defconfig.

ok 

>  I have now marked both patches as Changes Requested in out patch tracking
> system, so please resubmit a new version that fixes the above comments,
> otherwise we'll forget about your contribution.

ok - will followup.
(is the patch tracking system public?)

Ray K

> 
>  Regards,
>  Arnout
> 
> 
> > Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
> > ---
> >  .../galileo/patches/binutils/2.25/default-lock-prefix.patch   | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >  create mode 100644 board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
> > 
> > diff --git a/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch b/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
> > new file mode 100644
> > index 0000000..7814ae4
> > --- /dev/null
> > +++ b/board/intel/galileo/patches/binutils/2.25/default-lock-prefix.patch
> > @@ -0,0 +1,11 @@
> > +--- a/gas/config/tc-i386.orig	2015-07-24 15:54:51.359080778 +0100
> > ++++ b/gas/config/tc-i386.c	2015-07-24 15:54:59.692192247 +0100
> > +@@ -545,7 +545,7 @@ static int allow_index_reg = 0;
> > + 
> > + /* 1 if the assembler should ignore LOCK prefix, even if it was
> > +    specified explicitly.  */
> > +-static int omit_lock_prefix = 0;
> > ++static int omit_lock_prefix = 1;
> > + 
> > + static enum check_kind
> > +   {
> > 
> 
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 2/2] Patch to assembler to strip LOCK prefix.
  2015-10-07  9:53   ` Kinsella, Ray
@ 2015-10-07 10:09     ` Baruch Siach
  2015-10-07 22:09     ` Arnout Vandecappelle
  1 sibling, 0 replies; 5+ messages in thread
From: Baruch Siach @ 2015-10-07 10:09 UTC (permalink / raw)
  To: buildroot

Hi Ray,

On Wed, Oct 07, 2015 at 09:53:05AM +0000, Kinsella, Ray wrote:
> On Sun, 2015-10-04 at 19:15 +0100, Arnout Vandecappelle wrote:
> >  I have now marked both patches as Changes Requested in out patch tracking
> > system, so please resubmit a new version that fixes the above comments,
> > otherwise we'll forget about your contribution.
> 
> ok - will followup.
> (is the patch tracking system public?)

See http://patchwork.ozlabs.org/project/buildroot/list/.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 2/2] Patch to assembler to strip LOCK prefix.
  2015-10-07  9:53   ` Kinsella, Ray
  2015-10-07 10:09     ` Baruch Siach
@ 2015-10-07 22:09     ` Arnout Vandecappelle
  1 sibling, 0 replies; 5+ messages in thread
From: Arnout Vandecappelle @ 2015-10-07 22:09 UTC (permalink / raw)
  To: buildroot

On 07-10-15 10:53, Kinsella, Ray wrote:
> Hi Arnout,
> 
> On Sun, 2015-10-04 at 19:15 +0100, Arnout Vandecappelle wrote:
>>  We now have a toolchain wrapper both for internal and external toolchains. This
>> will allow you to reliably pass options to the compiler. So we'd preferably use
>> that approach.
> 
> Ok - I will investigate - any examples I can look at?
> 
>>  Also, we think it's worthwhile to add a new subarchitecture for the Quark in
>> arch/Config.in.x86. This should set the arch and tune options to i586, but the
>> toolchain wrapper can then carry an option that adds -Wa,-momit-lock-prefix=yes.
>> This also fixes the problem for external toolchains.
> 
> Ok - I actually proto-typed this and I couldn't get it to work reliably,
> hence the nasty patch.

 Should be fairly simple with the toolchain wrapper. I think it it best to
refactor toolchain/toolchain-wrapper.mk a little to create a new variable to
contain the BR_ADDITIONAL_CFLAGS, and then conditionally add the -Wa,-momit-...
option to it.

> I should have it on a branch (I hope), I can dust it off. 
> 
>>  So the proposal is that you create a first patch that adds BR2_x86_quark and
>> adds -Wa,-momit-lock-prefix=yes, and then a second patch that adds the Galileo2
>> defconfig.
> 
> ok 
> 
>>  I have now marked both patches as Changes Requested in out patch tracking
>> system, so please resubmit a new version that fixes the above comments,
>> otherwise we'll forget about your contribution.
> 
> ok - will followup.
> (is the patch tracking system public?)

http://patchwork.ozlabs.org/project/buildroot/list/

 If you create a login with the same email address as the one you send patches
from, then you can update the state of your own patches (e.g. mark them as
Superseded when you send a new version).

 Regards,
 Arnout


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-07 22:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-02 11:49 [Buildroot] [PATCH v5 2/2] Patch to assembler to strip LOCK prefix Kinsella, Ray
2015-10-04 18:15 ` Arnout Vandecappelle
2015-10-07  9:53   ` Kinsella, Ray
2015-10-07 10:09     ` Baruch Siach
2015-10-07 22:09     ` Arnout Vandecappelle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox