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:	Mon, 10 Dec 2012 15:41:23 +0530
From:	Vineet Gupta <Vineet.Gupta1@...opsys.com>
To:	Michal Marek <mmarek@...e.cz>
CC:	Noam Camus <noamc@...hip.com>,
	"linux-kbuild@...r.kernel.org" <linux-kbuild@...r.kernel.org>,
	<linux-kernel@...r.kernel.org>, Arnd Bergmann <arnd@...db.de>
Subject: Re: Makefile race between jobs

On Monday 10 December 2012 03:15 PM, Michal Marek wrote:
> On Mon, Dec 10, 2012 at 11:02:25AM +0200, Noam Camus wrote:
>> Target "scripts_basic" by itself is indeed not creating the dependency issue.
>> The relevant target is "scripts".
>> Sorry for the confusion, thanks for the example.
>> So I call target "defconfig" and then I call target "vmlinux" which by dependency calls target "scripts", e.g.:
>> $ make ARCH=arc O=/dev/shm/_build/ defconfig scripts
>>   HOSTCC  scripts/basic/fixdep
>>   GEN     /dev/shm/_build/Makefile
>>   HOSTCC  scripts/kconfig/conf.o
>>   SHIPPED scripts/kconfig/zconf.tab.c
>>   SHIPPED scripts/kconfig/zconf.lex.c
>>   SHIPPED scripts/kconfig/zconf.hash.c
>>   HOSTCC  scripts/kconfig/zconf.tab.o
>>   HOSTLD  scripts/kconfig/conf
>> #
>> # configuration written to .config
>> #
>>   GEN     /dev/shm/_build/Makefile
>> scripts/kconfig/conf --silentoldconfig Kconfig
>>   CC      scripts/mod/empty.o
>> In file included from /tmp/linux/include/linux/thread_info.h:10,
>>                  from /tmp/linux/arch/arc/include/asm/current.h:24,
>>                  from <command-line>:0:
>> /tmp/linux/include/linux/types.h:4:23: error: asm/types.h: No such file or directory
>>
>> The inclusion of asm/current.h comes from use of LINUXINCLUDE in my
>> architecture Makefile.
>> And asm/types.h is missing since it suppose to be created by target
>> "asm-generic".
> 
> OK, so there is a new architecture 'arc' that adds '-include asm/current.h'
> to global cflags in arch/arc/Makefile. Added Arnd to CC.
> 
> 
>> I think the point here that I try to emphasize is that target
>> "asm-generic" should be completed before any non-host source is
>> compiled.
>> In our case scripts/mod/empty.c is the first non-host source to be
>> compiled and by bad coincidence it depends upon auto generated
>> headers.
> 
> I see the problem now. However, so far, no other architecture has been
> doing this. 'grep -e -include arch/*/Makefile' shows only one instance
> in arch/arm, but that include is a static file with no dependencies. Is
> it really necessary to include asm/current.h when compiling _every_
> file?

ARC Port caches current task pointer in a register - thus we have a
global asm register definition in current.h
In the past, a customer ran into issue when porting some "really
portable" code to kernel - such that asm/current.h didn't make it into
the build of their module - via normal header includes - strange but
true. Thus forcing current.h via way of -include seemed like a
safe/sensible way.


 Sure, you get it via many common headers, but then you don't need
> to add it explicitly :). But if Arnd thinks this is OK, I will merge a
> patch that serializes scripts/mod/empty.o and asm-generic.
> 
> Michal
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists