> From: Rainer Orth <[email protected]>
> Date: Mon, 15 Aug 2011 19:19:23 +0200
> On top of the crtstuff and libgcc1 patches (and requiring the PICFLAG
> centralization still under discussion), here's the bulk of the remaining
> moves: it moves all LIBGCC2*, LIB2* macros and referenced files.
>
> Despite its size, the patch should be quite straightforward.
>
> * libgcc is slowly getting cluttered. One may consider moving related
> files to their own subdirectories.
>
> * Again, I noticed an unused target file,
> config/cris/cris_abi_symbol.c. I assume it's a leftover from the
> cris-aout port and can go.
As obvious from its contents, yes, put it to rest if you please.
> Tested as described in the previous submissions.
> * config/cris/arit.c, config/cris/cris_abi_symbol.c: Move to
> ../libgcc/config/cris.
> * config/cris/cris.h: Remove obsolete comment.
Not so obsolete IMO. Parentheses are still hard to pass through
shells :) though maybe there's just one layer now?
IIUC, this file *is* still included when building libgcc2?
> * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
> * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
> ($(LIB2FUNCS_EXTRA)): Remove.
> * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
> (LIBGCC): Remove.
> * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
> @@ -960,8 +952,6 @@ cris-*-elf | cris-*-none)
> ;;
> crisv32-*-linux* | cris-*-linux*)
> tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h
> cris/linux.h"
> - # We need to avoid using t-linux, so override default tmake_file
> - tmake_file="cris/t-cris cris/t-linux t-slibgcc"
> extra_options="${extra_options} cris/linux.opt"
> case $target in
> cris-*-*)
Here there was an assignment, not append, to tmake_file.
> diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
> --- a/gcc/config/cris/cris.h
> +++ b/gcc/config/cris/cris.h
> @@ -84,11 +84,7 @@ extern int cris_cpu_version;
> /* Changing the order used to be necessary to put the fourth __make_dp
> argument (a DImode parameter) in registers, to fit with the libfunc
> parameter passing scheme used for intrinsic functions. FIXME: Check
> - performance and maybe remove definition from TARGET_LIBGCC2_CFLAGS now
> - that it isn't strictly necessary. We used to do this through
> - TARGET_LIBGCC2_CFLAGS, but that became increasingly difficult as the
> - parenthesis (that needed quoting) travels through several layers of
> - make and shell invocations. */
> + performance. */
> #ifdef IN_LIBGCC2
> #define __make_dp(a,b,c,d) __cris_make_dp(d,a,b,c)
> #endif
...well, as long as cris.h is still included and it's truly
obsolete due to the libgcc move.
> diff --git a/libgcc/config.host b/libgcc/config.host
> *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu*
> | *-*-kopensolaris*-gnu)
> - tmake_file="$tmake_file t-crtstuff-pic t-eh-dw2-dip t-slibgcc
> t-slibgcc-gld t-slibgcc-elf-ver t-linux"
> + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc
> t-slibgcc-gld t-slibgcc-elf-ver t-linux"
> extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
Hm...
> crisv32-*-elf)
> - tmake_file=t-fdpbit
> + tmake_file="cris/t-cris t-fdpbit"
> ;;
> crisv32-*-none)
> - tmake_file=t-fdpbit
> + tmake_file="cris/t-cris t-fdpbit"
> extra_parts="crtbegin.o crtend.o"
> ;;
> cris-*-elf)
> - tmake_file="$tmake_file cris/t-elfmulti"
> + tmake_file="$tmake_file cris/t-cris cris/t-elfmulti"
> ;;
> cris-*-none)
> - tmake_file="$tmake_file cris/t-elfmulti"
> + tmake_file="$tmake_file cris/t-cris cris/t-elfmulti"
> extra_parts="crtbegin.o crtend.o"
> ;;
> cris-*-linux* | crisv32-*-linux*)
> - tmake_file="$tmake_file t-fdpbit cris/t-linux"
> + tmake_file="$tmake_file cris/t-cris t-fdpbit cris/t-linux"
> ;;
But here you append to tmake_file. Is the new "generic" linux
tmake_file really safe? What was I was trying to avoid... oh,
the "SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver"?
Should have been safe all along; none of those symbols were
defined. Anyway looks like I could need that config/t-linux
so... ok? But why don't I see a libgcc/config/cris/t-linux at
r177764 so I can check? It should be pre-existing before your
previous patch. Is this on top of more than the previous two
patches?
Ok, I'm confused. I want to wait until the other two patches
are committed, then look again. (They are independent if
serialized, right?)
brgds, H-P