Skip to Content.
Sympa Menu

sm-sorcery-bugs - [SM-Sorcery-Bugs] [Bug 7971] real_default_build doesn't honor architecture

sm-sorcery-bugs AT lists.ibiblio.org

Subject: Bugs for Sorcery are reported here

List archive

Chronological Thread  
  • From: bugzilla-daemon AT bugs.sourcemage.org
  • To: sm-sorcery-bugs AT lists.ibiblio.org
  • Subject: [SM-Sorcery-Bugs] [Bug 7971] real_default_build doesn't honor architecture
  • Date: Sun, 16 Jan 2005 02:26:26 -0800 (PST)

http://bugs.sourcemage.org/show_bug.cgi?id=7971





------- Additional Comments From acedit AT armory.com 2005-01-16 02:26 -------
so gcc -dumpmachine says i686-pc-linux-gnu, and apparently that can be
changed
with the -b option, but if i say
gcc -b i386-pc-linux-gnu
i get
gcc: couldn't run `i386-pc-linux-gnu-gcc-3.3.3': No such file or directory.

How interesting...so if you asked gcc to compile for i386 you'd need the i386
compiler stuff built (the actual compiling bits seem to live in
/usr/lib/gcc-lib/<architecture thingy>/). Point being that if you told
configure
to build for i386, it couldnt unless you had that compiler built, and it seems
that since i386 and i686 arent really different, it'd likely pick just "gcc"
anyway, and thus it'd be the native compiler either way...so theres no real
difference...

Another thing that should be noted is that compiler flags such as -march=i386
DO
get passed to the compiler when you set them in the sorcery menu, REGARDLESS
of
what you tell ./configure the host platform is.

So, Im starting to think this bug is invalid due to a mis-understanding of
whats
happening, and what it means to set --host and --build. If you're cross
compiling, you set the configure flags as such, and it tries to find the
appropriate cross-compiler. By having the host/build options always on, you're
trying to cross compile all the time to the native architecture...which to me,
doesnt make much sense, if you want to cross compile, build the cross compiler
and turn on the cross compile option...or, if you want to build binaries for
your native system in some special way, build that compiler as your native
compiler...telling configure to cross compile with a compiler you dont have
isnt
going to do much so far as i can tell (like i said, i think it just defaults
to
the mostly compatible native compiler, or just generically calling "gcc" and
letting it figure it out).

I think this is more a problem with your environment than anything. Hence my
constant suggestion to use a clean chroot for the specific architecture you
want. If you built an i386 chroot system from the ground up, including gcc,
gcc
would get built in it for i386, and would specifically build i386 binaries.
ALthough I'm sure you'll say "no thats why i made this spare machine i dont
need
a chroot environment etc. etc.". I suspect your non-chroot environment has the
i686-pc-linux-gcc compiler instead of the i386-pc-linux-gcc version and
consequently you're getting "i686" binaries out of it. You could, i suppose,
instead of making a chroot for your i386 world and one for your i686 world,
set
the arch to what you want, rebuild gcc, then rebuild everything else...with
that
compiler.

--
Configure bugmail: http://bugs.sourcemage.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.




Archive powered by MHonArc 2.6.24.

Top of Page