This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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] |
-- Janne Blomqvist
gfortran ChangeLog: 2006-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/27740 * gfortran.h: New variable flag_allow_leading_underscore. * lang.opt: New command line option -fallow-leading-underscore * trans-decl.c (gfc_get_extern_function_decl): Use symbol names starting with _gfortran_ * match.c (gfc_match_name): Match allow-leading-underscore * options.c: Init new variable. (gfc_handle_option): Handle new option. libgfortran: 2006-05-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 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. * libtool-version: Increase major version. * m4/misc_specifics.m4: Add _gfortran_ to symbol names. * m4/specific2.m4: Likewise. * m4/specific.m4: Likewise. * intrinsics/selected_int_kind.f90: Likewise. * intrinsics/selected_real_kind.f90: Likewise. * intrinsics/f2c_specifics.F90: Likewise. * intrinsics/dprod_r8.f90: Likewise. * configure: Regenerated. * Makefile.in: Regenerated. * generated/...: Regenerated specifics.
Attachment:
createmap.sh
Description: application/shellscript
GFORTRAN_1.0 { global: _fini; _gfortran_abort; _gfortran_access_func; _gfortran_adjustl; _gfortran_adjustr; _gfortran_alarm_sub; _gfortran_alarm_sub_int; _gfortran_all_l4; _gfortran_all_l8; _gfortran_allocate; _gfortran_allocate64; _gfortran_allocate64_array; _gfortran_allocate_array; _gfortran_any_l4; _gfortran_any_l8; _gfortran_arandom_r10; _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_4_l4; _gfortran_count_4_l8; _gfortran_count_8_l4; _gfortran_count_8_l8; _gfortran_cpu_time_10; _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_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_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_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_r4; _gfortran_exponent_r8; _gfortran_fdate; _gfortran_fdate_sub; _gfortran_fget; _gfortran_fget_i1_sub; _gfortran_fget_i2_sub; _gfortran_fget_i4_sub; _gfortran_fget_i8_sub; _gfortran_fgetc; _gfortran_fgetc_i1_sub; _gfortran_fgetc_i2_sub; _gfortran_fgetc_i4_sub; _gfortran_fgetc_i8_sub; _gfortran_flush_i4; _gfortran_flush_i8; _gfortran_fnum_i4; _gfortran_fnum_i8; _gfortran_fput; _gfortran_fput_i1_sub; _gfortran_fput_i2_sub; _gfortran_fput_i4_sub; _gfortran_fput_i8_sub; _gfortran_fputc; _gfortran_fputc_i1_sub; _gfortran_fputc_i2_sub; _gfortran_fputc_i4_sub; _gfortran_fputc_i8_sub; _gfortran_fraction_r10; _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_get_command_argument_i4; _gfortran_get_command_argument_i8; _gfortran_get_command_i4; _gfortran_get_command_i8; _gfortran_get_environment_variable_i4; _gfortran_get_environment_variable_i8; _gfortran_getarg_i4; _gfortran_getarg_i8; _gfortran_getcwd; _gfortran_getcwd_i4_sub; _gfortran_getcwd_i8_sub; _gfortran_getenv; _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_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_c4; _gfortran_matmul_c8; _gfortran_matmul_i4; _gfortran_matmul_i8; _gfortran_matmul_l4; _gfortran_matmul_l8; _gfortran_matmul_r10; _gfortran_matmul_r4; _gfortran_matmul_r8; _gfortran_maxloc0_4_i4; _gfortran_maxloc0_4_i8; _gfortran_maxloc0_4_r10; _gfortran_maxloc0_4_r4; _gfortran_maxloc0_4_r8; _gfortran_maxloc0_8_i4; _gfortran_maxloc0_8_i8; _gfortran_maxloc0_8_r10; _gfortran_maxloc0_8_r4; _gfortran_maxloc0_8_r8; _gfortran_maxloc1_4_i4; _gfortran_maxloc1_4_i8; _gfortran_maxloc1_4_r10; _gfortran_maxloc1_4_r4; _gfortran_maxloc1_4_r8; _gfortran_maxloc1_8_i4; _gfortran_maxloc1_8_i8; _gfortran_maxloc1_8_r10; _gfortran_maxloc1_8_r4; _gfortran_maxloc1_8_r8; _gfortran_maxval_i4; _gfortran_maxval_i8; _gfortran_maxval_r10; _gfortran_maxval_r4; _gfortran_maxval_r8; _gfortran_mclock; _gfortran_mclock8; _gfortran_minloc0_4_i4; _gfortran_minloc0_4_i8; _gfortran_minloc0_4_r10; _gfortran_minloc0_4_r4; _gfortran_minloc0_4_r8; _gfortran_minloc0_8_i4; _gfortran_minloc0_8_i8; _gfortran_minloc0_8_r10; _gfortran_minloc0_8_r4; _gfortran_minloc0_8_r8; _gfortran_minloc1_4_i4; _gfortran_minloc1_4_i8; _gfortran_minloc1_4_r10; _gfortran_minloc1_4_r4; _gfortran_minloc1_4_r8; _gfortran_minloc1_8_i4; _gfortran_minloc1_8_i8; _gfortran_minloc1_8_r10; _gfortran_minloc1_8_r4; _gfortran_minloc1_8_r8; _gfortran_minval_i4; _gfortran_minval_i8; _gfortran_minval_r10; _gfortran_minval_r4; _gfortran_minval_r8; _gfortran_mmaxloc0_4_i4; _gfortran_mmaxloc0_4_i8; _gfortran_mmaxloc0_4_r10; _gfortran_mmaxloc0_4_r4; _gfortran_mmaxloc0_4_r8; _gfortran_mmaxloc0_8_i4; _gfortran_mmaxloc0_8_i8; _gfortran_mmaxloc0_8_r10; _gfortran_mmaxloc0_8_r4; _gfortran_mmaxloc0_8_r8; _gfortran_mmaxloc1_4_i4; _gfortran_mmaxloc1_4_i8; _gfortran_mmaxloc1_4_r10; _gfortran_mmaxloc1_4_r4; _gfortran_mmaxloc1_4_r8; _gfortran_mmaxloc1_8_i4; _gfortran_mmaxloc1_8_i8; _gfortran_mmaxloc1_8_r10; _gfortran_mmaxloc1_8_r4; _gfortran_mmaxloc1_8_r8; _gfortran_mmaxval_i4; _gfortran_mmaxval_i8; _gfortran_mmaxval_r10; _gfortran_mmaxval_r4; _gfortran_mmaxval_r8; _gfortran_mminloc0_4_i4; _gfortran_mminloc0_4_i8; _gfortran_mminloc0_4_r10; _gfortran_mminloc0_4_r4; _gfortran_mminloc0_4_r8; _gfortran_mminloc0_8_i4; _gfortran_mminloc0_8_i8; _gfortran_mminloc0_8_r10; _gfortran_mminloc0_8_r4; _gfortran_mminloc0_8_r8; _gfortran_mminloc1_4_i4; _gfortran_mminloc1_4_i8; _gfortran_mminloc1_4_r10; _gfortran_mminloc1_4_r4; _gfortran_mminloc1_4_r8; _gfortran_mminloc1_8_i4; _gfortran_mminloc1_8_i8; _gfortran_mminloc1_8_r10; _gfortran_mminloc1_8_r4; _gfortran_mminloc1_8_r8; _gfortran_mminval_i4; _gfortran_mminval_i8; _gfortran_mminval_r10; _gfortran_mminval_r4; _gfortran_mminval_r8; _gfortran_move_alloc; _gfortran_move_alloc_c; _gfortran_mproduct_c10; _gfortran_mproduct_c4; _gfortran_mproduct_c8; _gfortran_mproduct_i4; _gfortran_mproduct_i8; _gfortran_mproduct_r10; _gfortran_mproduct_r4; _gfortran_mproduct_r8; _gfortran_msum_c10; _gfortran_msum_c4; _gfortran_msum_c8; _gfortran_msum_i4; _gfortran_msum_i8; _gfortran_msum_r10; _gfortran_msum_r4; _gfortran_msum_r8; _gfortran_mvbits_i1; _gfortran_mvbits_i2; _gfortran_mvbits_i4; _gfortran_mvbits_i8; _gfortran_nearest_r10; _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_i4; _gfortran_pow_c10_i8; _gfortran_pow_c4_i4; _gfortran_pow_c4_i8; _gfortran_pow_c8_i4; _gfortran_pow_c8_i8; _gfortran_pow_i4_i4; _gfortran_pow_i4_i8; _gfortran_pow_i8_i4; _gfortran_pow_i8_i8; _gfortran_pow_r10_i4; _gfortran_pow_r10_i8; _gfortran_pow_r4_i4; _gfortran_pow_r4_i8; _gfortran_pow_r8_i4; _gfortran_pow_r8_i8; _gfortran_product_c10; _gfortran_product_c4; _gfortran_product_c8; _gfortran_product_i4; _gfortran_product_i8; _gfortran_product_r10; _gfortran_product_r4; _gfortran_product_r8; _gfortran_rand; _gfortran_random_r10; _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_4; _gfortran_reshape_8; _gfortran_reshape_c10; _gfortran_reshape_c4; _gfortran_reshape_c8; _gfortran_reshape_char; _gfortran_reshape_r10; _gfortran_reshape_r4; _gfortran_reshape_r8; _gfortran_rrspacing_r10; _gfortran_rrspacing_r4; _gfortran_rrspacing_r8; _gfortran_runtime_error; _gfortran_secnds; _gfortran_second; _gfortran_second_sub; _gfortran_select_string; _gfortran_selected_int_kind; _gfortran_selected_real_kind; _gfortran_set_args; _gfortran_set_convert; _gfortran_set_exponent_r10; _gfortran_set_exponent_r4; _gfortran_set_exponent_r8; _gfortran_set_fpe; _gfortran_set_record_marker; _gfortran_set_std; _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_4_i4; _gfortran_smaxloc0_4_i8; _gfortran_smaxloc0_4_r10; _gfortran_smaxloc0_4_r4; _gfortran_smaxloc0_4_r8; _gfortran_smaxloc0_8_i4; _gfortran_smaxloc0_8_i8; _gfortran_smaxloc0_8_r10; _gfortran_smaxloc0_8_r4; _gfortran_smaxloc0_8_r8; _gfortran_smaxloc1_4_i4; _gfortran_smaxloc1_4_i8; _gfortran_smaxloc1_4_r10; _gfortran_smaxloc1_4_r4; _gfortran_smaxloc1_4_r8; _gfortran_smaxloc1_8_i4; _gfortran_smaxloc1_8_i8; _gfortran_smaxloc1_8_r10; _gfortran_smaxloc1_8_r4; _gfortran_smaxloc1_8_r8; _gfortran_smaxval_i4; _gfortran_smaxval_i8; _gfortran_smaxval_r10; _gfortran_smaxval_r4; _gfortran_smaxval_r8; _gfortran_sminloc0_4_i4; _gfortran_sminloc0_4_i8; _gfortran_sminloc0_4_r10; _gfortran_sminloc0_4_r4; _gfortran_sminloc0_4_r8; _gfortran_sminloc0_8_i4; _gfortran_sminloc0_8_i8; _gfortran_sminloc0_8_r10; _gfortran_sminloc0_8_r4; _gfortran_sminloc0_8_r8; _gfortran_sminloc1_4_i4; _gfortran_sminloc1_4_i8; _gfortran_sminloc1_4_r10; _gfortran_sminloc1_4_r4; _gfortran_sminloc1_4_r8; _gfortran_sminloc1_8_i4; _gfortran_sminloc1_8_i8; _gfortran_sminloc1_8_r10; _gfortran_sminloc1_8_r4; _gfortran_sminloc1_8_r8; _gfortran_sminval_i4; _gfortran_sminval_i8; _gfortran_sminval_r10; _gfortran_sminval_r4; _gfortran_sminval_r8; _gfortran_spacing_r10; _gfortran_spacing_r4; _gfortran_spacing_r8; _gfortran_specific__abs_c10; _gfortran_specific__abs_c4; _gfortran_specific__abs_c8; _gfortran_specific__abs_i4; _gfortran_specific__abs_i8; _gfortran_specific__abs_r10; _gfortran_specific__abs_r4; _gfortran_specific__abs_r8; _gfortran_specific__acos_r10; _gfortran_specific__acos_r4; _gfortran_specific__acos_r8; _gfortran_specific__acosh_r10; _gfortran_specific__acosh_r4; _gfortran_specific__acosh_r8; _gfortran_specific__aimag_c10; _gfortran_specific__aimag_c4; _gfortran_specific__aimag_c8; _gfortran_specific__aint_r10; _gfortran_specific__aint_r4; _gfortran_specific__aint_r8; _gfortran_specific__anint_r10; _gfortran_specific__anint_r4; _gfortran_specific__anint_r8; _gfortran_specific__asin_r10; _gfortran_specific__asin_r4; _gfortran_specific__asin_r8; _gfortran_specific__asinh_r10; _gfortran_specific__asinh_r4; _gfortran_specific__asinh_r8; _gfortran_specific__atan2_r10; _gfortran_specific__atan2_r4; _gfortran_specific__atan2_r8; _gfortran_specific__atan_r10; _gfortran_specific__atan_r4; _gfortran_specific__atan_r8; _gfortran_specific__atanh_r10; _gfortran_specific__atanh_r4; _gfortran_specific__atanh_r8; _gfortran_specific__char_1_i4; _gfortran_specific__char_1_i8; _gfortran_specific__conjg_10; _gfortran_specific__conjg_4; _gfortran_specific__conjg_8; _gfortran_specific__cos_c10; _gfortran_specific__cos_c4; _gfortran_specific__cos_c8; _gfortran_specific__cos_r10; _gfortran_specific__cos_r4; _gfortran_specific__cos_r8; _gfortran_specific__cosh_r10; _gfortran_specific__cosh_r4; _gfortran_specific__cosh_r8; _gfortran_specific__dim_i4; _gfortran_specific__dim_i8; _gfortran_specific__dim_r10; _gfortran_specific__dim_r4; _gfortran_specific__dim_r8; _gfortran_specific__dprod_r8; _gfortran_specific__exp_c10; _gfortran_specific__exp_c4; _gfortran_specific__exp_c8; _gfortran_specific__exp_r10; _gfortran_specific__exp_r4; _gfortran_specific__exp_r8; _gfortran_specific__index_1_i4; _gfortran_specific__index_1_i8; _gfortran_specific__len_1_i4; _gfortran_specific__len_1_i8; _gfortran_specific__log10_r10; _gfortran_specific__log10_r4; _gfortran_specific__log10_r8; _gfortran_specific__log_c10; _gfortran_specific__log_c4; _gfortran_specific__log_c8; _gfortran_specific__log_r10; _gfortran_specific__log_r4; _gfortran_specific__log_r8; _gfortran_specific__mod_i4; _gfortran_specific__mod_i8; _gfortran_specific__mod_r10; _gfortran_specific__mod_r4; _gfortran_specific__mod_r8; _gfortran_specific__nint_4_10; _gfortran_specific__nint_4_4; _gfortran_specific__nint_4_8; _gfortran_specific__nint_8_10; _gfortran_specific__nint_8_4; _gfortran_specific__nint_8_8; _gfortran_specific__sign_i4; _gfortran_specific__sign_i8; _gfortran_specific__sign_r10; _gfortran_specific__sign_r4; _gfortran_specific__sign_r8; _gfortran_specific__sin_c10; _gfortran_specific__sin_c4; _gfortran_specific__sin_c8; _gfortran_specific__sin_r10; _gfortran_specific__sin_r4; _gfortran_specific__sin_r8; _gfortran_specific__sinh_r10; _gfortran_specific__sinh_r4; _gfortran_specific__sinh_r8; _gfortran_specific__sqrt_c10; _gfortran_specific__sqrt_c4; _gfortran_specific__sqrt_c8; _gfortran_specific__sqrt_r10; _gfortran_specific__sqrt_r4; _gfortran_specific__sqrt_r8; _gfortran_specific__tan_r10; _gfortran_specific__tan_r4; _gfortran_specific__tan_r8; _gfortran_specific__tanh_r10; _gfortran_specific__tanh_r4; _gfortran_specific__tanh_r8; _gfortran_spread; _gfortran_spread_char; _gfortran_spread_char_scalar; _gfortran_spread_scalar; _gfortran_sproduct_c10; _gfortran_sproduct_c4; _gfortran_sproduct_c8; _gfortran_sproduct_i4; _gfortran_sproduct_i8; _gfortran_sproduct_r10; _gfortran_sproduct_r4; _gfortran_sproduct_r8; _gfortran_srand; _gfortran_ssum_c10; _gfortran_ssum_c4; _gfortran_ssum_c8; _gfortran_ssum_i4; _gfortran_ssum_i8; _gfortran_ssum_r10; _gfortran_ssum_r4; _gfortran_ssum_r8; _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_st_read; _gfortran_st_read_done; _gfortran_st_rewind; _gfortran_st_set_nml_var; _gfortran_st_set_nml_var_dim; _gfortran_st_write; _gfortran_st_write_done; _gfortran_stat_i4; _gfortran_stat_i4_sub; _gfortran_stat_i8; _gfortran_stat_i8_sub; _gfortran_stop_numeric; _gfortran_stop_string; _gfortran_string_index; _gfortran_string_len_trim; _gfortran_string_repeat; _gfortran_string_scan; _gfortran_string_trim; _gfortran_string_verify; _gfortran_sum_c10; _gfortran_sum_c4; _gfortran_sum_c8; _gfortran_sum_i4; _gfortran_sum_i8; _gfortran_sum_r10; _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_c4; _gfortran_transpose_c8; _gfortran_transpose_char; _gfortran_transpose_i4; _gfortran_transpose_i8; _gfortran_transpose_r10; _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; _init; local: *; }; F2C_1.0 { global: _gfortran_f2c_specific__abs_c4; _gfortran_f2c_specific__abs_r4; _gfortran_f2c_specific__acos_r4; _gfortran_f2c_specific__acosh_r4; _gfortran_f2c_specific__aimag_c4; _gfortran_f2c_specific__aimag_c8; _gfortran_f2c_specific__aint_r4; _gfortran_f2c_specific__anint_r4; _gfortran_f2c_specific__asin_r4; _gfortran_f2c_specific__asinh_r4; _gfortran_f2c_specific__atan2_r4; _gfortran_f2c_specific__atan_r4; _gfortran_f2c_specific__atanh_r4; _gfortran_f2c_specific__conjg_4; _gfortran_f2c_specific__conjg_8; _gfortran_f2c_specific__cos_c4; _gfortran_f2c_specific__cos_c8; _gfortran_f2c_specific__cos_r4; _gfortran_f2c_specific__cosh_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__sin_r4; _gfortran_f2c_specific__sinh_r4; _gfortran_f2c_specific__sqrt_c4; _gfortran_f2c_specific__sqrt_c8; _gfortran_f2c_specific__sqrt_r4; _gfortran_f2c_specific__tan_r4; _gfortran_f2c_specific__tanh_r4; local: *; };
Index: gcc/fortran/gfortran.h =================================================================== --- gcc/fortran/gfortran.h (revision 118476) +++ gcc/fortran/gfortran.h (working copy) @@ -1648,6 +1648,7 @@ typedef struct int flag_f2c; int flag_automatic; int flag_backslash; + int flag_allow_leading_underscore; int flag_external_blas; int blas_matmul_limit; int flag_cray_pointer; Index: gcc/fortran/lang.opt =================================================================== --- gcc/fortran/lang.opt (revision 118476) +++ gcc/fortran/lang.opt (working copy) @@ -77,6 +77,10 @@ fall-intrinsics Fortran RejectNegative All intrinsics procedures are available regardless of selected standard +fallow-leading-underscore +Fortran Undocumented +; For internal use only: allow the first character of symbol names to be an underscore + fautomatic Fortran Do not treat local variables and COMMON blocks as if they were named in SAVE statements Index: gcc/fortran/trans-decl.c =================================================================== --- gcc/fortran/trans-decl.c (revision 118476) +++ gcc/fortran/trans-decl.c (working copy) @@ -1052,7 +1052,7 @@ gfc_get_extern_function_decl (gfc_symbol gfc_expr e; gfc_intrinsic_sym *isym; gfc_expr argexpr; - char s[GFC_MAX_SYMBOL_LEN + 13]; /* "f2c_specific" and '\0'. */ + char s[GFC_MAX_SYMBOL_LEN + 23]; /* "_gfortran_f2c_specific" and '\0'. */ tree name; tree mangled_name; @@ -1100,10 +1100,10 @@ gfc_get_extern_function_decl (gfc_symbol { /* Specific which needs a different implementation if f2c calling conventions are used. */ - sprintf (s, "f2c_specific%s", e.value.function.name); + sprintf (s, "_gfortran_f2c_specific%s", e.value.function.name); } else - sprintf (s, "specific%s", e.value.function.name); + sprintf (s, "_gfortran_specific%s", e.value.function.name); name = get_identifier (s); mangled_name = name; @@ -2071,13 +2071,15 @@ gfc_build_intrinsic_function_decls (void gfc_charlen_type_node, pchar_type_node); gfor_fndecl_si_kind = - gfc_build_library_function_decl (get_identifier ("selected_int_kind"), + gfc_build_library_function_decl (get_identifier + (PREFIX("selected_int_kind")), gfc_int4_type_node, 1, pvoid_type_node); gfor_fndecl_sr_kind = - gfc_build_library_function_decl (get_identifier ("selected_real_kind"), + gfc_build_library_function_decl (get_identifier + (PREFIX("selected_real_kind")), gfc_int4_type_node, 2, pvoid_type_node, pvoid_type_node); Index: gcc/fortran/match.c =================================================================== --- gcc/fortran/match.c (revision 118476) +++ gcc/fortran/match.c (working copy) @@ -394,7 +394,7 @@ gfc_match_name (char *buffer) gfc_gobble_whitespace (); c = gfc_next_char (); - if (!ISALPHA (c)) + if (!(ISALPHA (c) || (c == '_' && gfc_option.flag_allow_leading_underscore))) { gfc_current_locus = old_loc; return MATCH_NO; Index: gcc/fortran/options.c =================================================================== --- gcc/fortran/options.c (revision 118476) +++ gcc/fortran/options.c (working copy) @@ -80,6 +80,7 @@ gfc_init_options (unsigned int argc ATTR gfc_option.flag_preprocessed = 0; gfc_option.flag_automatic = 1; gfc_option.flag_backslash = 1; + gfc_option.flag_allow_leading_underscore = 0; gfc_option.flag_external_blas = 0; gfc_option.blas_matmul_limit = 30; gfc_option.flag_cray_pointer = 0; @@ -436,6 +437,10 @@ gfc_handle_option (size_t scode, const c gfc_option.flag_automatic = value; break; + case OPT_fallow_leading_underscore: + gfc_option.flag_allow_leading_underscore = value; + break; + case OPT_fbackslash: gfc_option.flag_backslash = value; break; Index: libgfortran/configure.ac =================================================================== --- libgfortran/configure.ac (revision 118476) +++ libgfortran/configure.ac (working copy) @@ -123,6 +123,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: libgfortran/Makefile.am =================================================================== --- libgfortran/Makefile.am (revision 118476) +++ libgfortran/Makefile.am (working copy) @@ -6,8 +6,15 @@ ACLOCAL_AMFLAGS = -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_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) @@ -603,6 +610,10 @@ $(patsubst %.c,%.lo,$(notdir $(i_matmul_ # Logical matmul doesn't vectorize. $(patsubst %.c,%.lo,$(notdir $(i_matmull_c))): AM_CFLAGS += -funroll-loops +# Add the -fallow-leading-underscore option when needed +$(patsubst %.F90,%.lo,$(patsubst %.f90,%.lo,$(notdir $(gfor_specific_src)))): AM_FCFLAGS += -fallow-leading-underscore +selected_real_kind.lo selected_int_kind.lo: AM_FCFLAGS += -fallow-leading-underscore + BUILT_SOURCES=$(gfor_built_src) $(gfor_built_specific_src) \ $(gfor_built_specific2_src) $(gfor_misc_specifics) libgfortran_la_SOURCES = $(gfor_src) $(gfor_built_src) $(gfor_io_src) \ Index: libgfortran/libtool-version =================================================================== --- libgfortran/libtool-version (revision 118476) +++ libgfortran/libtool-version (working copy) @@ -3,4 +3,4 @@ # This is a separate file so that version updates don't involve re-running # automake. # CURRENT:REVISION:AGE -2:0:0 +3:0:0 Index: libgfortran/m4/misc_specifics.m4 =================================================================== --- libgfortran/m4/misc_specifics.m4 (revision 118476) +++ libgfortran/m4/misc_specifics.m4 (working copy) @@ -22,10 +22,10 @@ divert dnl NINT specifics foreach(`ikind', `(4, 8, 16)', `foreach(`rkind', `(4, 8, 10, 16)', ` `#if defined (HAVE_GFC_REAL_'rkind`) && defined (HAVE_GFC_INTEGER_'ikind`)' -elemental function specific__nint_`'ikind`_'rkind (parm) +elemental function _gfortran_specific__nint_`'ikind`_'rkind (parm) real (kind=rkind) , intent (in) :: parm - integer (kind=ikind) :: specific__nint_`'ikind`_'rkind - specific__nint_`'ikind`_'rkind = nint (parm) + integer (kind=ikind) :: _gfortran_specific__nint_`'ikind`_'rkind + _gfortran_specific__nint_`'ikind`_'rkind = nint (parm) end function #endif ')') @@ -33,10 +33,10 @@ end function dnl CHAR specifics foreach(`ckind', `(1)', `foreach(`ikind', `(4, 8, 16)', ` `#if defined (HAVE_GFC_INTEGER_'ikind`)' -elemental function specific__char_`'ckind`_i'ikind (parm) +elemental function _gfortran_specific__char_`'ckind`_i'ikind (parm) integer (kind=ikind) , intent (in) :: parm - character (kind=ckind,len=1) :: specific__char_`'ckind`_i'ikind - specific__char_`'ckind`_i'ikind` = char (parm, kind='ckind`)' + character (kind=ckind,len=1) :: _gfortran_specific__char_`'ckind`_i'ikind + _gfortran_specific__char_`'ckind`_i'ikind` = char (parm, kind='ckind`)' end function #endif ')') @@ -44,10 +44,10 @@ end function dnl LEN specifics foreach(`ckind', `(1)', `foreach(`ikind', `(4, 8, 16)', ` `#if defined (HAVE_GFC_INTEGER_'ikind`)' -elemental function specific__len_`'ckind`_i'ikind (parm) +elemental function _gfortran_specific__len_`'ckind`_i'ikind (parm) character (kind=ckind,len=*) , intent (in) :: parm - integer (kind=ikind) :: specific__len_`'ckind`_i'ikind - specific__len_`'ckind`_i'ikind` = len (parm)' + integer (kind=ikind) :: _gfortran_specific__len_`'ckind`_i'ikind + _gfortran_specific__len_`'ckind`_i'ikind` = len (parm)' end function #endif ')') @@ -55,10 +55,10 @@ end function dnl INDEX specifics foreach(`ckind', `(1)', `foreach(`ikind', `(4, 8, 16)', ` `#if defined (HAVE_GFC_INTEGER_'ikind`)' -elemental function specific__index_`'ckind`_i'ikind (parm1, parm2) +elemental function _gfortran_specific__index_`'ckind`_i'ikind (parm1, parm2) character (kind=ckind,len=*) , intent (in) :: parm1, parm2 - integer (kind=ikind) :: specific__index_`'ckind`_i'ikind - specific__index_`'ckind`_i'ikind` = index (parm1, parm2)' + integer (kind=ikind) :: _gfortran_specific__index_`'ckind`_i'ikind + _gfortran_specific__index_`'ckind`_i'ikind` = index (parm1, parm2)' end function #endif ')') Index: libgfortran/m4/specific2.m4 =================================================================== --- libgfortran/m4/specific2.m4 (revision 118476) +++ libgfortran/m4/specific2.m4 (working copy) @@ -6,7 +6,7 @@ define(get_typename2, `$1 (kind=$2)')dnl define(get_typename, `get_typename2(ifelse($1,i,integer,ifelse($1,r,real,ifelse($1,l,logical,ifelse($1,c,complex,unknown)))),`$2')')dnl define(atype_name, get_typename(atype_letter,atype_kind))dnl define(name, regexp(regexp(file, `[^/]*$', `\&'), `^_\([^_]*\)_', `\1'))dnl -define(function_name,`specific__'name`_'atype_code)dnl +define(function_name,`_gfortran_specific__'name`_'atype_code)dnl define(Q,ifelse(atype_kind,4,F,ifelse(atype_kind,8,`',ifelse(atype_kind,10,L,ifelse(atype_kind,16,L,`_'atype_kind)))))dnl Index: libgfortran/m4/specific.m4 =================================================================== --- libgfortran/m4/specific.m4 (revision 118476) +++ libgfortran/m4/specific.m4 (working copy) @@ -7,7 +7,7 @@ define(get_typename, `get_typename2(ifel define(atype_name, get_typename(atype_letter,atype_kind))dnl define(name, regexp(regexp(file, `[^/]*$', `\&'), `^_\([^_]*\)_', `\1'))dnl define(rtype_name,get_typename(ifelse(name,abs,ifelse(atype_letter,c,r,atype_letter),ifelse(name,aimag,ifelse(atype_letter,c,r,atype_letter),atype_letter)),atype_kind))dnl -define(function_name,ifelse(name,conjg,`specific__conjg_'atype_kind,`specific__'name`_'atype_code))dnl +define(function_name,ifelse(name,conjg,`_gfortran_specific__conjg_'atype_kind,`_gfortran_specific__'name`_'atype_code))dnl define(type,ifelse(atype_letter,l,LOGICAL,ifelse(atype_letter,i,INTEGER,ifelse(atype_letter,r,REAL,ifelse(atype_letter,c,COMPLEX,UNKNOW)))))dnl define(Q,ifelse(atype_kind,4,F,ifelse(atype_kind,8,`',ifelse(atype_kind,10,L,ifelse(atype_kind,16,L,`_'atype_kind)))))dnl Index: libgfortran/intrinsics/selected_int_kind.f90 =================================================================== --- libgfortran/intrinsics/selected_int_kind.f90 (revision 118476) +++ libgfortran/intrinsics/selected_int_kind.f90 (working copy) @@ -19,10 +19,10 @@ !Boston, MA 02110-1301, USA. ! -function selected_int_kind (r) +function _gfortran_selected_int_kind (r) implicit none integer, intent (in) :: r - integer :: selected_int_kind + integer :: _gfortran_selected_int_kind integer :: i ! Integer kind_range table type :: int_info @@ -34,10 +34,10 @@ function selected_int_kind (r) do i = 1, c if (r <= int_infos (i) % range) then - selected_int_kind = int_infos (i) % kind + _gfortran_selected_int_kind = int_infos (i) % kind return end if end do - selected_int_kind = -1 + _gfortran_selected_int_kind = -1 return end function Index: libgfortran/intrinsics/selected_real_kind.f90 =================================================================== --- libgfortran/intrinsics/selected_real_kind.f90 (revision 118476) +++ libgfortran/intrinsics/selected_real_kind.f90 (working copy) @@ -19,10 +19,10 @@ !Boston, MA 02110-1301, USA. ! -function selected_real_kind (p, r) +function _gfortran_selected_real_kind (p, r) implicit none integer, optional, intent (in) :: p, r - integer :: selected_real_kind + integer :: _gfortran_selected_real_kind integer :: i, p2, r2 logical :: found_p, found_r ! Real kind_precision_range table @@ -34,7 +34,7 @@ function selected_real_kind (p, r) include "selected_real_kind.inc" - selected_real_kind = 0 + _gfortran_selected_real_kind = 0 p2 = 0 r2 = 0 found_p = .false. @@ -49,13 +49,13 @@ function selected_real_kind (p, r) if (p2 <= real_infos (i) % precision) found_p = .true. if (r2 <= real_infos (i) % range) found_r = .true. if (found_p .and. found_r) then - selected_real_kind = real_infos (i) % kind + _gfortran_selected_real_kind = real_infos (i) % kind return end if end do - if (.not. (found_p)) selected_real_kind = selected_real_kind - 1 - if (.not. (found_r)) selected_real_kind = selected_real_kind - 2 + if (.not. (found_p)) _gfortran_selected_real_kind = _gfortran_selected_real_kind - 1 + if (.not. (found_r)) _gfortran_selected_real_kind = _gfortran_selected_real_kind - 2 return end function Index: libgfortran/intrinsics/f2c_specifics.F90 =================================================================== --- libgfortran/intrinsics/f2c_specifics.F90 (revision 118476) +++ libgfortran/intrinsics/f2c_specifics.F90 (working copy) @@ -41,7 +41,7 @@ ! one argument functions #define REAL_HEAD(NAME) \ -elemental function f2c_specific__/**/NAME/**/_r4 (parm) result(res); +elemental function _gfortran_f2c_specific__/**/NAME/**/_r4 (parm) result(res); #define REAL_BODY(NAME) \ REAL, intent (in) :: parm; \ @@ -50,7 +50,7 @@ elemental function f2c_specific__/**/NAM end function #define COMPLEX_HEAD(NAME) \ -subroutine f2c_specific__/**/NAME/**/_c4 (res, parm); +subroutine _gfortran_f2c_specific__/**/NAME/**/_c4 (res, parm); #define COMPLEX_BODY(NAME) \ COMPLEX, intent (in) :: parm; \ @@ -59,7 +59,7 @@ subroutine f2c_specific__/**/NAME/**/_c4 end subroutine #define DCOMPLEX_HEAD(NAME) \ -subroutine f2c_specific__/**/NAME/**/_c8 (res, parm); +subroutine _gfortran_f2c_specific__/**/NAME/**/_c8 (res, parm); #define DCOMPLEX_BODY(NAME) \ DOUBLE COMPLEX, intent (in) :: parm; \ @@ -71,7 +71,7 @@ REAL_HEAD(abs) REAL_BODY(abs) ! abs is special in that the result is real -elemental function f2c_specific__abs_c4 (parm) result (res) +elemental function _gfortran_f2c_specific__abs_c4 (parm) result (res) COMPLEX, intent(in) :: parm DOUBLE PRECISION :: res res = abs(parm) @@ -79,16 +79,16 @@ end function ! aimag is special in that the result is real -elemental function f2c_specific__aimag_c4 (parm) +elemental function _gfortran_f2c_specific__aimag_c4 (parm) complex(kind=4), intent(in) :: parm - double precision :: f2c_specific__aimag_c4 - f2c_specific__aimag_c4 = aimag(parm) + double precision :: _gfortran_f2c_specific__aimag_c4 + _gfortran_f2c_specific__aimag_c4 = aimag(parm) end function -elemental function f2c_specific__aimag_c8 (parm) +elemental function _gfortran_f2c_specific__aimag_c8 (parm) complex(kind=8), intent(in) :: parm - double precision :: f2c_specific__aimag_c8 - f2c_specific__aimag_c8 = aimag(parm) + double precision :: _gfortran_f2c_specific__aimag_c8 + _gfortran_f2c_specific__aimag_c8 = aimag(parm) end function @@ -168,7 +168,7 @@ REAL_BODY(anint) ! two argument functions #define REAL2_HEAD(NAME) \ -elemental function f2c_specific__/**/NAME/**/_r4 (p1, p2) result(res); +elemental function _gfortran_f2c_specific__/**/NAME/**/_r4 (p1, p2) result(res); #define REAL2_BODY(NAME) \ REAL, intent (in) :: p1, p2; \ @@ -189,12 +189,12 @@ REAL2_HEAD(mod) REAL2_BODY(mod) ! conjg is special-cased because it is not suffixed _c4 but _4 -subroutine f2c_specific__conjg_4 (res, parm) +subroutine _gfortran_f2c_specific__conjg_4 (res, parm) COMPLEX, intent (in) :: parm COMPLEX, intent (out) :: res res = conjg (parm) end subroutine -subroutine f2c_specific__conjg_8 (res, parm) +subroutine _gfortran_f2c_specific__conjg_8 (res, parm) DOUBLE COMPLEX, intent (in) :: parm DOUBLE COMPLEX, intent (out) :: res res = conjg (parm) Index: libgfortran/intrinsics/dprod_r8.f90 =================================================================== --- libgfortran/intrinsics/dprod_r8.f90 (revision 118476) +++ libgfortran/intrinsics/dprod_r8.f90 (working copy) @@ -19,9 +19,9 @@ !Boston, MA 02110-1301, USA. -elemental function specific__dprod_r8 (p1, p2) +elemental function _gfortran_specific__dprod_r8 (p1, p2) real (kind=4), intent (in) :: p1, p2 - real (kind=8) :: specific__dprod_r8 + real (kind=8) :: _gfortran_specific__dprod_r8 - specific__dprod_r8 = dprod (p1, p2) + _gfortran_specific__dprod_r8 = dprod (p1, p2) end function
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |