Installation of i686 SDK on a x86_64 machine?


Wolfgang Denk <wd@...>
 

Hi,

in previous releases it ha always been possible to install a SDK
configured for a i686 machine on both x86 and x86_64 systems.

Since commit c04f5435 "populate_sdk_base.bbclass: use SDK_ARCH instead
of SDKMACHINE" this does not work any more; instead, installation will
abort with "Error: Installation machine not supported!"

++ uname -m
++ sed -e 's/i[3-6]86/ix86/' -e 's/x86[-_]64/x86_64/'
+ INST_ARCH=x86_64
++ echo i686
++ sed -e 's/i[5-6]86/ix86/'
+ SDK_ARCH=ix86
+ '[' x86_64 '!=' ix86 ']'
+ echo 'Error: Installation machine not supported!'
Error: Installation machine not supported!
+ exit -1


Is this intended behaviour (and if so, why?) or rather a bug that
should be reported and fixed?

Thanks in advance.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@...
If there was anything that depressed him more than his own cynicism,
it was that quite often it still wasn't as cynical as real life.
- Terry Pratchett, _Guards! Guards!_


Laurentiu Palcu <laurentiu.palcu@...>
 

Hi Wolfgang,

On 01/22/2013 09:16 AM, Wolfgang Denk wrote:
Hi,

in previous releases it ha always been possible to install a SDK
configured for a i686 machine on both x86 and x86_64 systems.

Since commit c04f5435 "populate_sdk_base.bbclass: use SDK_ARCH instead
of SDKMACHINE" this does not work any more; instead, installation will
abort with "Error: Installation machine not supported!"

++ uname -m
++ sed -e 's/i[3-6]86/ix86/' -e 's/x86[-_]64/x86_64/'
+ INST_ARCH=x86_64
++ echo i686
++ sed -e 's/i[5-6]86/ix86/'
+ SDK_ARCH=ix86
+ '[' x86_64 '!=' ix86 ']'
+ echo 'Error: Installation machine not supported!'
Error: Installation machine not supported!
+ exit -1


Is this intended behaviour (and if so, why?) or rather a bug that
should be reported and fixed?
This is the intended behavior. Please check:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=3269

Also, this thread:
http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/031519.html

If people really need to install SDK tarballs intended for other hosts
than the SDK was built for (i686 on x86_64 or vice-versa), we could add
a -f flag to force installation and show an error message like this:

"Error: Installation machine not supported! Use -f to force installation."

Thanks,
Laurentiu


Thanks in advance.

Best regards,

Wolfgang Denk


Wolfgang Denk <wd@...>
 

Dear Laurentiu,

In message <50FE4900.7020804@...> you wrote:

in previous releases it ha always been possible to install a SDK
configured for a i686 machine on both x86 and x86_64 systems.

Since commit c04f5435 "populate_sdk_base.bbclass: use SDK_ARCH instead
of SDKMACHINE" this does not work any more; instead, installation will
abort with "Error: Installation machine not supported!"
...

Is this intended behaviour (and if so, why?) or rather a bug that
should be reported and fixed?
This is the intended behavior. Please check:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=3269
Sorry, but this bug is about a different problem - the fix overshoots
the mark.

The following combinations of SDK_ARCH and INST_ARCH are possible and
relevant here:

Id SDK_ARCH INST_ARCH Status
==============================================
1 ix86 ix86 works
2 ix86 x86_64 works
3 x86_64 ix86 cannot work
4 x86_64 x86_64 works

The bug report is about case 3 - attempting to install a 64 bit SDK on
a 32 bit machine. This indeed cannot work and shuld be prevented byy
the installer.

But the current code also prevents case 2, installing 32 bit images on
a 64 bit machine, which works perfectly fine (assuming you have the
needed 32 bit libraries installed).

For any distribution it is very convenient to provide only one set of
images (configured for ix86), as these images will work both on 32 and
64 bit systems.

I consider it a major drawback if you intentionally prevent such use.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@...
"I'm not a god, I was misquoted." - Lister, Red Dwarf


Laurentiu Palcu <laurentiu.palcu@...>
 

On 01/22/2013 11:03 AM, Wolfgang Denk wrote:
Id SDK_ARCH INST_ARCH Status
==============================================
1 ix86 ix86 works
2 ix86 x86_64 works
3 x86_64 ix86 cannot work
4 x86_64 x86_64 works

The bug report is about case 3 - attempting to install a 64 bit SDK on
a 32 bit machine. This indeed cannot work and shuld be prevented byy
the installer.

But the current code also prevents case 2, installing 32 bit images on
a 64 bit machine, which works perfectly fine (assuming you have the
needed 32 bit libraries installed).
I see your point. Would you please file a bug on this?

Thanks,
Laurentiu


Wolfgang Denk <wd@...>
 

Dear Laurentiu,

In message <50FE5F87.4060300@...> you wrote:

Id SDK_ARCH INST_ARCH Status
==============================================
1 ix86 ix86 works
2 ix86 x86_64 works
3 x86_64 ix86 cannot work
4 x86_64 x86_64 works

The bug report is about case 3 - attempting to install a 64 bit SDK on
a 32 bit machine. This indeed cannot work and shuld be prevented byy
the installer.

But the current code also prevents case 2, installing 32 bit images on
a 64 bit machine, which works perfectly fine (assuming you have the
needed 32 bit libraries installed).
I see your point. Would you please file a bug on this?
Done, with a patch included.

Please see https://bugzilla.yoctoproject.org/show_bug.cgi?id=3770

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@...
Worlds are conquered, galaxies destroyed -- but a woman is always a
woman.
-- Kirk, "Conscience of the King", stardate unknown