1. 08 Jun, 2014 1 commit
    • PR 56981 Flush buffer at record boundary if possible. · 89a862b4
      2014-06-08  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/56981
      	* io/unix.h (struct stream_vtable): Add new member function,
      	markeor.
      	(smarkeor): New inline function.
      	(flush_if_unbuffered): Remove prototype.
      	* io/unix.c (raw_markeor): New function.
      	(raw_vtable): Initialize markeor member.
      	(buf_markeor): New function.
      	(buf_vtable): Initialize markeor member.
      	(mem_vtable): Likewise.
      	(mem4_vtable): Likewise.
      	(flush_if_unbuffered): Remove function.
      	* io/transfer.c (next_record): Call smarkeor instead of
      	flush_if_unbuffered.
      
      From-SVN: r211353
      Janne Blomqvist committed
  2. 22 May, 2014 1 commit
  3. 02 Jan, 2014 1 commit
  4. 29 Apr, 2013 1 commit
    • PR 56981 Improve unbuffered performance on special files. · c033f5ae
      2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR fortran/56981
              * io/transfer.c (next_record_w_unf): First fix head marker, then
              write tail.
              (next_record): Call flush_if_unbuffered.
              * io/unix.c (struct unix_stream): Add field unbuffered.
              (flush_if_unbuffered): New function.
              (fd_to_stream): New argument.
              (open_external): Fix fd_to_stream call.
              (input_stream): Likewise.
              (output_stream): Likewise.
              (error_stream): Likewise.
              * io/unix.h (flush_if_unbuffered): New prototype.
      
      From-SVN: r198390
      Janne Blomqvist committed
  5. 14 Jan, 2013 1 commit
  6. 16 Mar, 2012 1 commit
    • Share vtables instead of replicating them for each unit. · 33959d1d
      2012-03-16  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* io/unix.h (struct stream): Rename to stream_vtable.
      	(struct stream): New struct definition.
      	(sread): Dereference vtable pointer.
      	(swrite): Likewise.
      	(sseek): Likewise.
      	(struncate): Likewise.
      	(sflush): Likewise.
      	(sclose): Likewise.
      	* io/unix.c (raw_vtable): New variable.
      	(buf_vtable): Likewise.
      	(mem_vtable): Likewise.
      	(mem4_vtable): Likewise.
      	(raw_init): Assign vtable pointer.
      	(buf_init): Likewise.
      	(open_internal): Likewise.
      	(open_internal4): Likewise.
      
      From-SVN: r185454
      Janne Blomqvist committed
  7. 31 Oct, 2011 2 commits
    • Introduce a size member function to struct stream. · 3469bd86
      2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* io/unix.h (struct stream): Add size function pointer.
      	(ssize): New inline function.
      	(file_length): Remove prototype.
      	* io/unix.c (raw_size): New function.
      	(raw_init): Initialize st.size pointer.
      	(buf_size): New function.
      	(buf_init): Initialize st.size pointer.
      	(open_internal): Likewise.
      	(open_internal4): Likewise.
      	(file_length): Remove function.
      	* io/file_pos.c (st_rewind): Use ssize instead of file_length.
      	* io/open.c (test_endfile): Likewise.
      	* io/transfer.c (data_transfer_init): Likewise.
      	(next_record_r): Likewise.
      	(next_record_w): Likewise.
      	* io/unit.c (update_position): Likewise.
      
      From-SVN: r180702
      Janne Blomqvist committed
    • Simplify handling of special files. · 7d5ee219
      2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
      
      * io/file_pos.c (st_rewind): Handle regular and special files
      identically.
      * io/intrinsics.c (fseek_sub): Don't check whether we think the
      file is seekable, just do what the caller says.
      * io/transfer.c (skip_record): First try to seek, then fallback to
      reading and throwing away what we read.
      * io/unit.c (update_position): Don't check whether file is
      seekable, just try to do what we're told.
      (unit_truncate): Likewise.
      * io/unix.c (struct unix_stream): Remove special_file flag.
      (buf_flush): Remove code for handling unseekable files.
      (buf_seek): Likewise.
      (fd_to_stream): Use buffered IO only for regular files.
      (file_length): Remove is_seekable() call.
      (is_seekable): Remove function.
      (is_special): Likewise.
      * io/unix.h: Remove prototypes for is_seekable and is_special.
      
      From-SVN: r180701
      Janne Blomqvist committed
  8. 27 Jan, 2011 1 commit
  9. 04 Nov, 2010 1 commit
  10. 03 Nov, 2010 2 commits
  11. 29 Jul, 2010 1 commit
    • re PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin") · 01b99774
      2010-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/44931
      	* io/inquire.c (inquire_via_unit): Use ttyname to return actual device
      	file name for stdin, stdout, and stderr.  If ttyname does not succeed
      	fall back to default names for these units. Include string.h to allow
      	using strlen function.
      	* unix.c: Remove typedef of unix_stream structure, move to unix.h.
      	* unix.h: Add typedef of unix_stream structure so that it is
      	accessible to inquire.c.
      
      From-SVN: r162667
      Jerry DeLisle committed
  12. 19 Jul, 2010 1 commit
    • re PR fortran/44953 (FAIL: gfortran.dg/char4_iunit_1.f03 * execution test) · 746e6327
      2010-07-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/44953
      	* io/unix.c (mem_alloc_w4): Return gfc_char4_t instead of char type
      	pointer. (mem_write4): Remove cast to gfc_char4_t.
      	* io/transfer.c (write_block): Use a gfc_char4_t pointer.
      	(memset4): New helper function. (next_record_w): Use new helper
      	function rather than sset for internal units.  Don't attempt to pad
      	with spaces if it is not needed.
      	* io/unix.h: Update prototype for mem_alloc_w4.
      	* io/write.c (memset4): Use gfc_char4_t pointer and chracter type.
      	Don't use multiply by 4 to compute offset. (memcpy4): Likewise.
      	(write_default_char4): Use a gfc_char4_t pointer and update memset4
      	and memcpy calls. (write_a): Likewise. (write_l): Likewise.
      	(write_boz): Likewise. (write_decimal): Likewise. (write_x): Likewise.
      	(write_char): Add support for character(kind=4) internal units that
      	was previously missed. (write_integer): Use a gfc_char4_t pointer and
      	update memset4 and memcpy calls. (write_character): Likewise.
      	(write_separator): Add support for character(kind=4) internal units
      	that was previously missed.
      	* write_float.def (output_float): Use a gfc_char4_t pointer and
      	update memset4 and memcpy calls. (write_infnan): Likewise.
      	(output_float_FMT_G_): Likewise.
      
      From-SVN: r162304
      Jerry DeLisle committed
  13. 13 Jul, 2010 1 commit
    • re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4) · c7421e06
      2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/37077
      	* io/read.c: Fix comment.
      	* io/io.h (is_char4_unit): New macro.
      	* io/unit.c (get_internal_unit): Call new function open_internal4.
      	* io/unix.c (mem_alloc_r4): New function. (mem_alloc_w4): New function.
      	(mem_read4): New function, temporary stub. (mem_write4): New function.
      	(open_internal4): New function to set stream pointers to use the new
      	mem functions.
      	* io/transfer.c (write_block): Use new mem_alloc_w4 to access internal
      	units of kind=4.
      	* io/unix.h: Add prototypes for open_internal4, mem_alloc_w4, and
      	mem_alloc_r4.
      	* io/write.c (memset4): New helper function. (memcpy4): New helper
      	function. (write_default_char4): Use new helper functions.
      	(write_a): Likewise. (write_l): Likewise. (write_boz): Likewise.
      	(write_decimal): Likewise. (write_x): Likewise.
      	(write_integer): Likewise.
      	* io/write_float.def (output_float): Add code blocks to handle internal
      	unit kind=4 output utilizing gfc_char4_t pointers. (write_infnan): Use
      	new helper functions. (OUTPUT_FLOAT_FMT_G): Update this macro likewise.
      
      From-SVN: r162123
      Jerry DeLisle committed
  14. 08 May, 2010 1 commit
  15. 01 Apr, 2010 1 commit
    • transfer.c: Update copyright. · a1ff2ab8
      2010-04-01  Paul Thomas  <pault@gcc.gnu.org>
      
      	* io/transfer.c : Update copyright.
      	* io/unix.c : ditto
      	* io/read.c : ditto
      	* io/io.h : ditto
      	* io/unix.h : ditto
      	* io/inquire.c : ditto
      	* io/format.c : ditto
      	* io/list_read.c : ditto
      	* runtime/error.c : ditto
      	* libgfortran.h : ditto
      	* intrinsics/date_and_time.c: ditto
      	* intrinsics/args.c : ditto
      
      From-SVN: r157924
      Paul Thomas committed
  16. 20 Mar, 2010 1 commit
    • re PR fortran/43409 (I/O: INQUIRE for SIZE does not work.) · 41c3cddc
      2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/43409
      	* ioparm.def: Change inquire size variable to type pointer to
      	GFC_IO_INT type.
      
      2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/43409
      	* io/unix.h: Add prototype for new function to return file size.
      	* io/unix.c (file_size): New function.
      	* io/inquire.c (inquire_via_unit): Use new function.
      	(inquire_via_filename): Use new function.
      
      From-SVN: r157593
      Jerry DeLisle committed
  17. 04 Dec, 2009 1 commit
  18. 19 Nov, 2009 1 commit
  19. 02 Nov, 2009 1 commit
  20. 17 Jan, 2007 1 commit
    • re PR libfortran/27107 (Make dependency on io/io.h broken) · 0dce3ca1
      	PR libfortran/27107
      	* runtime/environ.c: Don't include io/io.h.
      	* runtime/string.c: Don't include io/io.h.
      	(compare0): Add cast to avoid warning.
      	* runtime/error.c: Don't include io/io.h.
      	(st_printf): Move to io/unix.c.
      	* intrinsics/flush.c: Delete, contents moved to io/intrinsics.c.
      	* intrinsics/fget.c: Likewise.
      	* intrinsics/ftell.c: Likewise.
      	* intrinsics/tty.c: Likewise.
      	* libgfortran.h (DEFAULT_RECL, notification_std,
      	get_unformatted_convert, IOPARM_*, st_parameter_common, unit_convert,
      	DEFAULT_TEMPDIR): New declarations.
      	* io/io.h (DEFAULT_RECL, notification_std, get_unformatted_convert,
      	IOPARM_*, st_parameter_common, unit_convert, DEFAULT_TEMPDIR):
      	Move to libgfortran.h.
      	* io/unix.c: Add io/unix.h content.
      	(st_printf): New function.
      	* io/intrinsics.c: New file.
      	* io/unix.h: Remove, contents moved into unix.c.
      	* libtool-version: Update library version to 3.0.0.
      	* configure.ac: Update library version to 0.3.
      	* Makefile.am (intrinsics/fget.c, intrinsics/flush.c,
      	intrinsics/ftell.c, intrinsics/tty.c, libgfortran.h): Remove targets.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      
      From-SVN: r120869
      Francois-Xavier Coudert committed
  21. 21 Nov, 2005 1 commit
    • re PR fortran/14943 (read/write code generation is not thread safe) · 5e805e44
      gcc/fortran/
      	PR fortran/14943
      	PR fortran/21647
      	* Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def.
      	* dump-parse-tree.c (gfc_show_code_node): Dump c->block for
      	EXEC_{READ,WRITE,IOLENGTH} nodes.
      	* io.c (terminate_io, match_io, gfc_match_inquire): Put data
      	transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block.
      	* resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}.
      	* trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor,
      	ioparm_list_format, ioparm_library_return, ioparm_iostat,
      	ioparm_exist, ioparm_opened, ioparm_number, ioparm_named,
      	ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in,
      	ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len,
      	ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len,
      	ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len,
      	ioparm_position, ioparm_position_len, ioparm_action,
      	ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad,
      	ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance,
      	ioparm_advance_len, ioparm_name, ioparm_name_len,
      	ioparm_internal_unit, ioparm_internal_unit_len,
      	ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len,
      	ioparm_direct, ioparm_direct_len, ioparm_formatted,
      	ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len,
      	ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len,
      	ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name,
      	ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg,
      	ioparm_iomsg_len, ioparm_var): Remove.
      	(enum ioparam_type, enum iofield_type, enum iofield,
      	enum iocall): New enums.
      	(gfc_st_parameter_field, gfc_st_parameter): New typedefs.
      	(st_parameter, st_parameter_field, iocall): New variables.
      	(ADD_FIELD, ADD_STRING): Remove.
      	(dt_parm, dt_post_end_block): New variables.
      	(gfc_build_st_parameter): New function.
      	(gfc_build_io_library_fndecls): Use it.  Initialize iocall
      	array rather than ioparm_*, add extra first arguments to
      	the function types.
      	(set_parameter_const): New function.
      	(set_parameter_value): Add type argument, return a bitmask.
      	Changed to set a field in automatic structure variable rather
      	than set a field in a global _gfortran_ioparm variable.
      	(set_parameter_ref): Likewise.  If requested var has different
      	size than what field should point to, call with a temporary and
      	then copy into the user variable.  Add postblock argument.
      	(set_string): Remove var_len argument, add type argument, return
      	a bitmask.  Changed to set fields in automatic structure variable
      	rather than set a field in a global _gfortran_ioparm variable.
      	(set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments,
      	add var argument.  Return a bitmask.  Changed to set fields in
      	automatic structure variable rather than set a field in a global
      	_gfortran_ioparm variable.
      	(set_flag): Removed.
      	(io_result): Add var argument.  Changed to read common.flags field
      	from automatic structure variable and bitwise AND it with 3.
      	(set_error_locus): Add var argument.  Changed to set fields in
      	automatic structure variable rather than set a field in a global
      	_gfortran_{filename,line} variables.
      	(gfc_trans_open): Use gfc_start_block rather than gfc_init_block.
      	Create a temporary st_parameter_* structure.  Adjust callers of
      	all above mentioned functions.  Pass address of the temporary
      	variable as first argument to the generated function call.
      	Use iocall array rather than ioparm_* separate variables.
      	(gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise.
      	(build_dt): Likewise.  Change first argument to tree from tree *.
      	Don't dereference code->ext.dt if last_dt == INQUIRE.  Emit
      	IOLENGTH argument setup here.  Set dt_parm/dt_post_end_block
      	variables and gfc_trans_code the nested data transfer commands
      	in code->block.
      	(gfc_trans_iolength): Just set last_dt and call build_dt immediately.
      	(transfer_namelist_element): Pass address of dt_parm variable
      	to generated functions.  Use iocall array rather than ioparm_*
      	separate variables.
      	(gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind,
      	gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array
      	rather than ioparm_* separate variables.
      	(gfc_trans_dt_end): Likewise.  Pass address of dt_parm variable
      	as first argument to generated function.  Adjust io_result caller.
      	Prepend dt_post_end_block before io_result code.
      	(transfer_expr): Use iocall array rather than ioparm_* separate
      	variables.  Pass address of dt_parm variables as first argument
      	to generated functions.
      	* ioparm.def: New file.
      gcc/testsuite/
      	PR fortran/24774
      	* gfortran.dg/inquire_9.f90: New test.
      
      	PR fortran/21647
      	* gfortran.fortran-torture/execute/inquire_5.f90: New test.
      libgfortran/
      	PR fortran/24774
      	PR fortran/14943
      	PR fortran/21647
      	* Makefile.am (AM_CPPFLAGS): Add gcc directories as -I paths,
      	add -D_GNU_SOURCE.
      	* Makefile.in: Regenerated.
      	* acinclude.m4 (LIBGFOR_CHECK_SYNC_FETCH_AND_ADD,
      	LIBGFOR_CHECK_GTHR_DEFAULT, LIBGFOR_CHECK_PRAGMA_WEAK): New macros.
      	* configure.ac: Add them.
      	* configure: Rebuilt.
      	* config.h.in: Rebuilt.
      	* libtool-version: Bump libgfortran.so SONAME to libgfortran.so.1.
      	* libgfortran.h (library_start, show_locus, internal_error,
      	generate_error, find_option): Add st_parameter_common * argument.
      	(library_end): Change into a dummy macro.
      	* io/io.h: Include gthr.h.
      	(SUPPORTS_WEAK): Define if HAVE_PRAGMA_WEAK.
      	(CHARACTER): Remove define.
      	(st_parameter, global_t): Remove typedef.
      	(ioparm, g, ionml, current_unit): Remove variables.
      	(init_error_stream): Remove prototype.
      	(CHARACTER1, CHARACTER2): Define.
      	(st_parameter_common, st_parameter_open, st_parameter_close,
      	st_parameter_filepos, st_parameter_inquire, st_parameter_dt): New
      	typedefs.
      	(IOPARM_LIBRETURN_MASK, IOPARM_LIBRETURN_OK, IOPARM_LIBRETURN_ERROR,
      	IOPARM_LIBRETURN_END, IOPARM_LIBRETURN_EOR, IOPARM_ERR, IOPARM_END,
      	IOPARM_EOR, IOPARM_HAS_IOSTAT, IOPARM_HAS_IOMSG, IOPARM_COMMON_MASK,
      	IOPARM_OPEN_HAS_RECL_IN, IOPARM_OPEN_HAS_FILE, IOPARM_OPEN_HAS_STATUS,
      	IOPARM_OPEN_HAS_ACCESS, IOPARM_OPEN_HAS_FORM, IOPARM_OPEN_HAS_BLANK,
      	IOPARM_OPEN_HAS_POSITION, IOPARM_OPEN_HAS_ACTION,
      	IOPARM_OPEN_HAS_DELIM, IOPARM_OPEN_HAS_PAD, IOPARM_CLOSE_HAS_STATUS,
      	IOPARM_INQUIRE_HAS_EXIST, IOPARM_INQUIRE_HAS_OPENED,
      	IOPARM_INQUIRE_HAS_NUMBER, IOPARM_INQUIRE_HAS_NAMED,
      	IOPARM_INQUIRE_HAS_NEXTREC, IOPARM_INQUIRE_HAS_RECL_OUT,
      	IOPARM_INQUIRE_HAS_FILE, IOPARM_INQUIRE_HAS_ACCESS,
      	IOPARM_INQUIRE_HAS_FORM, IOPARM_INQUIRE_HAS_BLANK,
      	IOPARM_INQUIRE_HAS_POSITION, IOPARM_INQUIRE_HAS_ACTION,
      	IOPARM_INQUIRE_HAS_DELIM, IOPARM_INQUIRE_HAS_PAD,
      	IOPARM_INQUIRE_HAS_NAME, IOPARM_INQUIRE_HAS_SEQUENTIAL,
      	IOPARM_INQUIRE_HAS_DIRECT, IOPARM_INQUIRE_HAS_FORMATTED,
      	IOPARM_INQUIRE_HAS_UNFORMATTED, IOPARM_INQUIRE_HAS_READ,
      	IOPARM_INQUIRE_HAS_WRITE, IOPARM_INQUIRE_HAS_READWRITE,
      	IOPARM_DT_LIST_FORMAT, IOPARM_DT_NAMELIST_READ_MODE,
      	IOPARM_DT_HAS_REC, IOPARM_DT_HAS_SIZE, IOPARM_DT_HAS_IOLENGTH,
      	IOPARM_DT_HAS_FORMAT, IOPARM_DT_HAS_ADVANCE,
      	IOPARM_DT_HAS_INTERNAL_UNIT, IOPARM_DT_HAS_NAMELIST_NAME,
      	IOPARM_DT_IONML_SET): Define.
      	(gfc_unit): Add lock, waiting and close fields.  Change file
      	from flexible array member into pointer to char.
      	(open_external): Add st_parameter_open * argument.
      	(find_file, file_exists): Add file and file_len arguments.
      	(flush_all_units): New prototype.
      	(max_offset, unit_root, unit_lock): New variable.
      	(is_internal_unit, is_array_io, next_array_record,
      	parse_format, next_format, unget_format, format_error,
      	read_block, write_block, next_record, convert_real,
      	read_a, read_f, read_l, read_x, read_radix, read_decimal,
      	list_formatted_read, finish_list_read, namelist_read,
      	namelist_write, write_a, write_b, write_d, write_e, write_en,
      	write_es, write_f, write_i, write_l, write_o, write_x, write_z,
      	list_formatted_write, get_unit): Add st_parameter_dt * argument.
      	(insert_unit): Remove prototype.
      	(find_or_create_unit, unlock_unit): New prototype.
      	(new_unit): Return gfc_unit *.  Add st_parameter_open *
      	and gfc_unit * arguments.
      	(free_fnodes): Remove prototype.
      	(free_format_data): New prototype.
      	(scratch): Remove.
      	(init_at_eol): Remove prototype.
      	(free_ionml): New prototype.
      	(inc_waiting_locked, predec_waiting_locked, dec_waiting_unlocked):
      	New inline functions.
      	* io/unit.c (max_offset, unit_root, unit_lock): New variables.
      	(insert): Adjust os_error caller.
      	(insert_unit): Made static.  Allocate memory here, initialize
      	lock and after inserting it return it, locked.
      	(delete_unit): Adjust for deletion of g.
      	(find_unit_1): New function.
      	(find_unit): Use it.
      	(find_or_create_unit): New function.
      	(get_unit): Add dtp argument, change meaning of the int argument
      	as creation request flag.  Adjust for different st_* calling
      	conventions, lock internal unit's lock before returning it
      	and removal of g.  Call find_unit_1 instead of find_unit.
      	(is_internal_unit, is_array_io): Add dtp argument, adjust for
      	removal of most of global variables.
      	(init_units): Initialize unit_lock.  Adjust insert_unit callers
      	and adjust for g removal.
      	(close_unit_1): New function.
      	(close_unit): Use it.
      	(unlock_unit): New function.
      	(close_units): Lock unit_lock, use close_unit_1 rather than
      	close_unit.
      	* io/close.c (st_close): Add clp argument.  Adjust for new
      	st_* calling conventions and internal function API changes.
      	* io/file_pos.c (st_backspace, st_endfile, st_rewind, st_flush):
      	Add fpp argument.  Adjust for new st_* calling conventions and
      	internal function API changes.
      	(formatted_backspace, unformatted_backspace): Likewise.  Add
      	u argument.
      	* io/open.c (edit_modes, st_open): Add opp argument.  Adjust for
      	new st_* calling conventions and internal function API changes.
      	(already_open): Likewise.  If not HAVE_UNLINK_OPEN_FILE, unlink
      	scratch file.  Instead of calling close_unit just call sclose,
      	free u->file if any and clear a few u fields before calling
      	new_unit.
      	(new_unit): Return gfc_unit *.  Add opp and u arguments.
      	Adjust for new st_* calling conventions and internal function
      	API changes.  Don't allocate unit here, rather than work with
      	already created unit u already locked on entry.  In case
      	of failure, close_unit it.
      	* io/unix.c: Include unix.h.
      	(BUFFER_SIZE, unix_stream): Moved to unix.h.
      	(unit_to_fd): Add unlock_unit call.
      	(tempfile): Add opp argument, use its fields rather than ioparm.
      	(regular_file): Likewise.
      	(open_external): Likewise.  Only unlink file if fd >= 0.
      	(init_error_stream): Add error argument, set structure it points
      	to rather than filling static variable and returning its address.
      	(FIND_FILE0_DECL, FIND_FILE0_ARGS): Define.
      	(find_file0): Use them.  Don't crash if u->s == NULL.
      	(find_file): Add file and file_len arguments, use them instead
      	of ioparm.  Add locking.  Pass either an array of 2 struct stat
      	or file and file_len pair to find_file0.
      	(flush_all_units_1, flush_all_units): New functions.
      	(file_exists): Add file and file_len arguments, use them instead
      	of ioparm.
      	* io/unix.h: New file.
      	* io/lock.c (ioparm, g, ionml): Remove variables.
      	(library_start): Add cmp argument, adjust for new st_* calling
      	conventions.
      	(library_end): Remove.
      	(free_ionml): New function.
      	* io/inquire.c (inquire_via_unit, inquire_via_filename,
      	st_inquire): Add iqp argument, adjust for new st_* calling
      	conventions and internal function API changes.
      	* io/format.c (FARRAY_SIZE): Decrease to 64.
      	(fnode_array, format_data): New typedefs.
      	(avail, array, format_string, string, error, saved_token, value,
      	format_string_len, reversion_ok, saved_format): Remove variables.
      	(colon_node): Add const.
      	(free_fnode, free_fnodes): Remove.
      	(free_format_data): New function.
      	(next_char, unget_char, get_fnode, format_lex, parse_format_list,
      	format_error, parse_format, revert, unget_format, next_test): Add
      	fmt or dtp arguments, pass it all around, adjust for internal
      	function API changes and adjust for removal of global variables.
      	(next_format): Likewise.  Constify return type.
      	(next_format0): Constify return type.
      	* io/transfer.c (current_unit, sf_seen_eor, eor_condition, max_pos,
      	skips, pending_spaces, scratch, line_buffer, advance_status,
      	transfer): Remove variables.
      	(transfer_integer, transfer_real, transfer_logical,
      	transfer_character, transfer_complex, transfer_array, current_mode,
      	read_sf, read_block, read_block_direct, write_block,
      	write_block_direct, unformatted_read, unformatted_write,
      	type_name, write_constant_string, require_type,
      	formatted_transfer_scalar, us_read, us_write, pre_position,
      	data_transfer_init, next_record_r, next_record_w, next_record,
      	finalize_transfer, iolength_transfer, iolength_transfer_init,
      	st_iolength, st_iolength_done, st_read, st_read_done, st_write,
      	st_write_done, st_set_nml_var, st_set_nml_var_dim,
      	next_array_record): Add dtp argument, pass it all around, adjust for
      	internal function API changes and removal of global variables.
      	* io/list_read.c (repeat_count, saved_length, saved_used,
      	input_complete, at_eol, comma_flag, last_char, saved_string,
      	saved_type, namelist_mode, nml_read_error, value, parse_err_msg,
      	nml_err_msg, prev_nl): Remove variables.
      	(push_char, free_saved, next_char, unget_char, eat_spaces,
      	eat_separator, finish_separator, nml_bad_return, convert_integer,
      	parse_repeat, read_logical, read_integer, read_character,
      	parse_real, read_complex, read_real, check_type,
      	list_formatted_read_scalar, list_formatted_read, finish_list_read,
      	find_nml_node, nml_untouch_nodes, nml_match_name, nml_query,
      	namelist_read): Add dtp argument, pass it all around, adjust for
      	internal function API changes and removal of global variables.
      	(nml_parse_qualifier): Likewise.  Add parse_err_msg argument.
      	(nml_read_obj): Likewise.  Add pprev_nl, nml_err_msg, clow and
      	chigh arguments.
      	(nml_get_obj_data): Likewise.  Add pprev_nl and nml_err_msg
      	arguments.
      	(init_at_eol): Removed.
      	* io/read.c (convert_real, read_l, read_a, next_char, read_decimal,
      	read_radix, read_f, read_x): Add dtp argument, pass it all around,
      	adjust for internal function API changes and removal of global
      	variables.
      	(set_integer): Adjust internal_error caller.
      	* io/write.c (no_leading_blank, nml_delim): Remove variables.
      	(write_a, calculate_sign, calculate_G_format, output_float,
      	write_l, write_float, write_int, write_decimal, write_i, write_b,
      	write_o, write_z, write_d, write_e, write_f, write_en, write_es,
      	write_x, write_char, write_logical, write_integer, write_character,
      	write_real, write_complex, write_separator,
      	list_formatted_write_scalar, list_formatted_write, nml_write_obj,
      	namelist_write): Add dtp argument, pass it all around, adjust for
      	internal function API changes and removal of global variables.
      	(extract_int, extract_uint, extract_real): Adjust internal_error
      	callers.
      	* runtime/fpu.c (_GNU_SOURCE): Don't define here.
      	* runtime/error.c: Include ../io/unix.h.
      	(filename, line): Remove variables.
      	(st_printf): Pass address of a local variable to init_error_stream.
      	(show_locus): Add cmp argument.  Use fields it points to rather than
      	filename and line variables.
      	(os_error, runtime_error): Remove show_locus calls.
      	(internal_error): Add cmp argument.  Pass it down to show_locus.
      	(generate_error): Likewise.  Use flags bitmask instead of non-NULL
      	check for iostat and iomsg parameter presence, adjust for st_*
      	calling convention changes.
      	* runtime/stop.c (stop_numeric, stop_string): Remove show_locus
      	calls.
      	* runtime/pause.c (pause_numeric, pause_string): Likewise.
      	* runtime/string.c: Include ../io/io.h.
      	(find_option): Add cmp argument.  Pass it down to generate_error.
      	* intrinsics/flush.c (recursive_flush): Remove.
      	(flush_i4, flush_i8): Use flush_all_units.  Add unlock_unit
      	call.
      	* intrinsics/rand.c: Include ../io/io.h.
      	(rand_seed_lock): New variable.
      	(srand, irand): Add locking.
      	(init): New constructor function.
      	* intrinsics/random.c: Include ../io/io.h.
      	(random_lock): New variable.
      	(random_r4, random_r8, arandom_r4, arandom_r8): Add locking.
      	(random_seed): Likewise.  open failed if fd < 0.  Set i correctly.
      	(init): New constructor function.
      	* intrinsics/system_clock.c (tp0, t0): Remove.
      	(system_clock_4, system_clock_8): Don't subtract tp0/t0 from current
      	time, use just integer arithmetics.
      	* intrinsics/tty.c (isatty_l4, isatty_l8, ttynam_sub): Add
      	unlock_unit calls.
      
      From-SVN: r107328
      Jakub Jelinek committed
  22. 17 Aug, 2005 1 commit
  23. 11 Aug, 2005 1 commit
    • re PR libfortran/20006 ($ format extension doesn't work) · 8b67b708
      	PR libfortran/20006
      	* gfortran.h: Add is_main_program member to symbol_attribute.
      	* trans-decl: Add a gfor_fndecl_set_std tree.
      	(gfc_build_builtin_function_decls): Create it.
      	(gfc_generate_function_code): Add this call at the beginning of
      	the main program.
      	* trans.c (gfc_generate_code): Move main_program and attr.
      	* trans.h: Add declaration for gfor_fndecl_set_std.
      
      	* Makefile.am: Add file runtime/compile_options.c.
      	* Makefile.in: Regenerate.
      	* libgfortran.h: Create structure compile_options_t. Define the
      	compile_options variable and GFC_STD_ macros.
      	* runtime/compile_options.c: New file.
      	* runtime/error.c (notify_std): New function.
      	* runtime/main.c (init): Call init_compile_options during
      	initialization.
      	* io/format.c: Use the new notify_std function for the $
      	descriptor extension.
      
      	* gfortran.dg/runtime_warning_1.f90: New test.
      
      Co-Authored-By: Steven Bosscher <stevenb@suse.de>
      
      From-SVN: r102990
      Francois-Xavier Coudert committed
  24. 15 May, 2005 1 commit
    • normalize.c (almostone_r4, [...]): Fix parameter list. · 4b6903ec
      	* runtime/normalize.c (almostone_r4, almostone_r8): Fix parameter
      	list.
      
      	* intrinsics/random.c (KISS_DEFAULT_SEED): Remove extra semicolon.
      
      	* io/transfer.c: Do not use empty initializers for global objects.
      	Add missing initializers.
      
      	* io/lock.c: Do not use empty initializers for global objects.
      
      	* io/close.c: Add missing initializers.
      
      	* runtime/environ.c: Add missing initializers. Do not use empty
      	initializers for global object.
      	(init_string): Mark argument as unused.
      
      	* runtime/main.c (cleanup): Fix parameter list.
      
      	* io/io.h: Fix parameter lists.
      
      	* m4/transpose.m4, m4/matmul.m4: Fix pointer cast to avoid
      	warning.
      
      	* generated/transpose_c4.c, generated/transpose_c8.c,
      	generated/transpose_i4.c, generated/transpose_i8.c,
      	generated/matmul_c4.c, generated/matmul_c8.c,
      	generated/matmul_i4.c, generated/matmul_i8.c,
      	generated/matmul_r4.c, generated/matmul_r8.c: Regenerated.
      
      	* io/write.c (nml_write_obj): Fix 64-bit problem.
      
      	* io/list_read.c (nml_get_obj_data): Add missing braces around
      	initializer to avoid warnings.
      
      	* intrinsics/etime.c (etime_sub): Remove unused variable.
      
      From-SVN: r99719
      Andreas Jaeger committed
  25. 12 Jan, 2005 1 commit
    • re PR libfortran/19280 (Inconsistent licensing of libgfortran) · 57dea9f6
      2005-01-12  Toon Moene  <toon@moene.indiv.nluug.nl>
      
      	PR libfortran/19280
      	c99_protos.h: License changed to GPL+exception.
      	libgfortran.h: Ditto.
      	intrinsics/abort.c: Ditto.
      	intrinsics/args.c: Ditto.
      	intrinsics/associated.c: Ditto.
      	intrinsics/bessel.c: Ditto.
      	intrinsics/c99_functions.c: Ditto.
      	intrinsics/cpu_time.c: Ditto.
      	intrinsics/cshift0.c: Ditto.
      	intrinsics/date_and_time.c: Ditto.
      	intrinsics/env.c: Ditto.
      	intrinsics/eoshift0.c: Ditto.
      	intrinsics/eoshift2.c: Ditto.
      	intrinsics/erf.c: Ditto.
      	intrinsics/etime.c: Ditto.
      	intrinsics/exit.c: Ditto.
      	intrinsics/flush.c: Ditto.
      	intrinsics/fnum.c: Ditto.
      	intrinsics/getXid.c: Ditto.
      	intrinsics/getcwd.c: Ditto.
      	intrinsics/ishftc.c: Ditto.
      	intrinsics/mvbits.c: Ditto.
      	intrinsics/pack_generic.c: Ditto.
      	intrinsics/rand.c: Ditto.
      	intrinsics/random.c: Ditto.
      	intrinsics/reshape_generic.c: Ditto.
      	intrinsics/reshape_packed.c: Ditto.
      	intrinsics/size.c: Ditto.
      	intrinsics/spread_generic.c: Ditto.
      	intrinsics/stat.c: Ditto.
      	intrinsics/string_intrinsics.c: Ditto.
      	intrinsics/system.c: Ditto.
      	intrinsics/system_clock.c: Ditto.
      	intrinsics/transpose_generic.c: Ditto.
      	intrinsics/umask.c: Ditto.
      	intrinsics/unlink.c: Ditto.
      	intrinsics/unpack_generic.c: Ditto.
      	io/backspace.c: Ditto.
      	io/close.c: Ditto.
      	io/endfile.c: Ditto.
      	io/format.c: Ditto.
      	io/inquire.c: Ditto.
      	io/io.h: Ditto.
      	io/list_read.c: Ditto.
      	io/lock.c: Ditto.
      	io/open.c: Ditto.
      	io/read.c: Ditto.
      	io/rewind.c: Ditto.
      	io/transfer.c: Ditto.
      	io/unit.c: Ditto.
      	io/unix.c: Ditto.
      	io/write.c: Ditto.
      	m4/all.m4: Ditto.
      	m4/any.m4: Ditto.
      	m4/cexp.m4: Ditto.
      	m4/chyp.m4: Ditto.
      	m4/count.m4: Ditto.
      	m4/cshift1.m4: Ditto.
      	m4/ctrig.m4: Ditto.
      	m4/dotprod.m4: Ditto.
      	m4/dotprodc.m4: Ditto.
      	m4/dotprodl.m4: Ditto.
      	m4/eoshift1.m4: Ditto.
      	m4/eoshift3.m4: Ditto.
      	m4/exponent.m4: Ditto.
      	m4/fraction.m4: Ditto.
      	m4/head.m4: Ditto.
      	m4/iforeach.m4: Ditto.
      	m4/ifunction.m4: Ditto.
      	m4/in_pack.m4: Ditto.
      	m4/in_unpack.m4: Ditto.
      	m4/iparm.m4: Ditto.
      	m4/matmul.m4: Ditto.
      	m4/matmull.m4: Ditto.
      	m4/maxloc0.m4: Ditto.
      	m4/maxloc1.m4: Ditto.
      	m4/maxval.m4: Ditto.
      	m4/minloc0.m4: Ditto.
      	m4/minloc1.m4: Ditto.
      	m4/minval.m4: Ditto.
      	m4/mtype.m4: Ditto.
      	m4/nearest.m4: Ditto.
      	m4/pow.m4: Ditto.
      	m4/product.m4: Ditto.
      	m4/reshape.m4: Ditto.
      	m4/set_exponent.m4: Ditto.
      	m4/shape.m4: Ditto.
      	m4/specific.m4: Ditto.
      	m4/specific2.m4: Ditto.
      	m4/sum.m4: Ditto.
      	m4/transpose.m4: Ditto.
      	m4/types.m4: Ditto.
      	runtime/environ.c: Ditto.
      	runtime/error.c: Ditto.
      	runtime/in_pack_generic.c: Ditto.
      	runtime/in_unpack_generic.c: Ditto.
      	runtime/main.c: Ditto.
      	runtime/memory.c: Ditto.
      	runtime/normalize.c: Ditto.
      	runtime/pause.c: Ditto.
      	runtime/select.c: Ditto.
      	runtime/stop.c: Ditto.
      	runtime/string.c: Ditto.
      	generated/_abs_c4.f90: Regenerated.
      	generated/_abs_c8.f90: Regenerated.
      	generated/_abs_i4.f90: Regenerated.
      	generated/_abs_i8.f90: Regenerated.
      	generated/_abs_r4.f90: Regenerated.
      	generated/_abs_r8.f90: Regenerated.
      	generated/_acos_r4.f90: Regenerated.
      	generated/_acos_r8.f90: Regenerated.
      	generated/_aint_r4.f90: Regenerated.
      	generated/_aint_r8.f90: Regenerated.
      	generated/_anint_r4.f90: Regenerated.
      	generated/_anint_r8.f90: Regenerated.
      	generated/_asin_r4.f90: Regenerated.
      	generated/_asin_r8.f90: Regenerated.
      	generated/_atan2_r4.f90: Regenerated.
      	generated/_atan2_r8.f90: Regenerated.
      	generated/_atan_r4.f90: Regenerated.
      	generated/_atan_r8.f90: Regenerated.
      	generated/_conjg_c4.f90: Regenerated.
      	generated/_conjg_c8.f90: Regenerated.
      	generated/_cos_c4.f90: Regenerated.
      	generated/_cos_c8.f90: Regenerated.
      	generated/_cos_r4.f90: Regenerated.
      	generated/_cos_r8.f90: Regenerated.
      	generated/_cosh_r4.f90: Regenerated.
      	generated/_cosh_r8.f90: Regenerated.
      	generated/_dim_i4.f90: Regenerated.
      	generated/_dim_i8.f90: Regenerated.
      	generated/_dim_r4.f90: Regenerated.
      	generated/_dim_r8.f90: Regenerated.
      	generated/_exp_c4.f90: Regenerated.
      	generated/_exp_c8.f90: Regenerated.
      	generated/_exp_r4.f90: Regenerated.
      	generated/_exp_r8.f90: Regenerated.
      	generated/_log10_r4.f90: Regenerated.
      	generated/_log10_r8.f90: Regenerated.
      	generated/_log_c4.f90: Regenerated.
      	generated/_log_c8.f90: Regenerated.
      	generated/_log_r4.f90: Regenerated.
      	generated/_log_r8.f90: Regenerated.
      	generated/_mod_i4.f90: Regenerated.
      	generated/_mod_i8.f90: Regenerated.
      	generated/_mod_r4.f90: Regenerated.
      	generated/_mod_r8.f90: Regenerated.
      	generated/_sign_i4.f90: Regenerated.
      	generated/_sign_i8.f90: Regenerated.
      	generated/_sign_r4.f90: Regenerated.
      	generated/_sign_r8.f90: Regenerated.
      	generated/_sin_c4.f90: Regenerated.
      	generated/_sin_c8.f90: Regenerated.
      	generated/_sin_r4.f90: Regenerated.
      	generated/_sin_r8.f90: Regenerated.
      	generated/_sinh_r4.f90: Regenerated.
      	generated/_sinh_r8.f90: Regenerated.
      	generated/_sqrt_c4.f90: Regenerated.
      	generated/_sqrt_c8.f90: Regenerated.
      	generated/_sqrt_r4.f90: Regenerated.
      	generated/_sqrt_r8.f90: Regenerated.
      	generated/_tan_r4.f90: Regenerated.
      	generated/_tan_r8.f90: Regenerated.
      	generated/_tanh_r4.f90: Regenerated.
      	generated/_tanh_r8.f90: Regenerated.
      	generated/all_l4.c: Regenerated.
      	generated/all_l8.c: Regenerated.
      	generated/any_l4.c: Regenerated.
      	generated/any_l8.c: Regenerated.
      	generated/count_4_l4.c: Regenerated.
      	generated/count_4_l8.c: Regenerated.
      	generated/count_8_l4.c: Regenerated.
      	generated/count_8_l8.c: Regenerated.
      	generated/cshift1_4.c: Regenerated.
      	generated/cshift1_8.c: Regenerated.
      	generated/dotprod_c4.c: Regenerated.
      	generated/dotprod_c8.c: Regenerated.
      	generated/dotprod_i4.c: Regenerated.
      	generated/dotprod_i8.c: Regenerated.
      	generated/dotprod_l4.c: Regenerated.
      	generated/dotprod_l8.c: Regenerated.
      	generated/dotprod_r4.c: Regenerated.
      	generated/dotprod_r8.c: Regenerated.
      	generated/eoshift1_4.c: Regenerated.
      	generated/eoshift1_8.c: Regenerated.
      	generated/eoshift3_4.c: Regenerated.
      	generated/eoshift3_8.c: Regenerated.
      	generated/exp_c4.c: Regenerated.
      	generated/exp_c8.c: Regenerated.
      	generated/exponent_r4.c: Regenerated.
      	generated/exponent_r8.c: Regenerated.
      	generated/fraction_r4.c: Regenerated.
      	generated/fraction_r8.c: Regenerated.
      	generated/hyp_c4.c: Regenerated.
      	generated/hyp_c8.c: Regenerated.
      	generated/in_pack_i4.c: Regenerated.
      	generated/in_pack_i8.c: Regenerated.
      	generated/in_unpack_i4.c: Regenerated.
      	generated/in_unpack_i8.c: Regenerated.
      	generated/matmul_c4.c: Regenerated.
      	generated/matmul_c8.c: Regenerated.
      	generated/matmul_i4.c: Regenerated.
      	generated/matmul_i8.c: Regenerated.
      	generated/matmul_l4.c: Regenerated.
      	generated/matmul_l8.c: Regenerated.
      	generated/matmul_r4.c: Regenerated.
      	generated/matmul_r8.c: Regenerated.
      	generated/maxloc0_4_i4.c: Regenerated.
      	generated/maxloc0_4_i8.c: Regenerated.
      	generated/maxloc0_4_r4.c: Regenerated.
      	generated/maxloc0_4_r8.c: Regenerated.
      	generated/maxloc0_8_i4.c: Regenerated.
      	generated/maxloc0_8_i8.c: Regenerated.
      	generated/maxloc0_8_r4.c: Regenerated.
      	generated/maxloc0_8_r8.c: Regenerated.
      	generated/maxloc1_4_i4.c: Regenerated.
      	generated/maxloc1_4_i8.c: Regenerated.
      	generated/maxloc1_4_r4.c: Regenerated.
      	generated/maxloc1_4_r8.c: Regenerated.
      	generated/maxloc1_8_i4.c: Regenerated.
      	generated/maxloc1_8_i8.c: Regenerated.
      	generated/maxloc1_8_r4.c: Regenerated.
      	generated/maxloc1_8_r8.c: Regenerated.
      	generated/maxval_i4.c: Regenerated.
      	generated/maxval_i8.c: Regenerated.
      	generated/maxval_r4.c: Regenerated.
      	generated/maxval_r8.c: Regenerated.
      	generated/minloc0_4_i4.c: Regenerated.
      	generated/minloc0_4_i8.c: Regenerated.
      	generated/minloc0_4_r4.c: Regenerated.
      	generated/minloc0_4_r8.c: Regenerated.
      	generated/minloc0_8_i4.c: Regenerated.
      	generated/minloc0_8_i8.c: Regenerated.
      	generated/minloc0_8_r4.c: Regenerated.
      	generated/minloc0_8_r8.c: Regenerated.
      	generated/minloc1_4_i4.c: Regenerated.
      	generated/minloc1_4_i8.c: Regenerated.
      	generated/minloc1_4_r4.c: Regenerated.
      	generated/minloc1_4_r8.c: Regenerated.
      	generated/minloc1_8_i4.c: Regenerated.
      	generated/minloc1_8_i8.c: Regenerated.
      	generated/minloc1_8_r4.c: Regenerated.
      	generated/minloc1_8_r8.c: Regenerated.
      	generated/minval_i4.c: Regenerated.
      	generated/minval_i8.c: Regenerated.
      	generated/minval_r4.c: Regenerated.
      	generated/minval_r8.c: Regenerated.
      	generated/nearest_r4.c: Regenerated.
      	generated/nearest_r8.c: Regenerated.
      	generated/pow_c4_i4.c: Regenerated.
      	generated/pow_c4_i8.c: Regenerated.
      	generated/pow_c8_i4.c: Regenerated.
      	generated/pow_c8_i8.c: Regenerated.
      	generated/pow_i4_i4.c: Regenerated.
      	generated/pow_i4_i8.c: Regenerated.
      	generated/pow_i8_i4.c: Regenerated.
      	generated/pow_i8_i8.c: Regenerated.
      	generated/pow_r4_i4.c: Regenerated.
      	generated/pow_r4_i8.c: Regenerated.
      	generated/pow_r8_i4.c: Regenerated.
      	generated/pow_r8_i8.c: Regenerated.
      	generated/product_c4.c: Regenerated.
      	generated/product_c8.c: Regenerated.
      	generated/product_i4.c: Regenerated.
      	generated/product_i8.c: Regenerated.
      	generated/product_r4.c: Regenerated.
      	generated/product_r8.c: Regenerated.
      	generated/reshape_i4.c: Regenerated.
      	generated/reshape_i8.c: Regenerated.
      	generated/set_exponent_r4.c: Regenerated.
      	generated/set_exponent_r8.c: Regenerated.
      	generated/shape_i4.c: Regenerated.
      	generated/shape_i8.c: Regenerated.
      	generated/sum_c4.c: Regenerated.
      	generated/sum_c8.c: Regenerated.
      	generated/sum_i4.c: Regenerated.
      	generated/sum_i8.c: Regenerated.
      	generated/sum_r4.c: Regenerated.
      	generated/sum_r8.c: Regenerated.
      	generated/transpose_i4.c: Regenerated.
      	generated/transpose_i8.c: Regenerated.
      	generated/trig_c4.c: Regenerated.
      	generated/trig_c8.c: Regenerated.
      
      From-SVN: r93235
      Toon Moene committed
  26. 12 Dec, 2004 1 commit
    • acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New. · 7d7b8bfe
              * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New.
              (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT): New.
              (LIBGFOR_CHECK_ATTRIBUTE_ALIAS): New.
              * configure.ac: Use them.
              * configure, config.h.in, aclocal.m4: Rebuild.
              * libgfortran.h (prefix): Remove.
              (PREFIX, IPREFIX): New.
              (sym_rename, sym_rename1, sym_rename2): New.
              (internal_proto, export_proto, export_proto_np): New.
              (iexport_proto, iexport): New.
              (iexport_data_proto, iexport_data): New.
              * intrinsics/abort.c, intrinsics/args.c, intrinsics/associated.c,
              intrinsics/cpu_time.c, intrinsics/cshift0.c,
              intrinsics/date_and_time.c, intrinsics/env.c, intrinsics/eoshift0.c,
              intrinsics/eoshift2.c, intrinsics/etime.c, intrinsics/exit.c,
              intrinsics/flush.c, intrinsics/fnum.c, intrinsics/getXid.c,
              intrinsics/getcwd.c, intrinsics/ishftc.c, intrinsics/mvbits.c,
              intrinsics/pack_generic.c, intrinsics/rand.c, intrinsics/random.c,
              intrinsics/reshape_generic.c, intrinsics/size.c,
              intrinsics/spread_generic.c, intrinsics/stat.c,
              intrinsics/string_intrinsics.c, intrinsics/system.c,
              intrinsics/system_clock.c, intrinsics/transpose_generic.c,
              intrinsics/umask.c, intrinsics/unlink.c, intrinsics/unpack_generic.c,
              io/backspace.c, io/close.c, io/endfile.c, io/inquire.c, io/io.h,
              io/open.c, io/rewind.c, io/transfer.c, libgfortran.h, m4/cshift1.m4,
              m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4,
              m4/eoshift3.m4, m4/exponent.m4, m4/fraction.m4, m4/iforeach.m4,
              m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/nearest.m4,
              m4/pow.m4, m4/reshape.m4, m4/set_exponent.m4, m4/shape.m4,
              m4/transpose.m4, runtime/environ.c, runtime/error.c,
              runtime/in_pack_generic.c, runtime/in_unpack_generic.c,
              runtime/main.c, runtime/memory.c, runtime/pause.c, runtime/select.c,
              runtime/stop.c: Use them to mark symbols internal or external.
              * generated/*: Rebuild.
      
      From-SVN: r92045
      Richard Henderson committed
  27. 15 May, 2004 1 commit
    • re PR libfortran/15234 (libgfortran doesn't compile on Tru64 UNIX V4.0F) · 909087e0
      PR fortran/15234
      * io/io.h (unit_t): Rename to ...
      (gfc_unit) ... this.
      (unit_root, current_unit, find_file, find_unit, get_unit): Now
      of type gfc_unit.
      (delete_file, insert_unit, close_unit): Argument now of type
      gfc_unit.
      * backspace.c (st_backspace), close.c (st_close), endfile.c
      (st_endfile), inquire.c (inquire_via_unit, st_inquire), open.c
      (test_endfile, edit_modes, new_unit, already_open, st_open),
      rewind.c (st_rewind), transfer.c (current_unit), unit.c
      (internal_unit, unit_cache, rotate_left, rotate_right, insert,
      insert_unit, delete_root, delete_treap, delete_unit, find_unit,
      get_unit, init_units, close_unit), unix.c (find_file0,
      find_file, delete_file): Replace all occurences of unit_t by
      gfc_unit.
      
      From-SVN: r81903
      Tobias Schlüter committed
  28. 13 May, 2004 1 commit