This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Building gcc for solaris on sparc64 from linux on x86


Kai Ruottu wrote:
David Cournapeau wrote:
Then, I used this toolchain to build on M1 a "native" solaris gcc: I used a scheme analog to the cross compiler, except that I set host and target to sparc-sun-solaris2.9, and build to i686-pc-gnu. The compilation went Ok too, but I cannot make this new compiler work on M2. I installed all the programs with the prefix $HOME/solaris/local/ on M2, and added $HOME/solaris/local/bin in my PATH.
Generally a crosscompiler produces "identical" stuff with the native compiler... BESIDES when runs that
'*gcc -dumpspecs' to produce the 'specs' ! This is one of the mistakes people usually do, they trust the
cross-compiler produced 'specs' to work on the native system too!


So I would check this "stupid mistake" :-) first !

(sorry for the double posting, I mistakely send the email to Kai only first)

I understand that compiling with a cross compiler to M2 and a native compiler on M2 will produce the same programs more or less; unfortunately, I want to compile python for M2, which configuration needs to run on M2. That's the justification for building a native compiler for M2.

Now, I am not sure to understand the dumpspecs stuff, and how it matters. Where (eg which step) is it used, and for what purpose ?

Here is the specs for the "native" gcc I built (with host and target for solaris):

*asm:
--traditional-format %{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Wa,*:%*} -s %{fpic|fpie|fPIC|fPIE:-K PIC} %(asm_cpu)


*asm_debug:
%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}

*asm_final:


*asm_options: %a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}

*invoke_as:
%{!S:-o %|.s |
as %(asm_options) %|.s %A }

*cpp:
%(cpp_cpu) %(cpp_arch) %(cpp_endian) %(cpp_subtarget)

*cpp_options:
%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w} %{f*} %{g*:%{!g0:%{!fno-working-directory:-fworking-directory}}} %{O*} %{undef} %{save-temps:-fpch-preprocess}


*cpp_debug_options:
%{d*}

*cpp_unique_options:
%{C|CC:%{!E:%eGCC does not support -C or -CC without -E}} %{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I %{MD:-MD %{!o:%b.d}%{o*:%.d%*}} %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}} %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*} %{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ %*}}}}} %{remap} %{g3:-dD} %{H} %C %{D*&U*&A*} %{i*} %Z %i %{fmudflap:-D_MUDFLAP -include mf-runtime.h} %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h} %{E|M|MM:%W{o*}}


*trad_capable_cpp:
cc1 -E %{traditional|ftraditional|traditional-cpp:-traditional-cpp}

*cc1:
%{sun4:} %{target:} %{mcypress:-mcpu=cypress} %{msparclite:-mcpu=sparclite} %{mf930:-mcpu=f930} %{mf934:-mcpu=f934} %{mv8:-mcpu=v8} %{msupersparc:-mcpu=supersparc} %{m32:%{m64:%emay not use both -m32 and -m64}} %{m64:-mptr64 -mstack-bias -mno-v8plus %{!mcpu*:%{!mcypress:%{!msparclite:%{!mf930:%{!mf934:%{!mv8*:%{!msupersparc:-mcpu=v9}}}}}}}}



*cc1_options:
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}} %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*} %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}} %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs} %{v:-version} %{pg:-p} %{p} %{f*} %{undef} %{Qn:-fno-ident} %{--help:--help} %{--target-help:--target-help} %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}} %{fsyntax-only:-o %j} %{-param*} %{fmudflap|fmudflapth:-fno-builtin -fno-merge-constants}


*cc1plus:


*link_gcc_c_sequence: %G %L %G %L

*endfile:
%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} crtend.o%s crtn.o%s


*link:
%{h*} %{v:-V} %{b} %{Wl,*:%*} %{static:-dn -Bstatic} %{shared:-G -dy %{!mimpure-text:-z text}} %{symbolic:-Bsymbolic -G -dy -z text} %(link_arch) %{Qy:} %{!Qn:-Qy}


*lib:
%{compat-bsd:-lucb -lsocket -lnsl -lelf -laio} %{!shared: %{!symbolic: %{pthreads:-lpthread} %{!pthreads:%{threads:-lthread}} %{p|pg:-ldl} -lc}}


*mfwrap:
%{static: %{fmudflap|fmudflapth: --wrap=malloc --wrap=free --wrap=calloc --wrap=realloc --wrap=mmap --wrap=munmap --wrap=alloca} %{fmudflapth: --wrap=pthread_create --wrap=pthread_join --wrap=pthread_exit}} %{fmudflap|fmudflapth: --wrap=main}


*mflib:
%{fmudflap|fmudflapth: -export-dynamic}

*libgcc:
%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared:%{!shared-libgcc:-lgcc -lgcc_eh}%{shared-libgcc:-lgcc_s -lgcc}}%{shared:-lgcc_s}}}


*startfile:
%{!shared: %{!symbolic: %{p:mcrt1.o%s} %{!p: %{pg:gcrt1.o%s gmon.o%s} %{!pg:crt1.o%s}}}} crti.o%s %(startfile_arch) crtbegin.o%s


*switches_need_spaces:


*cross_compile: 0

*version:
4.0.3

*multilib:
. !m32 !m64;sparcv7:. m32 !m64;sparcv9:sparcv9 !m32 m64;

*multilib_defaults:
m32

So if 0 is really false, it looks like the specs say it is not a cross compiler, right ?

cheers,

David

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]