Takis Psarogiannakopoulos <[email protected]> writes:
> On Sun, 1 Mar 2009, Mark Mitchell wrote:
>
>> >> I think there's some confusion here. There is no relationship between
>> >> the ASM_SPEC definition in a config *.h file regarding options to be
>> >> passed to the assembler and the old "asmspec" parameter to
>> >> rest_of_decl_compilation, which related to uses of the "__asm__(...)"
>> >> extension in the source code.
>> >>
>> > Are you sure about that?
>>
>> Yes.
>
> OK then should be the missing of the SUBTARGET_SWITCHES macro.
SUBTARGET_SWITCHES shouldn't have anything to do with ASM_SPEC.
> Configuration is the same as i?86-*-sol2 in gcc/config.gcc
> The last file aka sol2.h is custom modified. There is nothing really
> undef'ing the ASM_SPEC macro.
> Hence the reason that the cc1 cannt get it right is because the
> subtarget switches macro is missing.
> On the GCC 3.4.6 (aka 3.4 branch) we can see, say, in i386/sco5.h
>
> #undef SUBTARGET_SWITCHES
> #define SUBTARGET_SWITCHES \
> { "elf", -MASK_COFF, N_("Generate ELF output") },
>
> Such kind of switches added to the TARGET_SWITCHES has carried through
> from GCC 2.6 up to GCC-3.4.6 (inclusive). Then toplev.c picks up those.
> It looks all these they have been eliminated on 4.3.3 (why?)
> My question will be if anybody knows how you implemnt this type of well
> known features on the latest GCC 4.3.X branch?
The SUBTARGET_SWITCHES macro was removed from the i386 backend in gcc
4.3 because all the uses of it were removed. The only use of
SUBTARGET_SWITCHES was to be expanded by the TARGET_SWITCHES macro.
Nobody promises that internal details of a gcc port will continue to be
the same in each new release. Nobody promises that a private port will
continue to work. If you want to maintain a private port, you have to
do some work with each new gcc release. That's just the way it is.
Ian