This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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

[Patch, libgfortran] PR 27740 Symbol versioning


:ADDPATCH fortran:

Compared to the previous iteration (http://gcc.gnu.org/ml/gcc-patches/2006-11/msg00194.html), this patch is now much simpler, since the namespace cleanup and the -fallow-leading-underscore option was committed separately.

Since libgfortran for gcc 4.3 already has bumped the so version since 4.2, I decided to not bump it again.

The map file should now contain the superset of all the exported symbols for all targets.

For the C99 stuff, I added those to a separate symbol node, named GFORTRAN_C99_1.0.

Regtested on i686-pc-linux-gnu.

Ok for trunk?

--
Janne Blomqvist
libgfortran ChangeLog:
	
2007-04-20  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/27740
	* configure.ac: New test to determine if symbol versioning is
	supported.
	* Makefile.am: Use result of above test to add appropriate linker
	flags.
	* gfortran.map: New file.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* config.h.in: Regenerated.
GFORTRAN_1.0 {
  global:
    _gfortran_abort;
    _gfortran_access_func;
    _gfortran_adjustl;
    _gfortran_adjustr;
    _gfortran_alarm_sub;
    _gfortran_alarm_sub_int;
    _gfortran_all_l16;
    _gfortran_all_l4;
    _gfortran_all_l8;
    _gfortran_allocate;
    _gfortran_allocate64;
    _gfortran_allocate64_array;
    _gfortran_allocate_array;
    _gfortran_any_l16;
    _gfortran_any_l4;
    _gfortran_any_l8;
    _gfortran_arandom_r10;
    _gfortran_arandom_r16;
    _gfortran_arandom_r4;
    _gfortran_arandom_r8;
    _gfortran_associated;
    _gfortran_chdir_i4;
    _gfortran_chdir_i4_sub;
    _gfortran_chdir_i8;
    _gfortran_chdir_i8_sub;
    _gfortran_chmod_func;
    _gfortran_chmod_i4_sub;
    _gfortran_chmod_i8_sub;
    _gfortran_compare_string;
    _gfortran_concat_string;
    _gfortran_count_16_l16;
    _gfortran_count_16_l4;
    _gfortran_count_16_l8;
    _gfortran_count_4_l16;
    _gfortran_count_4_l4;
    _gfortran_count_4_l8;
    _gfortran_count_8_l16;
    _gfortran_count_8_l4;
    _gfortran_count_8_l8;
    _gfortran_cpu_time_10;
    _gfortran_cpu_time_16;
    _gfortran_cpu_time_4;
    _gfortran_cpu_time_8;
    _gfortran_cshift0_1;
    _gfortran_cshift0_1_char;
    _gfortran_cshift0_2;
    _gfortran_cshift0_2_char;
    _gfortran_cshift0_4;
    _gfortran_cshift0_4_char;
    _gfortran_cshift0_8;
    _gfortran_cshift0_8_char;
    _gfortran_cshift1_16;
    _gfortran_cshift1_16_char;
    _gfortran_cshift1_4;
    _gfortran_cshift1_4_char;
    _gfortran_cshift1_8;
    _gfortran_cshift1_8_char;
    _gfortran_ctime;
    _gfortran_ctime_sub;
    _gfortran_date_and_time;
    _gfortran_deallocate;
    _gfortran_eoshift0_1;
    _gfortran_eoshift0_1_char;
    _gfortran_eoshift0_2;
    _gfortran_eoshift0_2_char;
    _gfortran_eoshift0_4;
    _gfortran_eoshift0_4_char;
    _gfortran_eoshift0_8;
    _gfortran_eoshift0_8_char;
    _gfortran_eoshift1_16;
    _gfortran_eoshift1_16_char;
    _gfortran_eoshift1_4;
    _gfortran_eoshift1_4_char;
    _gfortran_eoshift1_8;
    _gfortran_eoshift1_8_char;
    _gfortran_eoshift2_1;
    _gfortran_eoshift2_1_char;
    _gfortran_eoshift2_2;
    _gfortran_eoshift2_2_char;
    _gfortran_eoshift2_4;
    _gfortran_eoshift2_4_char;
    _gfortran_eoshift2_8;
    _gfortran_eoshift2_8_char;
    _gfortran_eoshift3_16;
    _gfortran_eoshift3_16_char;
    _gfortran_eoshift3_4;
    _gfortran_eoshift3_4_char;
    _gfortran_eoshift3_8;
    _gfortran_eoshift3_8_char;
    _gfortran_etime;
    _gfortran_etime_sub;
    _gfortran_exit_i4;
    _gfortran_exit_i8;
    _gfortran_exponent_r10;
    _gfortran_exponent_r16;
    _gfortran_exponent_r4;
    _gfortran_exponent_r8;
    _gfortran_fdate;
    _gfortran_fdate_sub;
    _gfortran_fget;
    _gfortran_fgetc;
    _gfortran_fgetc_i1_sub;
    _gfortran_fgetc_i2_sub;
    _gfortran_fgetc_i4_sub;
    _gfortran_fgetc_i8_sub;
    _gfortran_fget_i1_sub;
    _gfortran_fget_i2_sub;
    _gfortran_fget_i4_sub;
    _gfortran_fget_i8_sub;
    _gfortran_flush_i4;
    _gfortran_flush_i8;
    _gfortran_fnum_i4;
    _gfortran_fnum_i8;
    _gfortran_fput;
    _gfortran_fputc;
    _gfortran_fputc_i1_sub;
    _gfortran_fputc_i2_sub;
    _gfortran_fputc_i4_sub;
    _gfortran_fputc_i8_sub;
    _gfortran_fput_i1_sub;
    _gfortran_fput_i2_sub;
    _gfortran_fput_i4_sub;
    _gfortran_fput_i8_sub;
    _gfortran_fraction_r10;
    _gfortran_fraction_r16;
    _gfortran_fraction_r4;
    _gfortran_fraction_r8;
    _gfortran_free;
    _gfortran_fstat_i4;
    _gfortran_fstat_i4_sub;
    _gfortran_fstat_i8;
    _gfortran_fstat_i8_sub;
    _gfortran_ftell;
    _gfortran_ftell_i1_sub;
    _gfortran_ftell_i2_sub;
    _gfortran_ftell_i4_sub;
    _gfortran_ftell_i8_sub;
    _gfortran_gerror;
    _gfortran_getarg_i4;
    _gfortran_getarg_i8;
    _gfortran_get_command_argument_i4;
    _gfortran_get_command_argument_i8;
    _gfortran_get_command_i4;
    _gfortran_get_command_i8;
    _gfortran_getcwd;
    _gfortran_getcwd_i4_sub;
    _gfortran_getcwd_i8_sub;
    _gfortran_getenv;
    _gfortran_get_environment_variable_i4;
    _gfortran_get_environment_variable_i8;
    _gfortran_getgid;
    _gfortran_getlog;
    _gfortran_getpid;
    _gfortran_getuid;
    _gfortran_gmtime_i4;
    _gfortran_gmtime_i8;
    _gfortran_hostnm;
    _gfortran_hostnm_i4_sub;
    _gfortran_hostnm_i8_sub;
    _gfortran_iargc;
    _gfortran_idate_i4;
    _gfortran_idate_i8;
    _gfortran_ierrno_i4;
    _gfortran_ierrno_i8;
    _gfortran_internal_free;
    _gfortran_internal_malloc;
    _gfortran_internal_malloc64;
    _gfortran_internal_pack;
    _gfortran_internal_realloc;
    _gfortran_internal_realloc64;
    _gfortran_internal_unpack;
    _gfortran_irand;
    _gfortran_isatty_l4;
    _gfortran_isatty_l8;
    _gfortran_ishftc16;
    _gfortran_ishftc4;
    _gfortran_ishftc8;
    _gfortran_itime_i4;
    _gfortran_itime_i8;
    _gfortran_kill_i4;
    _gfortran_kill_i4_sub;
    _gfortran_kill_i8;
    _gfortran_kill_i8_sub;
    _gfortran_link_i4;
    _gfortran_link_i4_sub;
    _gfortran_link_i8;
    _gfortran_link_i8_sub;
    _gfortran_lstat_i4;
    _gfortran_lstat_i4_sub;
    _gfortran_lstat_i8;
    _gfortran_lstat_i8_sub;
    _gfortran_ltime_i4;
    _gfortran_ltime_i8;
    _gfortran_malloc;
    _gfortran_matmul_c10;
    _gfortran_matmul_c16;
    _gfortran_matmul_c4;
    _gfortran_matmul_c8;
    _gfortran_matmul_i1;
    _gfortran_matmul_i16;
    _gfortran_matmul_i2;
    _gfortran_matmul_i4;
    _gfortran_matmul_i8;
    _gfortran_matmul_l16;
    _gfortran_matmul_l4;
    _gfortran_matmul_l8;
    _gfortran_matmul_r10;
    _gfortran_matmul_r16;
    _gfortran_matmul_r4;
    _gfortran_matmul_r8;
    _gfortran_maxloc0_16_i1;
    _gfortran_maxloc0_16_i16;
    _gfortran_maxloc0_16_i2;
    _gfortran_maxloc0_16_i4;
    _gfortran_maxloc0_16_i8;
    _gfortran_maxloc0_16_r10;
    _gfortran_maxloc0_16_r16;
    _gfortran_maxloc0_16_r4;
    _gfortran_maxloc0_16_r8;
    _gfortran_maxloc0_4_i1;
    _gfortran_maxloc0_4_i16;
    _gfortran_maxloc0_4_i2;
    _gfortran_maxloc0_4_i4;
    _gfortran_maxloc0_4_i8;
    _gfortran_maxloc0_4_r10;
    _gfortran_maxloc0_4_r16;
    _gfortran_maxloc0_4_r4;
    _gfortran_maxloc0_4_r8;
    _gfortran_maxloc0_8_i1;
    _gfortran_maxloc0_8_i16;
    _gfortran_maxloc0_8_i2;
    _gfortran_maxloc0_8_i4;
    _gfortran_maxloc0_8_i8;
    _gfortran_maxloc0_8_r10;
    _gfortran_maxloc0_8_r16;
    _gfortran_maxloc0_8_r4;
    _gfortran_maxloc0_8_r8;
    _gfortran_maxloc1_16_i1;
    _gfortran_maxloc1_16_i16;
    _gfortran_maxloc1_16_i2;
    _gfortran_maxloc1_16_i4;
    _gfortran_maxloc1_16_i8;
    _gfortran_maxloc1_16_r10;
    _gfortran_maxloc1_16_r16;
    _gfortran_maxloc1_16_r4;
    _gfortran_maxloc1_16_r8;
    _gfortran_maxloc1_4_i1;
    _gfortran_maxloc1_4_i16;
    _gfortran_maxloc1_4_i2;
    _gfortran_maxloc1_4_i4;
    _gfortran_maxloc1_4_i8;
    _gfortran_maxloc1_4_r10;
    _gfortran_maxloc1_4_r16;
    _gfortran_maxloc1_4_r4;
    _gfortran_maxloc1_4_r8;
    _gfortran_maxloc1_8_i1;
    _gfortran_maxloc1_8_i16;
    _gfortran_maxloc1_8_i2;
    _gfortran_maxloc1_8_i4;
    _gfortran_maxloc1_8_i8;
    _gfortran_maxloc1_8_r10;
    _gfortran_maxloc1_8_r16;
    _gfortran_maxloc1_8_r4;
    _gfortran_maxloc1_8_r8;
    _gfortran_maxval_i1;
    _gfortran_maxval_i16;
    _gfortran_maxval_i2;
    _gfortran_maxval_i4;
    _gfortran_maxval_i8;
    _gfortran_maxval_r10;
    _gfortran_maxval_r16;
    _gfortran_maxval_r4;
    _gfortran_maxval_r8;
    _gfortran_mclock;
    _gfortran_mclock8;
    _gfortran_minloc0_16_i1;
    _gfortran_minloc0_16_i16;
    _gfortran_minloc0_16_i2;
    _gfortran_minloc0_16_i4;
    _gfortran_minloc0_16_i8;
    _gfortran_minloc0_16_r10;
    _gfortran_minloc0_16_r16;
    _gfortran_minloc0_16_r4;
    _gfortran_minloc0_16_r8;
    _gfortran_minloc0_4_i1;
    _gfortran_minloc0_4_i16;
    _gfortran_minloc0_4_i2;
    _gfortran_minloc0_4_i4;
    _gfortran_minloc0_4_i8;
    _gfortran_minloc0_4_r10;
    _gfortran_minloc0_4_r16;
    _gfortran_minloc0_4_r4;
    _gfortran_minloc0_4_r8;
    _gfortran_minloc0_8_i1;
    _gfortran_minloc0_8_i16;
    _gfortran_minloc0_8_i2;
    _gfortran_minloc0_8_i4;
    _gfortran_minloc0_8_i8;
    _gfortran_minloc0_8_r10;
    _gfortran_minloc0_8_r16;
    _gfortran_minloc0_8_r4;
    _gfortran_minloc0_8_r8;
    _gfortran_minloc1_16_i1;
    _gfortran_minloc1_16_i16;
    _gfortran_minloc1_16_i2;
    _gfortran_minloc1_16_i4;
    _gfortran_minloc1_16_i8;
    _gfortran_minloc1_16_r10;
    _gfortran_minloc1_16_r16;
    _gfortran_minloc1_16_r4;
    _gfortran_minloc1_16_r8;
    _gfortran_minloc1_4_i1;
    _gfortran_minloc1_4_i16;
    _gfortran_minloc1_4_i2;
    _gfortran_minloc1_4_i4;
    _gfortran_minloc1_4_i8;
    _gfortran_minloc1_4_r10;
    _gfortran_minloc1_4_r16;
    _gfortran_minloc1_4_r4;
    _gfortran_minloc1_4_r8;
    _gfortran_minloc1_8_i1;
    _gfortran_minloc1_8_i16;
    _gfortran_minloc1_8_i2;
    _gfortran_minloc1_8_i4;
    _gfortran_minloc1_8_i8;
    _gfortran_minloc1_8_r10;
    _gfortran_minloc1_8_r16;
    _gfortran_minloc1_8_r4;
    _gfortran_minloc1_8_r8;
    _gfortran_minval_i1;
    _gfortran_minval_i16;
    _gfortran_minval_i2;
    _gfortran_minval_i4;
    _gfortran_minval_i8;
    _gfortran_minval_r10;
    _gfortran_minval_r16;
    _gfortran_minval_r4;
    _gfortran_minval_r8;
    _gfortran_mmaxloc0_16_i1;
    _gfortran_mmaxloc0_16_i16;
    _gfortran_mmaxloc0_16_i2;
    _gfortran_mmaxloc0_16_i4;
    _gfortran_mmaxloc0_16_i8;
    _gfortran_mmaxloc0_16_r10;
    _gfortran_mmaxloc0_16_r16;
    _gfortran_mmaxloc0_16_r4;
    _gfortran_mmaxloc0_16_r8;
    _gfortran_mmaxloc0_4_i1;
    _gfortran_mmaxloc0_4_i16;
    _gfortran_mmaxloc0_4_i2;
    _gfortran_mmaxloc0_4_i4;
    _gfortran_mmaxloc0_4_i8;
    _gfortran_mmaxloc0_4_r10;
    _gfortran_mmaxloc0_4_r16;
    _gfortran_mmaxloc0_4_r4;
    _gfortran_mmaxloc0_4_r8;
    _gfortran_mmaxloc0_8_i1;
    _gfortran_mmaxloc0_8_i16;
    _gfortran_mmaxloc0_8_i2;
    _gfortran_mmaxloc0_8_i4;
    _gfortran_mmaxloc0_8_i8;
    _gfortran_mmaxloc0_8_r10;
    _gfortran_mmaxloc0_8_r16;
    _gfortran_mmaxloc0_8_r4;
    _gfortran_mmaxloc0_8_r8;
    _gfortran_mmaxloc1_16_i1;
    _gfortran_mmaxloc1_16_i16;
    _gfortran_mmaxloc1_16_i2;
    _gfortran_mmaxloc1_16_i4;
    _gfortran_mmaxloc1_16_i8;
    _gfortran_mmaxloc1_16_r10;
    _gfortran_mmaxloc1_16_r16;
    _gfortran_mmaxloc1_16_r4;
    _gfortran_mmaxloc1_16_r8;
    _gfortran_mmaxloc1_4_i1;
    _gfortran_mmaxloc1_4_i16;
    _gfortran_mmaxloc1_4_i2;
    _gfortran_mmaxloc1_4_i4;
    _gfortran_mmaxloc1_4_i8;
    _gfortran_mmaxloc1_4_r10;
    _gfortran_mmaxloc1_4_r16;
    _gfortran_mmaxloc1_4_r4;
    _gfortran_mmaxloc1_4_r8;
    _gfortran_mmaxloc1_8_i1;
    _gfortran_mmaxloc1_8_i16;
    _gfortran_mmaxloc1_8_i2;
    _gfortran_mmaxloc1_8_i4;
    _gfortran_mmaxloc1_8_i8;
    _gfortran_mmaxloc1_8_r10;
    _gfortran_mmaxloc1_8_r16;
    _gfortran_mmaxloc1_8_r4;
    _gfortran_mmaxloc1_8_r8;
    _gfortran_mmaxval_i1;
    _gfortran_mmaxval_i16;
    _gfortran_mmaxval_i2;
    _gfortran_mmaxval_i4;
    _gfortran_mmaxval_i8;
    _gfortran_mmaxval_r10;
    _gfortran_mmaxval_r16;
    _gfortran_mmaxval_r4;
    _gfortran_mmaxval_r8;
    _gfortran_mminloc0_16_i1;
    _gfortran_mminloc0_16_i16;
    _gfortran_mminloc0_16_i2;
    _gfortran_mminloc0_16_i4;
    _gfortran_mminloc0_16_i8;
    _gfortran_mminloc0_16_r10;
    _gfortran_mminloc0_16_r16;
    _gfortran_mminloc0_16_r4;
    _gfortran_mminloc0_16_r8;
    _gfortran_mminloc0_4_i1;
    _gfortran_mminloc0_4_i16;
    _gfortran_mminloc0_4_i2;
    _gfortran_mminloc0_4_i4;
    _gfortran_mminloc0_4_i8;
    _gfortran_mminloc0_4_r10;
    _gfortran_mminloc0_4_r16;
    _gfortran_mminloc0_4_r4;
    _gfortran_mminloc0_4_r8;
    _gfortran_mminloc0_8_i1;
    _gfortran_mminloc0_8_i16;
    _gfortran_mminloc0_8_i2;
    _gfortran_mminloc0_8_i4;
    _gfortran_mminloc0_8_i8;
    _gfortran_mminloc0_8_r10;
    _gfortran_mminloc0_8_r16;
    _gfortran_mminloc0_8_r4;
    _gfortran_mminloc0_8_r8;
    _gfortran_mminloc1_16_i1;
    _gfortran_mminloc1_16_i16;
    _gfortran_mminloc1_16_i2;
    _gfortran_mminloc1_16_i4;
    _gfortran_mminloc1_16_i8;
    _gfortran_mminloc1_16_r10;
    _gfortran_mminloc1_16_r16;
    _gfortran_mminloc1_16_r4;
    _gfortran_mminloc1_16_r8;
    _gfortran_mminloc1_4_i1;
    _gfortran_mminloc1_4_i16;
    _gfortran_mminloc1_4_i2;
    _gfortran_mminloc1_4_i4;
    _gfortran_mminloc1_4_i8;
    _gfortran_mminloc1_4_r10;
    _gfortran_mminloc1_4_r16;
    _gfortran_mminloc1_4_r4;
    _gfortran_mminloc1_4_r8;
    _gfortran_mminloc1_8_i1;
    _gfortran_mminloc1_8_i16;
    _gfortran_mminloc1_8_i2;
    _gfortran_mminloc1_8_i4;
    _gfortran_mminloc1_8_i8;
    _gfortran_mminloc1_8_r10;
    _gfortran_mminloc1_8_r16;
    _gfortran_mminloc1_8_r4;
    _gfortran_mminloc1_8_r8;
    _gfortran_mminval_i1;
    _gfortran_mminval_i16;
    _gfortran_mminval_i2;
    _gfortran_mminval_i4;
    _gfortran_mminval_i8;
    _gfortran_mminval_r10;
    _gfortran_mminval_r16;
    _gfortran_mminval_r4;
    _gfortran_mminval_r8;
    _gfortran_move_alloc;
    _gfortran_move_alloc_c;
    _gfortran_mproduct_c10;
    _gfortran_mproduct_c16;
    _gfortran_mproduct_c4;
    _gfortran_mproduct_c8;
    _gfortran_mproduct_i1;
    _gfortran_mproduct_i16;
    _gfortran_mproduct_i2;
    _gfortran_mproduct_i4;
    _gfortran_mproduct_i8;
    _gfortran_mproduct_r10;
    _gfortran_mproduct_r16;
    _gfortran_mproduct_r4;
    _gfortran_mproduct_r8;
    _gfortran_msum_c10;
    _gfortran_msum_c16;
    _gfortran_msum_c4;
    _gfortran_msum_c8;
    _gfortran_msum_i1;
    _gfortran_msum_i16;
    _gfortran_msum_i2;
    _gfortran_msum_i4;
    _gfortran_msum_i8;
    _gfortran_msum_r10;
    _gfortran_msum_r16;
    _gfortran_msum_r4;
    _gfortran_msum_r8;
    _gfortran_mvbits_i1;
    _gfortran_mvbits_i2;
    _gfortran_mvbits_i4;
    _gfortran_mvbits_i8;
    _gfortran_nearest_r10;
    _gfortran_nearest_r16;
    _gfortran_nearest_r4;
    _gfortran_nearest_r8;
    _gfortran_pack;
    _gfortran_pack_char;
    _gfortran_pack_s;
    _gfortran_pack_s_char;
    _gfortran_pause_numeric;
    _gfortran_pause_string;
    _gfortran_perror_sub;
    _gfortran_pow_c10_i16;
    _gfortran_pow_c10_i4;
    _gfortran_pow_c10_i8;
    _gfortran_pow_c16_i16;
    _gfortran_pow_c16_i4;
    _gfortran_pow_c16_i8;
    _gfortran_pow_c4_i16;
    _gfortran_pow_c4_i4;
    _gfortran_pow_c4_i8;
    _gfortran_pow_c8_i16;
    _gfortran_pow_c8_i4;
    _gfortran_pow_c8_i8;
    _gfortran_pow_i16_i16;
    _gfortran_pow_i16_i4;
    _gfortran_pow_i16_i8;
    _gfortran_pow_i4_i16;
    _gfortran_pow_i4_i4;
    _gfortran_pow_i4_i8;
    _gfortran_pow_i8_i16;
    _gfortran_pow_i8_i4;
    _gfortran_pow_i8_i8;
    _gfortran_pow_r10_i16;
    _gfortran_pow_r10_i4;
    _gfortran_pow_r10_i8;
    _gfortran_pow_r16_i16;
    _gfortran_pow_r16_i4;
    _gfortran_pow_r16_i8;
    _gfortran_pow_r4_i16;
    _gfortran_pow_r4_i4;
    _gfortran_pow_r4_i8;
    _gfortran_pow_r8_i16;
    _gfortran_pow_r8_i4;
    _gfortran_pow_r8_i8;
    _gfortran_product_c10;
    _gfortran_product_c16;
    _gfortran_product_c4;
    _gfortran_product_c8;
    _gfortran_product_i1;
    _gfortran_product_i16;
    _gfortran_product_i2;
    _gfortran_product_i4;
    _gfortran_product_i8;
    _gfortran_product_r10;
    _gfortran_product_r16;
    _gfortran_product_r4;
    _gfortran_product_r8;
    _gfortran_rand;
    _gfortran_random_r10;
    _gfortran_random_r16;
    _gfortran_random_r4;
    _gfortran_random_r8;
    _gfortran_random_seed;
    _gfortran_rename_i4;
    _gfortran_rename_i4_sub;
    _gfortran_rename_i8;
    _gfortran_rename_i8_sub;
    _gfortran_reshape;
    _gfortran_reshape_16;
    _gfortran_reshape_4;
    _gfortran_reshape_8;
    _gfortran_reshape_c10;
    _gfortran_reshape_c16;
    _gfortran_reshape_c4;
    _gfortran_reshape_c8;
    _gfortran_reshape_char;
    _gfortran_reshape_r10;
    _gfortran_reshape_r16;
    _gfortran_reshape_r4;
    _gfortran_reshape_r8;
    _gfortran_rrspacing_r10;
    _gfortran_rrspacing_r16;
    _gfortran_rrspacing_r4;
    _gfortran_rrspacing_r8;
    _gfortran_runtime_error;
    _gfortran_secnds;
    _gfortran_second;
    _gfortran_second_sub;
    _gfortran_selected_int_kind;
    _gfortran_selected_real_kind;
    _gfortran_select_string;
    _gfortran_set_args;
    _gfortran_set_convert;
    _gfortran_set_exponent_r10;
    _gfortran_set_exponent_r16;
    _gfortran_set_exponent_r4;
    _gfortran_set_exponent_r8;
    _gfortran_set_fpe;
    _gfortran_set_max_subrecord_length;
    _gfortran_set_record_marker;
    _gfortran_set_std;
    _gfortran_shape_16;
    _gfortran_shape_4;
    _gfortran_shape_8;
    _gfortran_signal_func;
    _gfortran_signal_func_int;
    _gfortran_signal_sub;
    _gfortran_signal_sub_int;
    _gfortran_size0;
    _gfortran_size1;
    _gfortran_sleep_i4_sub;
    _gfortran_sleep_i8_sub;
    _gfortran_smaxloc0_16_i1;
    _gfortran_smaxloc0_16_i16;
    _gfortran_smaxloc0_16_i2;
    _gfortran_smaxloc0_16_i4;
    _gfortran_smaxloc0_16_i8;
    _gfortran_smaxloc0_16_r10;
    _gfortran_smaxloc0_16_r16;
    _gfortran_smaxloc0_16_r4;
    _gfortran_smaxloc0_16_r8;
    _gfortran_smaxloc0_4_i1;
    _gfortran_smaxloc0_4_i16;
    _gfortran_smaxloc0_4_i2;
    _gfortran_smaxloc0_4_i4;
    _gfortran_smaxloc0_4_i8;
    _gfortran_smaxloc0_4_r10;
    _gfortran_smaxloc0_4_r16;
    _gfortran_smaxloc0_4_r4;
    _gfortran_smaxloc0_4_r8;
    _gfortran_smaxloc0_8_i1;
    _gfortran_smaxloc0_8_i16;
    _gfortran_smaxloc0_8_i2;
    _gfortran_smaxloc0_8_i4;
    _gfortran_smaxloc0_8_i8;
    _gfortran_smaxloc0_8_r10;
    _gfortran_smaxloc0_8_r16;
    _gfortran_smaxloc0_8_r4;
    _gfortran_smaxloc0_8_r8;
    _gfortran_smaxloc1_16_i1;
    _gfortran_smaxloc1_16_i16;
    _gfortran_smaxloc1_16_i2;
    _gfortran_smaxloc1_16_i4;
    _gfortran_smaxloc1_16_i8;
    _gfortran_smaxloc1_16_r10;
    _gfortran_smaxloc1_16_r16;
    _gfortran_smaxloc1_16_r4;
    _gfortran_smaxloc1_16_r8;
    _gfortran_smaxloc1_4_i1;
    _gfortran_smaxloc1_4_i16;
    _gfortran_smaxloc1_4_i2;
    _gfortran_smaxloc1_4_i4;
    _gfortran_smaxloc1_4_i8;
    _gfortran_smaxloc1_4_r10;
    _gfortran_smaxloc1_4_r16;
    _gfortran_smaxloc1_4_r4;
    _gfortran_smaxloc1_4_r8;
    _gfortran_smaxloc1_8_i1;
    _gfortran_smaxloc1_8_i16;
    _gfortran_smaxloc1_8_i2;
    _gfortran_smaxloc1_8_i4;
    _gfortran_smaxloc1_8_i8;
    _gfortran_smaxloc1_8_r10;
    _gfortran_smaxloc1_8_r16;
    _gfortran_smaxloc1_8_r4;
    _gfortran_smaxloc1_8_r8;
    _gfortran_smaxval_i1;
    _gfortran_smaxval_i16;
    _gfortran_smaxval_i2;
    _gfortran_smaxval_i4;
    _gfortran_smaxval_i8;
    _gfortran_smaxval_r10;
    _gfortran_smaxval_r16;
    _gfortran_smaxval_r4;
    _gfortran_smaxval_r8;
    _gfortran_sminloc0_16_i1;
    _gfortran_sminloc0_16_i16;
    _gfortran_sminloc0_16_i2;
    _gfortran_sminloc0_16_i4;
    _gfortran_sminloc0_16_i8;
    _gfortran_sminloc0_16_r10;
    _gfortran_sminloc0_16_r16;
    _gfortran_sminloc0_16_r4;
    _gfortran_sminloc0_16_r8;
    _gfortran_sminloc0_4_i1;
    _gfortran_sminloc0_4_i16;
    _gfortran_sminloc0_4_i2;
    _gfortran_sminloc0_4_i4;
    _gfortran_sminloc0_4_i8;
    _gfortran_sminloc0_4_r10;
    _gfortran_sminloc0_4_r16;
    _gfortran_sminloc0_4_r4;
    _gfortran_sminloc0_4_r8;
    _gfortran_sminloc0_8_i1;
    _gfortran_sminloc0_8_i16;
    _gfortran_sminloc0_8_i2;
    _gfortran_sminloc0_8_i4;
    _gfortran_sminloc0_8_i8;
    _gfortran_sminloc0_8_r10;
    _gfortran_sminloc0_8_r16;
    _gfortran_sminloc0_8_r4;
    _gfortran_sminloc0_8_r8;
    _gfortran_sminloc1_16_i1;
    _gfortran_sminloc1_16_i16;
    _gfortran_sminloc1_16_i2;
    _gfortran_sminloc1_16_i4;
    _gfortran_sminloc1_16_i8;
    _gfortran_sminloc1_16_r10;
    _gfortran_sminloc1_16_r16;
    _gfortran_sminloc1_16_r4;
    _gfortran_sminloc1_16_r8;
    _gfortran_sminloc1_4_i1;
    _gfortran_sminloc1_4_i16;
    _gfortran_sminloc1_4_i2;
    _gfortran_sminloc1_4_i4;
    _gfortran_sminloc1_4_i8;
    _gfortran_sminloc1_4_r10;
    _gfortran_sminloc1_4_r16;
    _gfortran_sminloc1_4_r4;
    _gfortran_sminloc1_4_r8;
    _gfortran_sminloc1_8_i1;
    _gfortran_sminloc1_8_i16;
    _gfortran_sminloc1_8_i2;
    _gfortran_sminloc1_8_i4;
    _gfortran_sminloc1_8_i8;
    _gfortran_sminloc1_8_r10;
    _gfortran_sminloc1_8_r16;
    _gfortran_sminloc1_8_r4;
    _gfortran_sminloc1_8_r8;
    _gfortran_sminval_i1;
    _gfortran_sminval_i16;
    _gfortran_sminval_i2;
    _gfortran_sminval_i4;
    _gfortran_sminval_i8;
    _gfortran_sminval_r10;
    _gfortran_sminval_r16;
    _gfortran_sminval_r4;
    _gfortran_sminval_r8;
    _gfortran_spacing_r10;
    _gfortran_spacing_r16;
    _gfortran_spacing_r4;
    _gfortran_spacing_r8;
    _gfortran_specific__abs_c10;
    _gfortran_specific__abs_c16;
    _gfortran_specific__abs_c4;
    _gfortran_specific__abs_c8;
    _gfortran_specific__abs_i16;
    _gfortran_specific__abs_i4;
    _gfortran_specific__abs_i8;
    _gfortran_specific__abs_r10;
    _gfortran_specific__abs_r16;
    _gfortran_specific__abs_r4;
    _gfortran_specific__abs_r8;
    _gfortran_specific__acosh_r10;
    _gfortran_specific__acosh_r16;
    _gfortran_specific__acosh_r4;
    _gfortran_specific__acosh_r8;
    _gfortran_specific__acos_r10;
    _gfortran_specific__acos_r16;
    _gfortran_specific__acos_r4;
    _gfortran_specific__acos_r8;
    _gfortran_specific__aimag_c10;
    _gfortran_specific__aimag_c16;
    _gfortran_specific__aimag_c4;
    _gfortran_specific__aimag_c8;
    _gfortran_specific__aint_r10;
    _gfortran_specific__aint_r16;
    _gfortran_specific__aint_r4;
    _gfortran_specific__aint_r8;
    _gfortran_specific__anint_r10;
    _gfortran_specific__anint_r16;
    _gfortran_specific__anint_r4;
    _gfortran_specific__anint_r8;
    _gfortran_specific__asinh_r10;
    _gfortran_specific__asinh_r16;
    _gfortran_specific__asinh_r4;
    _gfortran_specific__asinh_r8;
    _gfortran_specific__asin_r10;
    _gfortran_specific__asin_r16;
    _gfortran_specific__asin_r4;
    _gfortran_specific__asin_r8;
    _gfortran_specific__atan2_r10;
    _gfortran_specific__atan2_r16;
    _gfortran_specific__atan2_r4;
    _gfortran_specific__atan2_r8;
    _gfortran_specific__atanh_r10;
    _gfortran_specific__atanh_r16;
    _gfortran_specific__atanh_r4;
    _gfortran_specific__atanh_r8;
    _gfortran_specific__atan_r10;
    _gfortran_specific__atan_r16;
    _gfortran_specific__atan_r4;
    _gfortran_specific__atan_r8;
    _gfortran_specific__char_1_i16;
    _gfortran_specific__char_1_i4;
    _gfortran_specific__char_1_i8;
    _gfortran_specific__conjg_10;
    _gfortran_specific__conjg_16;
    _gfortran_specific__conjg_4;
    _gfortran_specific__conjg_8;
    _gfortran_specific__cos_c10;
    _gfortran_specific__cos_c16;
    _gfortran_specific__cos_c4;
    _gfortran_specific__cos_c8;
    _gfortran_specific__cosh_r10;
    _gfortran_specific__cosh_r16;
    _gfortran_specific__cosh_r4;
    _gfortran_specific__cosh_r8;
    _gfortran_specific__cos_r10;
    _gfortran_specific__cos_r16;
    _gfortran_specific__cos_r4;
    _gfortran_specific__cos_r8;
    _gfortran_specific__dim_i16;
    _gfortran_specific__dim_i4;
    _gfortran_specific__dim_i8;
    _gfortran_specific__dim_r10;
    _gfortran_specific__dim_r16;
    _gfortran_specific__dim_r4;
    _gfortran_specific__dim_r8;
    _gfortran_specific__dprod_r8;
    _gfortran_specific__exp_c10;
    _gfortran_specific__exp_c16;
    _gfortran_specific__exp_c4;
    _gfortran_specific__exp_c8;
    _gfortran_specific__exp_r10;
    _gfortran_specific__exp_r16;
    _gfortran_specific__exp_r4;
    _gfortran_specific__exp_r8;
    _gfortran_specific__index_1_i16;
    _gfortran_specific__index_1_i4;
    _gfortran_specific__index_1_i8;
    _gfortran_specific__len_1_i16;
    _gfortran_specific__len_1_i4;
    _gfortran_specific__len_1_i8;
    _gfortran_specific__log10_r10;
    _gfortran_specific__log10_r16;
    _gfortran_specific__log10_r4;
    _gfortran_specific__log10_r8;
    _gfortran_specific__log_c10;
    _gfortran_specific__log_c16;
    _gfortran_specific__log_c4;
    _gfortran_specific__log_c8;
    _gfortran_specific__log_r10;
    _gfortran_specific__log_r16;
    _gfortran_specific__log_r4;
    _gfortran_specific__log_r8;
    _gfortran_specific__mod_i16;
    _gfortran_specific__mod_i4;
    _gfortran_specific__mod_i8;
    _gfortran_specific__mod_r10;
    _gfortran_specific__mod_r16;
    _gfortran_specific__mod_r4;
    _gfortran_specific__mod_r8;
    _gfortran_specific__nint_16_10;
    _gfortran_specific__nint_16_16;
    _gfortran_specific__nint_16_4;
    _gfortran_specific__nint_16_8;
    _gfortran_specific__nint_4_10;
    _gfortran_specific__nint_4_16;
    _gfortran_specific__nint_4_4;
    _gfortran_specific__nint_4_8;
    _gfortran_specific__nint_8_10;
    _gfortran_specific__nint_8_16;
    _gfortran_specific__nint_8_4;
    _gfortran_specific__nint_8_8;
    _gfortran_specific__sign_i16;
    _gfortran_specific__sign_i4;
    _gfortran_specific__sign_i8;
    _gfortran_specific__sign_r10;
    _gfortran_specific__sign_r16;
    _gfortran_specific__sign_r4;
    _gfortran_specific__sign_r8;
    _gfortran_specific__sin_c10;
    _gfortran_specific__sin_c16;
    _gfortran_specific__sin_c4;
    _gfortran_specific__sin_c8;
    _gfortran_specific__sinh_r10;
    _gfortran_specific__sinh_r16;
    _gfortran_specific__sinh_r4;
    _gfortran_specific__sinh_r8;
    _gfortran_specific__sin_r10;
    _gfortran_specific__sin_r16;
    _gfortran_specific__sin_r4;
    _gfortran_specific__sin_r8;
    _gfortran_specific__sqrt_c10;
    _gfortran_specific__sqrt_c16;
    _gfortran_specific__sqrt_c4;
    _gfortran_specific__sqrt_c8;
    _gfortran_specific__sqrt_r10;
    _gfortran_specific__sqrt_r16;
    _gfortran_specific__sqrt_r4;
    _gfortran_specific__sqrt_r8;
    _gfortran_specific__tanh_r10;
    _gfortran_specific__tanh_r16;
    _gfortran_specific__tanh_r4;
    _gfortran_specific__tanh_r8;
    _gfortran_specific__tan_r10;
    _gfortran_specific__tan_r16;
    _gfortran_specific__tan_r4;
    _gfortran_specific__tan_r8;
    _gfortran_spread;
    _gfortran_spread_char;
    _gfortran_spread_char_scalar;
    _gfortran_spread_scalar;
    _gfortran_sproduct_c10;
    _gfortran_sproduct_c16;
    _gfortran_sproduct_c4;
    _gfortran_sproduct_c8;
    _gfortran_sproduct_i1;
    _gfortran_sproduct_i16;
    _gfortran_sproduct_i2;
    _gfortran_sproduct_i4;
    _gfortran_sproduct_i8;
    _gfortran_sproduct_r10;
    _gfortran_sproduct_r16;
    _gfortran_sproduct_r4;
    _gfortran_sproduct_r8;
    _gfortran_srand;
    _gfortran_ssum_c10;
    _gfortran_ssum_c16;
    _gfortran_ssum_c4;
    _gfortran_ssum_c8;
    _gfortran_ssum_i1;
    _gfortran_ssum_i16;
    _gfortran_ssum_i2;
    _gfortran_ssum_i4;
    _gfortran_ssum_i8;
    _gfortran_ssum_r10;
    _gfortran_ssum_r16;
    _gfortran_ssum_r4;
    _gfortran_ssum_r8;
    _gfortran_stat_i4;
    _gfortran_stat_i4_sub;
    _gfortran_stat_i8;
    _gfortran_stat_i8_sub;
    _gfortran_st_backspace;
    _gfortran_st_close;
    _gfortran_st_endfile;
    _gfortran_st_flush;
    _gfortran_st_inquire;
    _gfortran_st_iolength;
    _gfortran_st_iolength_done;
    _gfortran_st_open;
    _gfortran_stop_numeric;
    _gfortran_stop_string;
    _gfortran_store_exe_path;
    _gfortran_st_read;
    _gfortran_st_read_done;
    _gfortran_st_rewind;
    _gfortran_string_index;
    _gfortran_string_len_trim;
    _gfortran_string_scan;
    _gfortran_string_trim;
    _gfortran_string_verify;
    _gfortran_st_set_nml_var;
    _gfortran_st_set_nml_var_dim;
    _gfortran_st_write;
    _gfortran_st_write_done;
    _gfortran_sum_c10;
    _gfortran_sum_c16;
    _gfortran_sum_c4;
    _gfortran_sum_c8;
    _gfortran_sum_i1;
    _gfortran_sum_i16;
    _gfortran_sum_i2;
    _gfortran_sum_i4;
    _gfortran_sum_i8;
    _gfortran_sum_r10;
    _gfortran_sum_r16;
    _gfortran_sum_r4;
    _gfortran_sum_r8;
    _gfortran_symlnk_i4;
    _gfortran_symlnk_i4_sub;
    _gfortran_symlnk_i8;
    _gfortran_symlnk_i8_sub;
    _gfortran_system;
    _gfortran_system_clock_4;
    _gfortran_system_clock_8;
    _gfortran_system_sub;
    _gfortran_time8_func;
    _gfortran_time_func;
    _gfortran_transfer_array;
    _gfortran_transfer_character;
    _gfortran_transfer_complex;
    _gfortran_transfer_integer;
    _gfortran_transfer_logical;
    _gfortran_transfer_real;
    _gfortran_transpose;
    _gfortran_transpose_c10;
    _gfortran_transpose_c16;
    _gfortran_transpose_c4;
    _gfortran_transpose_c8;
    _gfortran_transpose_char;
    _gfortran_transpose_i16;
    _gfortran_transpose_i4;
    _gfortran_transpose_i8;
    _gfortran_transpose_r10;
    _gfortran_transpose_r16;
    _gfortran_transpose_r4;
    _gfortran_transpose_r8;
    _gfortran_ttynam;
    _gfortran_ttynam_sub;
    _gfortran_umask_i4;
    _gfortran_umask_i4_sub;
    _gfortran_umask_i8;
    _gfortran_umask_i8_sub;
    _gfortran_unlink;
    _gfortran_unlink_i4_sub;
    _gfortran_unlink_i8_sub;
    _gfortran_unpack0;
    _gfortran_unpack0_char;
    _gfortran_unpack1;
    _gfortran_unpack1_char;
  local:
    *;
};

F2C_1.0 {
  global:
    _gfortran_f2c_specific__abs_c4;
    _gfortran_f2c_specific__abs_r4;
    _gfortran_f2c_specific__acosh_r4;
    _gfortran_f2c_specific__acos_r4;
    _gfortran_f2c_specific__aimag_c4;
    _gfortran_f2c_specific__aimag_c8;
    _gfortran_f2c_specific__aint_r4;
    _gfortran_f2c_specific__anint_r4;
    _gfortran_f2c_specific__asinh_r4;
    _gfortran_f2c_specific__asin_r4;
    _gfortran_f2c_specific__atan2_r4;
    _gfortran_f2c_specific__atanh_r4;
    _gfortran_f2c_specific__atan_r4;
    _gfortran_f2c_specific__conjg_4;
    _gfortran_f2c_specific__conjg_8;
    _gfortran_f2c_specific__cos_c4;
    _gfortran_f2c_specific__cos_c8;
    _gfortran_f2c_specific__cosh_r4;
    _gfortran_f2c_specific__cos_r4;
    _gfortran_f2c_specific__dim_r4;
    _gfortran_f2c_specific__exp_c4;
    _gfortran_f2c_specific__exp_c8;
    _gfortran_f2c_specific__exp_r4;
    _gfortran_f2c_specific__log10_r4;
    _gfortran_f2c_specific__log_c4;
    _gfortran_f2c_specific__log_c8;
    _gfortran_f2c_specific__log_r4;
    _gfortran_f2c_specific__mod_r4;
    _gfortran_f2c_specific__sign_r4;
    _gfortran_f2c_specific__sin_c4;
    _gfortran_f2c_specific__sin_c8;
    _gfortran_f2c_specific__sinh_r4;
    _gfortran_f2c_specific__sin_r4;
    _gfortran_f2c_specific__sqrt_c4;
    _gfortran_f2c_specific__sqrt_c8;
    _gfortran_f2c_specific__sqrt_r4;
    _gfortran_f2c_specific__tanh_r4;
    _gfortran_f2c_specific__tan_r4;
};

GFORTRAN_C99_1.0 {
  global:
    acosf;
    acoshf;
    asinf;
    asinhf;
    atan2f;
    atanf;
    atanhf;
    cabs;
    cabsf;
    cabsl;
    carg;
    cargf;
    cargl;
    ccos;
    ccosf;
    ccosh;
    ccoshf;
    ccoshl;
    ccosl;
    ceilf;
    cexp;
    cexpf;
    cexpl;
    clog;
    clog10;
    clog10f;
    clog10l;
    clogf;
    clogl;
    copysignf;
    cosf;
    coshf;
    cpow;
    cpowf;
    cpowl;
    csin;
    csinf;
    csinh;
    csinhf;
    csinhl;
    csinl;
    csqrt;
    csqrtf;
    csqrtl;
    ctan;
    ctanf;
    ctanh;
    ctanhf;
    ctanhl;
    ctanl;
    erfcf;
    erff;
    expf;
    fabsf;
    floorf;
    floorl;
    fmodf;
    fmodl;
    frexpf;
    hypotf;
    j0f;
    j1f;
    jnf;
    log10f;
    log10l;
    logf;
    nextafterf;
    powf;
    round;
    roundf;
    scalbn;
    scalbnf;
    sinf;
    sinhf;
    sqrtf;
    tanf;
    tanhf;
    trunc;
    truncf;
    y0f;
    y1f;
    ynf;
};
Index: configure.ac
===================================================================
--- configure.ac	(revision 123987)
+++ configure.ac	(working copy)
@@ -122,6 +122,20 @@ fi
 AC_SUBST(AM_FCFLAGS)
 AC_SUBST(AM_CFLAGS)
 
+# Check for symbol versioning (copied from libssp).
+AC_MSG_CHECKING([whether symbol versioning is supported])
+cat > conftest.map <<EOF
+FOO_1.0 {
+  global: *foo*; bar; local: *;
+};
+EOF
+save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
+AC_TRY_LINK([int foo;],[],[gfortran_use_symver=yes],[gfortran_use_symver=no])
+LDFLAGS="$save_LDFLAGS"
+AC_MSG_RESULT($gfortran_use_symver)
+AM_CONDITIONAL(LIBGFOR_USE_SYMVER, [test "x$gfortran_use_symver" = xyes])
+
 # Find other programs we need.
 AC_CHECK_TOOL(AS, as)
 AC_CHECK_TOOL(AR, ar)
Index: Makefile.am
===================================================================
--- Makefile.am	(revision 123987)
+++ Makefile.am	(working copy)
@@ -6,9 +6,16 @@ ACLOCAL_AMFLAGS = -I .. -I ../config
 ## May be used by toolexeclibdir.
 gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
 
+## Symbol versioning (copied from libssp).
+if LIBGFOR_USE_SYMVER
+version_arg = -Wl,--version-script=$(srcdir)/gfortran.map
+else
+version_arg =
+endif
+
 toolexeclib_LTLIBRARIES = libgfortran.la
 libgfortran_la_LINK = $(LINK)
-libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran)
+libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran) $(version_arg)
 
 myexeclib_LTLIBRARIES = libgfortranbegin.la
 myexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)

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