On Tue, Nov 19, 2019 at 12:37 PM Martin Liška <mli...@suse.cz> wrote:
>
> On 11/19/19 11:03 AM, Richard Biener wrote:
> > On Mon, Nov 18, 2019 at 1:24 PM Martin Liška <mli...@suse.cz> wrote:
> >>
> >> Hello.
> >>
> >> After my param to option transformation, we lost automatic GGC
> >> detection. It's because init_ggc_heuristics is called before
> >> init_options_struct which memsets all the values to zero first.
> >>
> >> I've tested the patch with --enable-checking=release and I hope
> >> Honza can test it more?
> >>
> >> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
> >>
> >> Ready to be installed?
> >
> > I prefer to _not_ move all the functions.  Moving the init_ggc_heuristics
> > call is OK.
>
> I would like to, but opts.o is also put into all wrappers:
>
> g++ -no-pie   -g   -DIN_GCC     -fno-exceptions -fno-rtti 
> -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
> -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic 
> -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  
> -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc   -o xgcc gcc.o gcc-main.o 
> ggc-none.o \
>    c/gccspec.o driver-i386.o  libcommon-target.a \
>     libcommon.a ../libcpp/libcpp.a   ../libbacktrace/.libs/libbacktrace.a 
> ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a
> /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: 
> libcommon-target.a(opts.o): in function `init_options_struct(gcc_options*, 
> gcc_options*)':
> /home/marxin/Programming/gcc/gcc/opts.c:292: undefined reference to 
> `init_ggc_heuristics()'
> collect2: error: ld returned 1 exit status
> make: *** [Makefile:2037: xgcc] Error 1
>
> and adding ggc-common.o to OBJS-libcommon-target will not work.
> That's why I also moved the implementation.

Well, then call it from the caller of init_options_struct instead,
right after it or after the
langhook variant is called?

Richard.

>
> Martin
>
> >
> > Thanks,
> > Richard.
> >
> >> Thanks,
> >> Martin
> >>
> >> gcc/ChangeLog:
> >>
> >> 2019-11-18  Martin Liska  <mli...@suse.cz>
> >>
> >>          * ggc-common.c (ggc_rlimit_bound): Move to opts.c
> >>          (ggc_min_expand_heuristic): Likewise.
> >>          (ggc_min_heapsize_heuristic): Likewise.
> >>          (init_ggc_heuristics): Likewise.
> >>          * ggc.h (init_ggc_heuristics): Remove declaration.
> >>          * opts.c (ggc_rlimit_bound): Moved here from ggc-common.c.
> >>          (ggc_min_expand_heuristic): Likewise.
> >>          (ggc_min_heapsize_heuristic): Likewise.
> >>          (init_ggc_heuristics): Likewise.
> >>          (init_options_struct): Init GGC params.
> >>          * toplev.c (general_init): Remove call to init_ggc_heuristics.
> >> ---
> >>    gcc/ggc-common.c | 103 ---------------------------------------------
> >>    gcc/ggc.h        |   3 --
> >>    gcc/opts.c       | 106 +++++++++++++++++++++++++++++++++++++++++++++++
> >>    gcc/toplev.c     |   4 --
> >>    4 files changed, 106 insertions(+), 110 deletions(-)
> >>
> >>
>

Reply via email to