Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] u-boot-mkimage: fix a building failure on OpenSus
@ 2015-07-28  2:00 rongqing.li
  2015-07-28 11:47 ` Burton, Ross
  0 siblings, 1 reply; 6+ messages in thread
From: rongqing.li @ 2015-07-28  2:00 UTC (permalink / raw)
  To: openembedded-core

From: Roy Li <rongqing.li@windriver.com>

Signed-off-by: Roy Li <rongqing.li@windriver.com>
---
 ...-the-creation-of-include-config-auto.conf.patch | 54 ++++++++++++++++++++++
 meta/recipes-bsp/u-boot/u-boot-mkimage_2015.01.bb  |  1 +
 2 files changed, 55 insertions(+)
 create mode 100644 meta/recipes-bsp/u-boot/u-boot-mkimage/0001-delay-the-creation-of-include-config-auto.conf.patch

diff --git a/meta/recipes-bsp/u-boot/u-boot-mkimage/0001-delay-the-creation-of-include-config-auto.conf.patch b/meta/recipes-bsp/u-boot/u-boot-mkimage/0001-delay-the-creation-of-include-config-auto.conf.patch
new file mode 100644
index 0000000..071aa67
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/u-boot-mkimage/0001-delay-the-creation-of-include-config-auto.conf.patch
@@ -0,0 +1,54 @@
+[PATCH] delay the creation of include/config/auto.conf
+
+Upstream-Statue: Pending
+
+config.mk will be included only if auto.conf is newer than .config
+but in some system, the HPET is not enabled, the smallest unit of
+time is second, and can not decise which file is newer, even if
+the correct dependency has been created.
+
+The below shows unit of time:
+
+under SUSE Linux Enterprise Desktop 11 SP2  (i586):
+    $ls --full-time include/config/auto.conf .config
+    2015-07-27 03:46:20.000000000 -0400 .config
+    2015-07-27 03:46:20.000000000 -0400 include/config/auto.conf
+    $
+
+under Ubuntu 14.04 LTS:
+    $ ls --full-time include/config/auto.conf .config
+    2015-07-27 13:40:14.008703027 +0800 .config
+    2015-07-27 13:40:15.020703054 +0800 include/config/auto.conf
+    $
+
+The rule of including config.mk in Makefile as below
+    autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell find . \
+                    -path ./include/config/auto.conf -newer $(KCONFIG_CONFIG)))
+    ifneq ($(autoconf_is_current),)
+    include $(srctree)/config.mk
+    include $(srctree)/arch/$(ARCH)/Makefile
+    endif
+
+The compilation will be failed if config.mk is not included
+so delay 1 second to create auto.conf after creating of .config
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile b/Makefile
+index 36a9a28..5f085ad 100644
+--- a/Makefile
++++ b/Makefile
+@@ -490,6 +490,7 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
+ # if auto.conf.cmd is missing then we are probably in a cleaned tree so
+ # we execute the config step to be sure to catch updated Kconfig files
+ include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
++	sleep 1; \
+ 	$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
+ 
+ -include include/autoconf.mk
+-- 
+1.9.1
+
diff --git a/meta/recipes-bsp/u-boot/u-boot-mkimage_2015.01.bb b/meta/recipes-bsp/u-boot/u-boot-mkimage_2015.01.bb
index 7735288..c0007c9 100644
--- a/meta/recipes-bsp/u-boot/u-boot-mkimage_2015.01.bb
+++ b/meta/recipes-bsp/u-boot/u-boot-mkimage_2015.01.bb
@@ -14,6 +14,7 @@ PV = "v2015.01+git${SRCPV}"
 
 SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
            file://gcc5.patch \
+           file://0001-delay-the-creation-of-include-config-auto.conf.patch \
 	   "
 
 S = "${WORKDIR}/git"
-- 
1.9.1



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

* Re: [PATCH] u-boot-mkimage: fix a building failure on OpenSus
  2015-07-28  2:00 [PATCH] u-boot-mkimage: fix a building failure on OpenSus rongqing.li
@ 2015-07-28 11:47 ` Burton, Ross
  2015-07-29  1:35   ` Rongqing Li
  2015-07-30  6:26   ` Rongqing Li
  0 siblings, 2 replies; 6+ messages in thread
From: Burton, Ross @ 2015-07-28 11:47 UTC (permalink / raw)
  To: rongqing.li@windriver.com; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 1553 bytes --]

On 28 July 2015 at 03:00, <rongqing.li@windriver.com> wrote:

