* [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED
@ 2013-07-28 16:48 Axel Lin
2013-07-28 16:59 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Axel Lin @ 2013-07-28 16:48 UTC (permalink / raw)
To: buildroot
ldd.host and ldconfig.host will be built only when HAVE_SHARED=y.
This fixes below build error when
# BR2_BFIN_FLAT is not set
# ARCH_HAS_MMU is not set
UCLIBC_FORMAT_FLAT=y
make[1]: Leaving directory `/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2'
/usr/bin/install -D -m 0755 /opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/utils/ldd.host /opt/test/buildroot/buildroot/output/host/usr/bin/ldd
/usr/bin/install: cannot stat '/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/utils/ldd.host': No such file or directory
make: *** [/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/.stamp_staging_installed] Error 1
Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
package/uclibc/uclibc.mk | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index 644c531..1fe1a40 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -514,10 +514,12 @@ endef
# For FLAT binfmts (static) there are no host utils
ifeq ($(BR2_BINFMT_FLAT),)
define UCLIBC_INSTALL_UTILS_STAGING
- $(INSTALL) -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd
- ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd
- $(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig
- ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig
+ if grep -q HAVE_SHARED=y $(@D)/.config; then \
+ $(INSTALL) -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd; \
+ ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd; \
+ $(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig; \
+ ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig; \
+ fi
endef
endif
--
1.8.1.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED
2013-07-28 16:48 [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED Axel Lin
@ 2013-07-28 16:59 ` Thomas Petazzoni
2013-07-28 17:17 ` Axel Lin
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2013-07-28 16:59 UTC (permalink / raw)
To: buildroot
Dear Axel Lin,
On Mon, 29 Jul 2013 00:48:37 +0800, Axel Lin wrote:
> ldd.host and ldconfig.host will be built only when HAVE_SHARED=y.
>
> This fixes below build error when
> # BR2_BFIN_FLAT is not set
> # ARCH_HAS_MMU is not set
> UCLIBC_FORMAT_FLAT=y
>
> make[1]: Leaving directory `/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2'
> /usr/bin/install -D -m 0755 /opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/utils/ldd.host /opt/test/buildroot/buildroot/output/host/usr/bin/ldd
> /usr/bin/install: cannot stat '/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/utils/ldd.host': No such file or directory
> make: *** [/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/.stamp_staging_installed] Error 1
Which Buildroot configuration triggers this?
> + if grep -q HAVE_SHARED=y $(@D)/.config; then \
> + $(INSTALL) -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd; \
> + ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd; \
> + $(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig; \
> + ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig; \
> + fi
I'd prefer not to grep into the uClibc configuration, and instead find
out which Buildroot configuration triggers this problem and find a
proper solution to it.
Thanks,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED
2013-07-28 16:59 ` Thomas Petazzoni
@ 2013-07-28 17:17 ` Axel Lin
2013-07-28 17:22 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Axel Lin @ 2013-07-28 17:17 UTC (permalink / raw)
To: buildroot
2013/7/29 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Dear Axel Lin,
>
> On Mon, 29 Jul 2013 00:48:37 +0800, Axel Lin wrote:
>> ldd.host and ldconfig.host will be built only when HAVE_SHARED=y.
>>
>> This fixes below build error when
>> # BR2_BFIN_FLAT is not set
>> # ARCH_HAS_MMU is not set
>> UCLIBC_FORMAT_FLAT=y
>>
>> make[1]: Leaving directory `/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2'
>> /usr/bin/install -D -m 0755 /opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/utils/ldd.host /opt/test/buildroot/buildroot/output/host/usr/bin/ldd
>> /usr/bin/install: cannot stat '/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/utils/ldd.host': No such file or directory
>> make: *** [/opt/test/buildroot/buildroot/output/build/uclibc-0.9.33.2/.stamp_staging_installed] Error 1
>
> Which Buildroot configuration triggers this?
Hi Thomas,
Below is my settings.
I'm pretty new in using buildroot, below is my settings.
I hope my description here is clear.
$ make menuconfig
mainly with below settings:
ARM, arm7tdmi, uClibc,
BR2_USE_MMU is not set
$ make uclibc-menuconfig
ARCH_HAS_MMU is not set
UCLIBC_FORMAT_FLAT=y
ARCH_HAS_NO_SHARED=y
When ARCH_HAS_NO_SHARED=y, HAVE_SHARED is automatically set to "not set".
Then I got the build error.
I think the root cause is because ldd.host and ldconfig.host will only be built
when HAVE_SHARED=y.
However, in package/uclibc/uclibc.mk, it always install ldd.host and
ldconfig.host if $(BR2_BINFMT_FLAT) is not set.
>
>
>> + if grep -q HAVE_SHARED=y $(@D)/.config; then \
>> + $(INSTALL) -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd; \
>> + ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd; \
>> + $(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig; \
>> + ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig; \
>> + fi
>
> I'd prefer not to grep into the uClibc configuration, and instead find
> out which Buildroot configuration triggers this problem and find a
> proper solution to it.
>
> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED
2013-07-28 17:17 ` Axel Lin
@ 2013-07-28 17:22 ` Thomas Petazzoni
2013-07-28 17:30 ` Axel Lin
2013-07-31 17:20 ` Axel Lin
0 siblings, 2 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2013-07-28 17:22 UTC (permalink / raw)
To: buildroot
Dear Axel Lin,
On Mon, 29 Jul 2013 01:17:00 +0800, Axel Lin wrote:
> Below is my settings.
> I'm pretty new in using buildroot, below is my settings.
> I hope my description here is clear.
>
> $ make menuconfig
>
> mainly with below settings:
> ARM, arm7tdmi, uClibc,
> BR2_USE_MMU is not set
>
> $ make uclibc-menuconfig
>
> ARCH_HAS_MMU is not set
> UCLIBC_FORMAT_FLAT=y
> ARCH_HAS_NO_SHARED=y
> When ARCH_HAS_NO_SHARED=y, HAVE_SHARED is automatically set to "not set".
As soon as you customize the uClibc configuration with
uclibc-menuconfig, then we cannot support all the possible build
failures that you will get.
So the solution to this problem is to improve the ARM noMMU support in
Buildroot, making sure that:
1/ The uClibc configuration is automatically adjusted appropriately.
2/ The uClibc tools are not installed.
> However, in package/uclibc/uclibc.mk, it always install ldd.host and
> ldconfig.host if $(BR2_BINFMT_FLAT) is not set.
BR2_BINFMT_FLAT should be set when ARM noMMU is used, because I don't
think ELF binaries are supported on ARM noMMU.
I know Gustavo is working on improving the ARM noMMU, hopefully he will
post patches soon.
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED
2013-07-28 17:22 ` Thomas Petazzoni
@ 2013-07-28 17:30 ` Axel Lin
2013-07-29 7:15 ` Thomas Petazzoni
2013-07-31 17:20 ` Axel Lin
1 sibling, 1 reply; 7+ messages in thread
From: Axel Lin @ 2013-07-28 17:30 UTC (permalink / raw)
To: buildroot
2013/7/29 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Dear Axel Lin,
>
> On Mon, 29 Jul 2013 01:17:00 +0800, Axel Lin wrote:
>
>> Below is my settings.
>> I'm pretty new in using buildroot, below is my settings.
>> I hope my description here is clear.
>>
>> $ make menuconfig
>>
>> mainly with below settings:
>> ARM, arm7tdmi, uClibc,
>> BR2_USE_MMU is not set
>>
>> $ make uclibc-menuconfig
>>
>> ARCH_HAS_MMU is not set
>> UCLIBC_FORMAT_FLAT=y
>> ARCH_HAS_NO_SHARED=y
>> When ARCH_HAS_NO_SHARED=y, HAVE_SHARED is automatically set to "not set".
>
> As soon as you customize the uClibc configuration with
> uclibc-menuconfig, then we cannot support all the possible build
> failures that you will get.
>
> So the solution to this problem is to improve the ARM noMMU support in
> Buildroot, making sure that:
>
> 1/ The uClibc configuration is automatically adjusted appropriately.
>
> 2/ The uClibc tools are not installed.
>
>
>> However, in package/uclibc/uclibc.mk, it always install ldd.host and
>> ldconfig.host if $(BR2_BINFMT_FLAT) is not set.
>
> BR2_BINFMT_FLAT should be set when ARM noMMU is used, because I don't
> think ELF binaries are supported on ARM noMMU.
May I ask why config BR2_BINFMT_FLAT depends on BR2_bfin || BR2_m68k
I ask this becuase I'm going to build for arm7tdmi which is noMMU.
And config BR2_BINFMT_FLAT is invisible now due to the dependency.
>
> I know Gustavo is working on improving the ARM noMMU, hopefully he will
> post patches soon.
Good to know this.
And thanks for your reply.
Regards,
Axel
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED
2013-07-28 17:30 ` Axel Lin
@ 2013-07-29 7:15 ` Thomas Petazzoni
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2013-07-29 7:15 UTC (permalink / raw)
To: buildroot
Dear Axel Lin,
On Mon, 29 Jul 2013 01:30:16 +0800, Axel Lin wrote:
> > BR2_BINFMT_FLAT should be set when ARM noMMU is used, because I don't
> > think ELF binaries are supported on ARM noMMU.
> May I ask why config BR2_BINFMT_FLAT depends on BR2_bfin || BR2_m68k
> I ask this becuase I'm going to build for arm7tdmi which is noMMU.
> And config BR2_BINFMT_FLAT is invisible now due to the dependency.
That's because nobody ever worked on ARM noMMU support in Buildroot, so
things need to be fixed.
Best regards,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED
2013-07-28 17:22 ` Thomas Petazzoni
2013-07-28 17:30 ` Axel Lin
@ 2013-07-31 17:20 ` Axel Lin
1 sibling, 0 replies; 7+ messages in thread
From: Axel Lin @ 2013-07-31 17:20 UTC (permalink / raw)
To: buildroot
> BR2_BINFMT_FLAT should be set when ARM noMMU is used, because I don't
> think ELF binaries are supported on ARM noMMU.
>
> I know Gustavo is working on improving the ARM noMMU, hopefully he will
> post patches soon.
Hi,
I'm still not able to build a FLAT executable.
Just to let you know If there is patch for supporting noMMU available
on the maillist,
I'm happy to test it.
Or is there other projects support building applications for noMMU?
I tried uClinux-dist but got build error. ( And uClinux-dist seems
does not update for a long time.)
Thanks,
Axel
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-07-31 17:20 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-28 16:48 [Buildroot] [PATCH] uclibc/arm: don't install ldd.host and ldconfig.host if !HAVE_SHARED Axel Lin
2013-07-28 16:59 ` Thomas Petazzoni
2013-07-28 17:17 ` Axel Lin
2013-07-28 17:22 ` Thomas Petazzoni
2013-07-28 17:30 ` Axel Lin
2013-07-29 7:15 ` Thomas Petazzoni
2013-07-31 17:20 ` Axel Lin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox