Add a soname

gcc/jit/
	* Make-lang.in (LIBGCCJIT_LINKER_NAME): New.
	(LIBGCCJIT_VERSION_NUM): New.
	(LIBGCCJIT_MINOR_NUM): New.
	(LIBGCCJIT_RELEASE_NUM): New.
	(LIBGCCJIT_SONAME): New.
	(LIBGCCJIT_FILENAME): New.
	(LIBGCCJIT_LINKER_NAME_SYMLINK): New.
	(LIBGCCJIT_SONAME_SYMLINK): New.
	(jit): Add symlink targets.
	(libgccjit.so): Convert to...
	(LIBGCCJIT_FILENAME): ...and add a soname.
	(jit.install-common): Install the library with a soname, and
	symlinks.  Install libgccjit++.h.
Introduce params_c_finalize

Attempting to repeatedly compile in-process led to assertion failures in
a release build on the 2nd compile within a process:

156	void
157	set_default_param_value (compiler_param num, int value)
158	{
159 >>>>  gcc_assert (!params_finished);
160
161       compiler_params[(int) num].default_value = value;
162	}

 #0  fancy_abort (file=file@entry=0x7fffecf394a0 "../../gcc/params.c", line=line@entry=159,
    function=function@entry=0x7fffecf3d550 <set_default_param_value(compiler_param, int)::__FUNCTION__> "set_default_param_value")
    at ../../gcc/diagnostic.c:1182
 #1  0x00007fffecc9cc07 in set_default_param_value (num=num@entry=GGC_MIN_EXPAND, value=<optimized out>) at ../../gcc/params.c:159
 #2  0x00007fffec654685 in init_ggc_heuristics () at ../../gcc/ggc-common.c:899
 #3  0x00007fffec52b265 in general_init (argv0=<optimized out>) at ../../gcc/toplev.c:1179
 #4  toplev::main (this=this@entry=0x7fffffff9cdf, argc=argc@entry=5, argv=argv@entry=0x7fffffff9ce0) at ../../gcc/toplev.c:1944

due to these guards:

895     void
896     init_ggc_heuristics (void)
897     {
898 >>> #if !defined ENABLE_GC_CHECKING && !defined ENABLE_GC_ALWAYS_COLLECT
899       set_default_param_value (GGC_MIN_EXPAND, ggc_min_expand_heuristic ());
900       set_default_param_value (GGC_MIN_HEAPSIZE, ggc_min_heapsize_heuristic ());
901     #endif
902     }

which prevent it being seen in a devel build.

The issue here is that init_ggc_heuristics is reinitializing the default
param and thus assuming that param initialization is still in progress.
My previous attempt at handling multiple initialization of params
which simply made it idempotent leaves params_finished as true.
Instead, introduce params_c_finalize to purge state within params.c so
that we fully reinitialize things each time.

gcc/
	* params.c (global_init_params): Require that params_finished be
	false, rather than being idempotent, in favor of purging all state
	between toplev invocations, since in a release build
	init_ggc_heuristics calls set_param_value_internal, and the
	latter assumes that params_finished is true.
	(params_c_finalize): New.
	* params.h (params_c_finalize): New.
	* toplev.c (toplev::finalize): Call params_c_finalize.