> +config.mk will be included only if auto.conf is newer than .config
> +but in some system, the HPET is not enabled, the smallest unit of
> +time is second, and can not decise which file is newer, even if
> +the correct dependency has been created.
> +
> +The below shows unit of time:
> +
> +under SUSE Linux Enterprise Desktop 11 SP2  (i586):
> +    $ls --full-time include/config/auto.conf .config
> +    2015-07-27 03:46:20.000000000 -0400 .config
> +    2015-07-27 03:46:20.000000000 -0400 include/config/auto.conf
> +    $
> +
> +under Ubuntu 14.04 LTS:
> +    $ ls --full-time include/config/auto.conf .config
> +    2015-07-27 13:40:14.008703027 +0800 .config
> +    2015-07-27 13:40:15.020703054 +0800 include/config/auto.conf
> +    $
> +
> +The rule of including config.mk in Makefile as below
> +    autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell
> find . \
> +                    -path ./include/config/auto.conf -newer
> $(KCONFIG_CONFIG)))
> +    ifneq ($(autoconf_is_current),)
> +    include $(srctree)/config.mk
> +    include $(srctree)/arch/$(ARCH)/Makefile
> +    endif
> +
> +The compilation will be failed if config.mk is not included
> +so delay 1 second to create auto.conf after creating of .config
>

Adding a sleep seems pretty ugly, wouldn't a neater fix be to change the
logic so that instead of the test being "is newer" you use "is not older",
to handle identical timestamps as being current.

Ross

