lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 18 Mar 2016 13:45:22 -0300
From:	Arnaldo Carvalho de Melo <acme@...hat.com>
To:	Josh Poimboeuf <jpoimboe@...hat.com>
Cc:	Lucas Stach <l.stach@...gutronix.de>, Jiri Olsa <jolsa@...nel.org>,
	linux-kernel@...r.kernel.org, kernel@...gutronix.de,
	patchwork-lst@...gutronix.de, Wang Nan <wangnan0@...wei.com>,
	acme@...nel.org
Subject: Re: [PATCH] tools lib api: respect CROSS_COMPILE for the linker

Em Fri, Mar 18, 2016 at 11:38:15AM -0500, Josh Poimboeuf escreveu:
> On Fri, Mar 18, 2016 at 01:25:47PM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Mar 17, 2016 at 06:27:50PM +0100, Lucas Stach escreveu:
> > > This fixes cross compilation of libapi.
> > 
> > Humm, I guess that tools/lib/subcmd/Makefile has the same problem? And
> > there are also other cases where LD is not being set with CROSS_COMPILE,
> > Jiri, is there something else at play here?
> > 
> > /me needs to cross compile all this code...
> 
> Yeah, I already fixed the libsubcmd issue with commit c1d45c3abd49 in
> tip/core/objtool.  (Sorry, I probably should have CC'ed you and Jiri.)

Not a problem, it will all get merged eventually, but I noticed this:

-CC = $(CROSS_COMPILE)gcc
-AR = $(CROSS_COMPILE)ar
+CC ?= $(CROSS_COMPILE)gcc
+LD ?= $(CROSS_COMPILE)ld
+AR ?= $(CROSS_COMPILE)ar

This is how you fixed it, which is different from what other places do
for cross compiling, for instance, this is how tools/lib/bpf/Makefile
does (and it isn't setting LD as well):

# Allow setting CC and AR, or setting CROSS_COMPILE as a prefix.
$(call allow-override,CC,$(CROSS_COMPILE)gcc)
$(call allow-override,AR,$(CROSS_COMPILE)ar)

Which is different from what the kernel does in its main Makefile:

# Make variables (CC, etc...)
AS              = $(CROSS_COMPILE)as
LD              = $(CROSS_COMPILE)ld
CC              = $(CROSS_COMPILE)gcc

I wonder if we could settle in one of these styles or if there is really
a reason to be creative :-)

Better, all this could go to tools/scripts/Makefile.include?

- Arnaldo
 
> > > Signed-off-by: Lucas Stach <l.stach@...gutronix.de>
> > > ---
> > >  tools/lib/api/Makefile | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
> > > index d85904dc9b38..9383bb866664 100644
> > > --- a/tools/lib/api/Makefile
> > > +++ b/tools/lib/api/Makefile
> > > @@ -10,6 +10,7 @@ endif
> > >  
> > >  CC = $(CROSS_COMPILE)gcc
> > >  AR = $(CROSS_COMPILE)ar
> > > +LD = $(CROSS_COMPILE)ld
> > >  
> > >  MAKEFLAGS += --no-print-directory
> > >  
> > > -- 
> > > 2.7.0
> 
> -- 
> Josh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