Hi Bence,

> I tried building a cross-compiler for `sparc-sun-solaris2`, but the
> resulting GCC executable wouldn't compile anything, always failing
> with: "as: unrecognized option '-m32'". After extensive research, I
> found that `as` takes `--32`/`--64`, instead of `-m32`/`-m64`. The
> patched GCC now does compile.

this patch is wrong: gcc on Solaris assumes the native assembler by
default, which *does* accept -m32 and -m64.  You can see it in the
snippet you patched:

> diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h
> index 93404757054..d1d0bb1f99d 100644
> - --- a/gcc/config/sparc/sol2.h
> +++ b/gcc/config/sparc/sol2.h
> @@ -63,9 +63,9 @@ along with GCC; see the file COPYING3.  If not see
>  
>  #ifndef USE_GAS
   ^^^^^^^^^^^^^^^
>  #undef ASM_ARCH32_SPEC
> - -#define ASM_ARCH32_SPEC "-m32"
> +#define ASM_ARCH32_SPEC "--32"
>  #undef ASM_ARCH64_SPEC
> - -#define ASM_ARCH64_SPEC "-m64"
> +#define ASM_ARCH64_SPEC "--64"
>  #endif

Obviously in a cross configuration you cannot use as, but need to
specify --with-as=<path to cross gas> --with-gnu-as.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to