[-- Attachment #2: Type: text/html, Size: 2327 bytes --]

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

* Re: [PATCH] u-boot-mkimage: fix a building failure on OpenSus
  2015-07-28 11:47 ` Burton, Ross
@ 2015-07-29  1:35   ` Rongqing Li
  2015-07-30  6:26   ` Rongqing Li
  1 sibling, 0 replies; 6+ messages in thread
From: Rongqing Li @ 2015-07-29  1:35 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core



On 2015年07月28日 19:47, Burton, Ross wrote:
>
> On 28 July 2015 at 03:00, <rongqing.li@windriver.com
> <mailto:rongqing.li@windriver.com>> wrote:
>
>     +config.mk <http://config.mk> will be included only if auto.conf is
>     newer than .config
>     +but in some system, the HPET is not enabled, the smallest unit of
>     +time is second, and can not decise which file is newer, even if
>     +the correct dependency has been created.
>     +
>     +The below shows unit of time:
>     +
>     +under SUSE Linux Enterprise Desktop 11 SP2  (i586):
>     +    $ls --full-time include/config/auto.conf .config
>     +    2015-07-27 03:46:20.000000000 -0400 .config
>     +    2015-07-27 03:46:20.000000000 -0400 include/config/auto.conf
>     +    $
>     +
>     +under Ubuntu 14.04 LTS:
>     +    $ ls --full-time include/config/auto.conf .config
>     +    2015-07-27 13:40:14.008703027 +0800 .config
>     +    2015-07-27 13:40:15.020703054 +0800 include/config/auto.conf
>     +    $
>     +
>     +The rule of including config.mk <http://config.mk> in Makefile as below
>     +    autoconf_is_current := $(if $(wildcard
>     $(KCONFIG_CONFIG)),$(shell find . \
>     +                    -path ./include/config/auto.conf -newer
>     $(KCONFIG_CONFIG)))
>     +    ifneq ($(autoconf_is_current),)
>     +    include $(srctree)/config.mk <http://config.mk>
>     +    include $(srctree)/arch/$(ARCH)/Makefile
>     +    endif
>     +
>     +The compilation will be failed if config.mk <http://config.mk> is
>     not included
>     +so delay 1 second to create auto.conf after creating of .config
>
>
> Adding a sleep seems pretty ugly, wouldn't a neater fix be to change the
> logic so that instead of the test being "is newer" you use "is not
> older", to handle identical timestamps as being current.
>

I am not sure if your suggestion works, Since "is newer" is to fix something
as the comments in Makefile said

---------------------------------------------------------------------------
# We want to include arch/$(ARCH)/config.mk only when 
include/config/auto.conf
# is up-to-date. When we switch to a different board configuration, old 
CONFIG
# macros are still remaining in include/config/auto.conf. Without the 
following
# gimmick, wrong config.mk would be included leading nasty warnings/errors.
ifneq ($(wildcard $(KCONFIG_CONFIG)),)
ifneq ($(wildcard include/config/auto.conf),)
autoconf_is_old := $(shell find . -path ./$(KCONFIG_CONFIG) -newer \
                                                 include/config/auto.conf)
ifeq ($(autoconf_is_old),)
include $(srctree)/config.mk
include $(srctree)/arch/$(ARCH)/Makefile
endif
endif
endif


-Roy


> Ross

-- 
Best Reagrds,
Roy | RongQing Li


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

* Re: [PATCH] u-boot-mkimage: fix a building failure on OpenSus
  2015-07-28 11:47 ` Burton, Ross
  2015-07-29  1:35   ` Rongqing Li
@ 2015-07-30  6:26   ` Rongqing Li
  2015-07-30 11:37     ` Otavio Salvador
  1 sibling, 1 reply; 6+ messages in thread
From: Rongqing Li @ 2015-07-30  6:26 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core



On 2015年07月28日 19:47, Burton, Ross wrote:
>
> On 28 July 2015 at 03:00, <rongqing.li@windriver.com
> <mailto:rongqing.li@windriver.com>> wrote:
>
>     +config.mk <http://config.mk> will be included only if auto.conf is
>     newer than .config
>     +but in some system, the HPET is not enabled, the smallest unit of
>     +time is second, and can not decise which file is newer, even if
>     +the correct dependency has been created.
>     +
>     +The below shows unit of time:
>     +
>     +under SUSE Linux Enterprise Desktop 11 SP2  (i586):
>     +    $ls --full-time include/config/auto.conf .config
>     +    2015-07-27 03:46:20.000000000 -0400 .config
>     +    2015-07-27 03:46:20.000000000 -0400 include/config/auto.conf
>     +    $
>     +
>     +under Ubuntu 14.04 LTS:
>     +    $ ls --full-time include/config/auto.conf .config
>     +    2015-07-27 13:40:14.008703027 +0800 .config
>     +    2015-07-27 13:40:15.020703054 +0800 include/config/auto.conf
>     +    $
>     +
>     +The rule of including config.mk <http://config.mk> in Makefile as below
>     +    autoconf_is_current := $(if $(wildcard
>     $(KCONFIG_CONFIG)),$(shell find . \
>     +                    -path ./include/config/auto.conf -newer
>     $(KCONFIG_CONFIG)))
>     +    ifneq ($(autoconf_is_current),)
>     +    include $(srctree)/config.mk <http://config.mk>
>     +    include $(srctree)/arch/$(ARCH)/Makefile
>     +    endif
>     +
>     +The compilation will be failed if config.mk <http://config.mk> is
>     not included
>     +so delay 1 second to create auto.conf after creating of .config
>
>
> Adding a sleep seems pretty ugly, wouldn't a neater fix be to change the
> logic so that instead of the test being "is newer" you use "is not
> older", to handle identical timestamps as being current.
>
> Ross

u-boot-mkimage just be upgraded, and has the similar your suggestive fix:





commit cffcd2861310855130db52c93f7bf4d9b511741d
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Fri Apr 3 12:30:25 2015 +0900

     kbuild: include config.mk when auto.conf is not older than .config

     Since the Kconfig conversion, config.mk has been included only when
     include/config/auto.conf is newer than the .config file.

     It causes build error if both files have the same time-stamps.
     It is actually possible because EXT* file systems have a 1s time-stamp
     resolution.

     The config.mk should be included when include/config/auto.conf is
     *not older* than the .config file.

     Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
     Reported-by: Tom Rini <trini@konsulko.com>
     Reported-by: York Sun <yorksun@freescale.com>
     Reported-by: Stephen Warren <swarren@nvidia.com>
     Reported-by: Matthew Gerlach <mgerlach@opensource.altera.com>
     Tested-by: Stephen Warren <swarren@nvidia.com>

diff --git a/Makefile b/Makefile
index f1bce44..53ad450 100644
--- a/Makefile
+++ b/Makefile
@@ -513,12 +513,16 @@ include/config/%.conf: $(KCONFIG_CONFIG) 
include/config/auto.conf.cmd
  # is up-to-date. When we switch to a different board configuration, 
old CONFIG
  # macros are still remaining in include/config/auto.conf. Without the 
following
  # gimmick, wrong config.mk would be included leading nasty 
warnings/errors.
-autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell find . \
-               -path ./include/config/auto.conf -newer $(KCONFIG_CONFIG)))
-ifneq ($(autoconf_is_current),)
+ifneq ($(wildcard $(KCONFIG_CONFIG)),)
+ifneq ($(wildcard include/config/auto.conf),)
+autoconf_is_old := $(shell find . -path ./$(KCONFIG_CONFIG) -newer \
+                                               include/config/auto.conf)
+ifeq ($(autoconf_is_old),)
  include $(srctree)/config.mk
  include $(srctree)/arch/$(ARCH)/Makefile
  endif
+endif
+endif

  # If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
  # that (or fail if absent).  Otherwise, search for a linker script in a



-- 
Best Reagrds,
Roy | RongQing Li


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

* Re: [PATCH] u-boot-mkimage: fix a building failure on OpenSus
  2015-07-30  6:26   ` Rongqing Li
@ 2015-07-30 11:37     ` Otavio Salvador
  2015-07-31  1:11       ` Rongqing Li
  0 siblings, 1 reply; 6+ messages in thread
From: Otavio Salvador @ 2015-07-30 11:37 UTC (permalink / raw)
  To: Rongqing Li; +Cc: OE-core

Hello,

On Thu, Jul 30, 2015 at 3:26 AM, Rongqing Li <rongqing.li@windriver.com> wrote:
...
> u-boot-mkimage just be upgraded, and has the similar your suggestive fix:
>
> commit cffcd2861310855130db52c93f7bf4d9b511741d
> Author: Masahiro Yamada <yamada.masahiro@socionext.com>
> Date:   Fri Apr 3 12:30:25 2015 +0900
>
>     kbuild: include config.mk when auto.conf is not older than .config
>
>     Since the Kconfig conversion, config.mk has been included only when
>     include/config/auto.conf is newer than the .config file.
>
>     It causes build error if both files have the same time-stamps.
>     It is actually possible because EXT* file systems have a 1s time-stamp
>     resolution.
>
>     The config.mk should be included when include/config/auto.conf is
>     *not older* than the .config file.
>
>     Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>     Reported-by: Tom Rini <trini@konsulko.com>
>     Reported-by: York Sun <yorksun@freescale.com>
>     Reported-by: Stephen Warren <swarren@nvidia.com>
>     Reported-by: Matthew Gerlach <mgerlach@opensource.altera.com>
>     Tested-by: Stephen Warren <swarren@nvidia.com>

This is part of 2015.07 release so I am wondering what is the issue
here? Is this patch for old release? Fido for instance?

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


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

* Re: [PATCH] u-boot-mkimage: fix a building failure on OpenSus
  2015-07-30 11:37     ` Otavio Salvador
@ 2015-07-31  1:11       ` Rongqing Li
  0 siblings, 0 replies; 6+ messages in thread
From: Rongqing Li @ 2015-07-31  1:11 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OE-core



On 2015年07月30日 19:37, Otavio Salvador wrote:
> Hello,
>
> On Thu, Jul 30, 2015 at 3:26 AM, Rongqing Li <rongqing.li@windriver.com> wrote:
> ...
>> u-boot-mkimage just be upgraded, and has the similar your suggestive fix:
>>
>> commit cffcd2861310855130db52c93f7bf4d9b511741d
>> Author: Masahiro Yamada <yamada.masahiro@socionext.com>
>> Date:   Fri Apr 3 12:30:25 2015 +0900
>>
>>      kbuild: include config.mk when auto.conf is not older than .config
>>
>>      Since the Kconfig conversion, config.mk has been included only when
>>      include/config/auto.conf is newer than the .config file.
>>
>>      It causes build error if both files have the same time-stamps.
>>      It is actually possible because EXT* file systems have a 1s time-stamp
>>      resolution.
>>
>>      The config.mk should be included when include/config/auto.conf is
>>      *not older* than the .config file.
>>
>>      Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>>      Reported-by: Tom Rini <trini@konsulko.com>
>>      Reported-by: York Sun <yorksun@freescale.com>
>>      Reported-by: Stephen Warren <swarren@nvidia.com>
>>      Reported-by: Matthew Gerlach <mgerlach@opensource.altera.com>
>>      Tested-by: Stephen Warren <swarren@nvidia.com>
>
> This is part of 2015.07 release so I am wondering what is the issue
> here? Is this patch for old release? Fido for instance?
>


"It causes build error if both files have the same time-stamps.
It is actually possible because EXT* file systems have a 1s time-stamp
resolution."


I see the build error on SUSE Linux Enterprise Desktop 11 SP2 with ext3
filesystem frequently.


-Roy



-- 
Best Reagrds,
Roy | RongQing Li


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

end of thread, other threads:[~2015-07-31  1:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-28  2:00 [PATCH] u-boot-mkimage: fix a building failure on OpenSus rongqing.li
2015-07-28 11:47 ` Burton, Ross
2015-07-29  1:35   ` Rongqing Li
2015-07-30  6:26   ` Rongqing Li
2015-07-30 11:37     ` Otavio Salvador
2015-07-31  1:11       ` Rongqing Li

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