Skip to contentSkip to conversation

Make multi-machine toolchains to co-exist (revised again)

PATCH In review Tom Rini 3 participants 4 messages Jul 30, 2010 – Aug 1, 2010

lore
Share & tools
lore

Tom Rini

author
#0 lore raw

PATCH v4 1/1 Make multi-machine toolchains to co-exist (revised again)

Hey all,

As one of the folks who suggested something else, here's my take.

We modify the prefix for cross stuff to dump everything into MULTIMACH_TARGET_SYS in the sysroot.

Pro: It should work for all the cases
Con: We're back to having a 'special' directory of cross stuff
Pro: It's separate but still valid for $ORIGIN mangling, which is the other problem we had before.

I've got a qemuarm console-image and then beagleboard console-image build going now and that's going to take time.

classes/cross.bbclass +2 -2
index db86192..b3f74a2 100644
@@ -44,9 +44,9 @@ target_base_libdir := "${base_libdir}"
 target_prefix := "${prefix}"
 
 # Overrides for paths
-prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}/${MULTIMACH_TARGET_SYS}"
 base_prefix = "${STAGING_DIR_NATIVE}"
-exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix =

"${STAGING_DIR_NATIVE}${prefix_native}/${MULTIMACH_TARGET_SYS}"
base_sbindir = "${base_prefix}/bin"
sbindir = "${exec_prefix}/bin"

conf/bitbake.conf +0 -1
index d523519..23281fd 100644
@@ -299,7 +299,7 @@ STAGING_DIR_JAVA = "${STAGING_DIR}/java"
 STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
 STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
 STAGING_SBINDIR_NATIVE = "${STAGING_DIR_NATIVE}${sbindir_native}"
-STAGING_BINDIR_CROSS  =

"${STAGING_DIR_NATIVE}${bindir_native}/${MULTIMACH_HOST_SYS}" +STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${prefix_native}/${MULTIMACH_TARGET_SYS}${base_bindir_native}"
STAGING_BINDIR_CROSS_BASEPKG =
"${STAGING_DIR_NATIVE}${bindir_native}/${BASEPKG_TARGET_SYS}"
STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}" STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"

Signature · 2 lines
Tom Rini
Mentor Graphics Corporation
#1 lore raw
Quoted 12 lines · Tom Rini

Hey all,

As one of the folks who suggested something else, here's my take.

We modify the prefix for cross stuff to dump everything into MULTIMACH_TARGET_SYS in the sysroot.

Pro: It should work for all the cases
Con: We're back to having a 'special' directory of cross stuff
Pro: It's separate but still valid for $ORIGIN mangling, which is the other problem we had before.

Quoted 4 lines

I've got a qemuarm console-image and then beagleboard console-image build going now and that's going to take time.

hah indecently I have been testing similar patch per our discussions on IRC but trying to get program-transform-name to generate unique compiler names which can coexist in <native sysroot>/usr/bin meanwhile I work on that this portion looks ok to go in.

Quoted 46 lines
classes/cross.bbclass +0 -0
index db86192..b3f74a2 100644
@@ -44,9 +44,9 @@ target_base_libdir := "${base_libdir}"

 target_prefix := "${prefix}"

 # Overrides for paths

classes/cross.bbclass +1 -1
-prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}/${MULTIMACH_TARGET_SYS}"

 base_prefix = "${STAGING_DIR_NATIVE}"

classes/cross.bbclass +1 -1
-exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix =

"${STAGING_DIR_NATIVE}${prefix_native}/${MULTIMACH_TARGET_SYS}" base_sbindir = "${base_prefix}/bin"
 sbindir = "${exec_prefix}/bin"

conf/bitbake.conf +0 -0
index d523519..23281fd 100644
@@ -299,7 +299,7 @@ STAGING_DIR_JAVA = "${STAGING_DIR}/java"

 STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}" STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}" STAGING_SBINDIR_NATIVE = "${STAGING_DIR_NATIVE}${sbindir_native}" -STAGING_BINDIR_CROSS  = "${STAGING_DIR_NATIVE}${bindir_native}/${MULTIMACH_HOST_SYS}" +STAGING_BINDIR_CROSS  = "${STAGING_DIR_NATIVE}${prefix_native}/${MULTIMACH_TARGET_SYS}${base_bindir_native}" STAGING_BINDIR_CROSS_BASEPKG = "${STAGING_DIR_NATIVE}${bindir_native}/${BASEPKG_TARGET_SYS}" STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}" STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"

--
Tom Rini
Mentor Graphics Corporation

_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

#2 lore raw
Quoted 16 lines · Khem Raj
Quoted 15 lines · Tom Rini

Hey all,

As one of the folks who suggested something else, here's my take.

We modify the prefix for cross stuff to dump everything into MULTIMACH_TARGET_SYS in the sysroot.

Pro: It should work for all the cases
Con: We're back to having a 'special' directory of cross stuff
Pro: It's separate but still valid for $ORIGIN mangling, which is the other problem we had before.

I've got a qemuarm console-image and then beagleboard console-image build going now and that's going to take time.

Quoted 8 lines
Quoted 1 line

hah indecently I have been testing similar patch per our discussions on IRC but trying to get program-transform-name to generate unique compiler names which can coexist in <native sysroot>/usr/bin meanwhile I work on that this portion looks ok to go in.

I've been trying to catch up with this issue and where OE is at now I'm back. Could someone summarise where we're at please as reading through the email threads which keep changing subject hasn't really educated me much :/ Did changing the triplet work out or not?

In Poky I've got the putting the toolchain into:

native-sysroot/usr/bin/<package-triplet>/${TARGET_SYS}-foo

and this seems to be working out okay after a slightly bumpy ride...

Cheers,

Richard

#3 lore raw
Quoted 24 lines · Richard Purdie
Quoted 23 lines · Khem Raj
Quoted 12 lines · Tom Rini

Hey all,

As one of the folks who suggested something else, here's my take.

We modify the prefix for cross stuff to dump everything into MULTIMACH_TARGET_SYS in the sysroot.

Pro: It should work for all the cases
Con: We're back to having a 'special' directory of cross stuff
Pro: It's separate but still valid for $ORIGIN mangling, which is the other problem we had before.

Quoted 4 lines

I've got a qemuarm console-image and then beagleboard console-image build going now and that's going to take time.

hah indecently I have been testing similar patch per our discussions on IRC but trying to get program-transform-name to generate unique compiler names which can coexist in <native sysroot>/usr/bin meanwhile I work on that this portion looks ok to go in.

Quoted 6 lines
Quoted 1 line

I've been trying to catch up with this issue and where OE is at now I'm back. Could someone summarise where we're at please as reading through the email threads which keep changing subject hasn't really educated me much :/ Did changing the triplet work out or not?

Yes it worked out to a certain extent but there was few rough edges left. I did not pursue it more as it seemed not so desired approach.

Quoted 4 lines

In Poky I've got the putting the toolchain into:

native-sysroot/usr/bin/<package-triplet>/${TARGET_SYS}-foo

Something similar is what the v4 of the patch proposed. A difference is that it puts the toolchain in native-sysroot/usr/${BASE_PACKAGE_ARCH}/

Koen has been trying it out and so far he has had good results.

Thanks
-Khem