Skip to contentSkip to conversation

dependencies: Add host prerequisite for elf2flt

PATCH New Axel Lin 4 participants 9 messages Sep 4, 2013 1 message not in the archive

lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

This ensures elf2flt will be built when BR2_PACKAGE_HOST_ELF2FLT=y before building other packages.

---
I don't have a blackfin platform, only test build this for blackfin. Without this patch, the first time build will result in ELF binary because busybox is built before elf2flt.
With this path, the result looks good, it produces BFLT executable for busybox.

 support/dependencies/dependencies.mk | 4 ++++
 1 file changed, 4 insertions(+)
support/dependencies/dependencies.mk +4 -0
index 4a220e0..3b8ea31 100644
@@ -24,6 +24,10 @@ ifeq ($(BR2_CCACHE),y)
 DEPENDENCIES_HOST_PREREQ += host-ccache
 endif
 
+ifeq ($(BR2_PACKAGE_HOST_ELF2FLT),y)
+DEPENDENCIES_HOST_PREREQ += host-elf2flt
+endif
+
 core-dependencies:
 	@HOSTCC="$(firstword $(HOSTCC))" MAKE="$(MAKE)" \
 		DL_TOOLS="$(sort $(DL_TOOLS_DEPENDENCIES))" \
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

Dear Axel Lin,

Quoted 9 lines · Axel Lin

This ensures elf2flt will be built when BR2_PACKAGE_HOST_ELF2FLT=y before building other packages.

---
I don't have a blackfin platform, only test build this for blackfin. Without this patch, the first time build will result in ELF binary because busybox is built before elf2flt.
With this path, the result looks good, it produces BFLT executable for busybox.

I don't think host-elf2flt should be added at this level of dependency. If I understand correctly elf2flt, it interfaces with the linker, so I believe making elf2flt a dependency of binutils would probably make a bit more sense.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#2 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

Quoted 4 lines · Thomas Petazzoni

I don't think host-elf2flt should be added at this level of dependency. If I understand correctly elf2flt, it interfaces with the linker, so I believe making elf2flt a dependency of binutils would probably make a bit more sense.

It's already done correctly in the dependency deparment...

HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib

The problem is it's never pulled in when it's necessary - before the real packages start building, so adding it up as a gcc dep when BR2_BINFMT_FLAT=y would be appropiate.

Regards.

#3 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

Dear Gustavo Zacarias,

Quoted 9 lines · Gustavo Zacarias
Quoted 4 lines · Thomas Petazzoni

I don't think host-elf2flt should be added at this level of dependency. If I understand correctly elf2flt, it interfaces with the linker, so I believe making elf2flt a dependency of binutils would probably make a bit more sense.

It's already done correctly in the dependency deparment...

HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib

What I was suggesting is that host-elf2flt should have been a dependency of host-binutils. But that's obviously wrong, since elf2flt requires the libbfd library I suspect.

Quoted 3 lines

The problem is it's never pulled in when it's necessary - before the real packages start building, so adding it up as a gcc dep when BR2_BINFMT_FLAT=y would be appropiate.

Indeed. If it's not needed during the gcc build, one solution is to add its as a dependency in host-gcc-final.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#4 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

Quoted 5 lines · Thomas Petazzoni
Quoted 1 line

HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib

What I was suggesting is that host-elf2flt should have been a dependency of host-binutils. But that's obviously wrong, since elf2flt requires the libbfd library I suspect.

Yes that's true, the order would be binutils -> elf2flt -> gcc -> world domination.

Quoted 2 lines

Indeed. If it's not needed during the gcc build, one solution is to add its as a dependency in host-gcc-final.

It's needed for some uClibc combination, link-flat.so which uses elf2flt pulls in libgcc according to uclibc/Makerules (used in uclibc/libc/Makefile.in).
I think it's safer to pull it in for gcc-intermediate or even gcc-initial. Regards.

#5 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

Dear Gustavo Zacarias,

Quoted 7 lines · Gustavo Zacarias
Quoted 2 lines

Indeed. If it's not needed during the gcc build, one solution is to add its as a dependency in host-gcc-final.

It's needed for some uClibc combination, link-flat.so which uses elf2flt pulls in libgcc according to uclibc/Makerules (used in uclibc/libc/Makefile.in).
I think it's safer to pull it in for gcc-intermediate or even gcc-initial.

gcc-intermediate is going to be skipped in some situations after my patch "[PATCHv2 03/14] toolchain-internal: skip gcc-intermediate when possible" is merged.

So, as a dependency of gcc-initial seems like a better choice.

Thanks,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

A message that is not in the archive (sent off-list or not yet received): CAAXf6LW+C8GpD8vh4D3xQKNHggYOXmbG8xSRBttuYt8+usCnoA@mail.gmail.com

#7 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

Quoted 2 lines · Thomas De Schampheleire

I know little about this flat format, but isn't it possible to use an external toolchain and still want flat binaries?

Yes, an example is the blackfin external toolchain. elf2flt is shipped with said toolchains so it's not related if that's your concern.
Regards.

#8 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

Op 4-sep.-2013 14:14 schreef "Gustavo Zacarias" <[email protected]> het volgende:

Quoted 9 lines · Thomas De Schampheleire
Quoted 3 lines

I know little about this flat format, but isn't it possible to use an external toolchain and still want flat binaries?

Yes, an example is the blackfin external toolchain. elf2flt is shipped with said toolchains so it's not related if that's your concern.

Ok thanks. That was indeed my concern...

Best regards,
Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130904/9f831d7a/attachment.html>

#9 lore raw

PATCH 1/1 dependencies: Add host prerequisite for elf2flt

In reply to Thomas Petazzoni

Op 4-sep.-2013 13:35 schreef "Thomas Petazzoni" < [email protected]> het volgende:

Quoted 6 lines

Dear Gustavo Zacarias,

Quoted 1 line · Gustavo Zacarias
Quoted 1 line

Indeed. If it's not needed during the gcc build, one solution is to

add

Quoted 6 lines
Quoted 6 lines
Quoted 1 line

its as a dependency in host-gcc-final.

It's needed for some uClibc combination, link-flat.so which uses elf2flt pulls in libgcc according to uclibc/Makerules (used in uclibc/libc/Makefile.in).
I think it's safer to pull it in for gcc-intermediate or even

gcc-initial.

Quoted 6 lines

gcc-intermediate is going to be skipped in some situations after my patch "[PATCHv2 03/14] toolchain-internal: skip gcc-intermediate when possible" is merged.

So, as a dependency of gcc-initial seems like a better choice.

I know little about this flat format, but isn't it possible to use an external toolchain and still want flat binaries?

Best regards,
Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130904/5cd44cd6/attachment.html>