mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-19 01:03:04 +00:00
DJGPP support added
This commit is contained in:
28
ChangeLog
28
ChangeLog
@@ -1,3 +1,31 @@
|
|||||||
|
2002-02-13 Guerrero, Juan Manuel <st001906@hrz1.hrz.tu-darmstadt.de>
|
||||||
|
|
||||||
|
* doc/bison.texinfo: Add DJGPP specific information about
|
||||||
|
file name extensions used on different file systems.
|
||||||
|
|
||||||
|
* src/files.c (output_files): MSDOS conditional removed.
|
||||||
|
New macro EXT_TYPE will provide at runtime the appropiate
|
||||||
|
output file extension.
|
||||||
|
(skeleton_find) [MSDOS]: __DJGPP__ conditional added to
|
||||||
|
inhibit the use of DOSish code. POSIX like behaviour.
|
||||||
|
|
||||||
|
* src/getargs.c [AS_FILE_NAME]: __DJGPP__ conditional added.
|
||||||
|
Check at runtime if LFN-API (case preserving) is available or not.
|
||||||
|
Do not unconditionly convert upper case strings in lower case strings.
|
||||||
|
|
||||||
|
* src/system.h [MSDOS] [__GO32__]: __DJGPP__ conditional added.
|
||||||
|
__GO32__ is obsolete and its use is deprecated.
|
||||||
|
[MSDOS]: __DJGPP__ conditional added. Use pathconf
|
||||||
|
to choose POSIX or DOS file extensions at run time.
|
||||||
|
[MSDOS] [__DJGPP__]: New macro EXT_TYPE. If LFN-API is
|
||||||
|
available, the src or header file extension (.c or .h) will be
|
||||||
|
added to the output file name. If no LFN-API is available no src
|
||||||
|
or header file extension will be added to the output file name.
|
||||||
|
[MSDOS] [!__DJGPP__]: New macro EXT_TYPE. Src file and header
|
||||||
|
file extension will never be added to the output file name.
|
||||||
|
[!MSDOS]: New macro EXT_TYPE. Src file and header file
|
||||||
|
extensions will always be added to the output file name.
|
||||||
|
|
||||||
2002-02-11 Akim Demaille <akim@epita.fr>
|
2002-02-11 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* tests/regression.at (%nonassoc and eof): Don't include non
|
* tests/regression.at (%nonassoc and eof): Don't include non
|
||||||
|
|||||||
2
NEWS
2
NEWS
@@ -3,6 +3,8 @@ Bison News
|
|||||||
|
|
||||||
Changes in version 1.33a:
|
Changes in version 1.33a:
|
||||||
|
|
||||||
|
* DJGPP support added.
|
||||||
|
|
||||||
* Fix portability problems within the test suite.
|
* Fix portability problems within the test suite.
|
||||||
|
|
||||||
Changes in version 1.33, 2002-02-07:
|
Changes in version 1.33, 2002-02-07:
|
||||||
|
|||||||
@@ -304,6 +304,8 @@ Invoking Bison
|
|||||||
* Bison Options:: All the options described in detail,
|
* Bison Options:: All the options described in detail,
|
||||||
in alphabetical order by short options.
|
in alphabetical order by short options.
|
||||||
* Option Cross Key:: Alphabetical list of long options.
|
* Option Cross Key:: Alphabetical list of long options.
|
||||||
|
* Extension Limitations Under DOS:: Bison output files extension differences
|
||||||
|
depending on the DOS/Windows file system flavour used.
|
||||||
* VMS Invocation:: Bison command syntax on VMS.
|
* VMS Invocation:: Bison command syntax on VMS.
|
||||||
|
|
||||||
Copying This Manual
|
Copying This Manual
|
||||||
@@ -5047,6 +5049,8 @@ will produce @file{output.c++} and @file{outfile.h++}.
|
|||||||
in alphabetical order by short options.
|
in alphabetical order by short options.
|
||||||
* Environment Variables:: Variables which affect Bison execution.
|
* Environment Variables:: Variables which affect Bison execution.
|
||||||
* Option Cross Key:: Alphabetical list of long options.
|
* Option Cross Key:: Alphabetical list of long options.
|
||||||
|
* Extension Limitations Under DOS:: Bison output files extension differences
|
||||||
|
depending on the DOS/Windows file system flavour used.
|
||||||
* VMS Invocation:: Bison command syntax on VMS.
|
* VMS Invocation:: Bison command syntax on VMS.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@@ -5244,6 +5248,39 @@ the corresponding short option.
|
|||||||
@end example
|
@end example
|
||||||
@end ifinfo
|
@end ifinfo
|
||||||
|
|
||||||
|
@node Extension Limitations Under DOS
|
||||||
|
@section Extension Limitations under DOS
|
||||||
|
@cindex extension limitations under DOS
|
||||||
|
@cindex DOS
|
||||||
|
|
||||||
|
On DOS/Windows 9X systems the file name extensions of the output files,
|
||||||
|
like @file{.tab.c}, that may be used depend on the file system in use.
|
||||||
|
The plain DOS file system has limited file name length, does not allow
|
||||||
|
the use of a set of certain illicit characters and does not allow more
|
||||||
|
than a single dot in the file name.
|
||||||
|
|
||||||
|
The DJGPP port of @code{bison} will detect at runtime if (LFN) long file name
|
||||||
|
support is available or not. LFN support will be available in a DOS session
|
||||||
|
under Windows 9X and successors. Windows NT 4.0 needs a special LFN driver
|
||||||
|
(@file(ntlfn08b.zip) or later available at any simtelnet mirror in the /v2misc
|
||||||
|
dir) for proper LFN support in a DOS session. If LFN support is available the
|
||||||
|
DJGPP port of @code{bison} will use the standard POSIX file name extensions
|
||||||
|
of the output files. If LFN support is not available, then the DJGPP port
|
||||||
|
of @code{bison} will use DOS specific file name extensions.
|
||||||
|
|
||||||
|
@noindent This table summarizes the used extensions:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.1 0.45 0.45
|
||||||
|
@item @tab LFN extension (Win9X) @tab SFN extension (plain DOS)
|
||||||
|
@item @tab @file{.tab.c} @tab @file{_tab.c}
|
||||||
|
@item @tab @file{.tab.h} @tab @file{_tab.h}
|
||||||
|
@item @tab @file{.tab.cpp} @tab @file{_tab.cpp}
|
||||||
|
@item @tab @file{.tab.hpp} @tab @file{_tab.hpp}
|
||||||
|
@item @tab @file{.output} @tab @file{.out}
|
||||||
|
@item @tab @file{.stype.h} @tab @file{.sth}
|
||||||
|
@item @tab @file{.guard.c} @tab @file{.guc}
|
||||||
|
@end multitable
|
||||||
|
|
||||||
@node VMS Invocation
|
@node VMS Invocation
|
||||||
@section Invoking Bison under VMS
|
@section Invoking Bison under VMS
|
||||||
@cindex invoking Bison under VMS
|
@cindex invoking Bison under VMS
|
||||||
|
|||||||
12
src/files.c
12
src/files.c
@@ -214,7 +214,7 @@ skeleton_find (const char *envvar, const char *skeleton_name)
|
|||||||
{
|
{
|
||||||
const char *res = getenv (envvar);
|
const char *res = getenv (envvar);
|
||||||
|
|
||||||
#if defined (MSDOS) || defined (_WIN32)
|
#if (defined (MSDOS) && !defined(__DJGPP__)) || defined (_WIN32)
|
||||||
const char *cp = getenv ("INIT");
|
const char *cp = getenv ("INIT");
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
@@ -249,7 +249,7 @@ skeleton_find (const char *envvar, const char *skeleton_name)
|
|||||||
strcpy (res + (cp - program_name), skel_name);
|
strcpy (res + (cp - program_name), skel_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* defined (MSDOS) || defined (_WIN32) */
|
#endif /* (defined (MSDOS) && !defined (__DJGPP__)) || defined (_WIN32) */
|
||||||
if (!res)
|
if (!res)
|
||||||
res = skeleton_name;
|
res = skeleton_name;
|
||||||
|
|
||||||
@@ -452,9 +452,7 @@ compute_output_file_names (void)
|
|||||||
spec_verbose_file = stringappend (short_base_name, EXT_OUTPUT);
|
spec_verbose_file = stringappend (short_base_name, EXT_OUTPUT);
|
||||||
|
|
||||||
attrsfile = stringappend (short_base_name, EXT_STYPE_H);
|
attrsfile = stringappend (short_base_name, EXT_STYPE_H);
|
||||||
#ifndef MSDOS
|
attrsfile = stringappend (attrsfile, EXT_TYPE (header_extension));
|
||||||
attrsfile = stringappend (attrsfile, header_extension);
|
|
||||||
#endif /* MSDOS */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -523,9 +521,7 @@ output_files (void)
|
|||||||
obstack_save (&attrs_obstack, attrsfile);
|
obstack_save (&attrs_obstack, attrsfile);
|
||||||
obstack_free (&attrs_obstack, NULL);
|
obstack_free (&attrs_obstack, NULL);
|
||||||
temp_name = stringappend (short_base_name, EXT_GUARD_C);
|
temp_name = stringappend (short_base_name, EXT_GUARD_C);
|
||||||
#ifndef MSDOS
|
temp_name = stringappend (temp_name, EXT_TYPE (src_extension));
|
||||||
temp_name = stringappend (temp_name, src_extension);
|
|
||||||
#endif /* MSDOS */
|
|
||||||
obstack_save (&guard_obstack, temp_name);
|
obstack_save (&guard_obstack, temp_name);
|
||||||
obstack_free (&guard_obstack, NULL);
|
obstack_free (&guard_obstack, NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -160,10 +160,15 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
|
|||||||
| Process the options. |
|
| Process the options. |
|
||||||
`----------------------*/
|
`----------------------*/
|
||||||
|
|
||||||
/* Under DOS, there is no difference on the case. This can be
|
/* Under plain DOS, there is no difference on the case. This can be
|
||||||
troublesome when looking for `.tab' etc. */
|
troublesome when looking for `.tab' etc. */
|
||||||
#ifdef MSDOS
|
#ifdef MSDOS
|
||||||
# define AS_FILE_NAME(File) (strlwr (File), (File))
|
# if defined (__DJGPP__)
|
||||||
|
/* Windows 9X and successors are case sensitive. */
|
||||||
|
# define AS_FILE_NAME(File) ((pathconf ((File), _PC_NAME_MAX) > 12) ? (File) : (strlwr (File), (File)))
|
||||||
|
# else
|
||||||
|
# define AS_FILE_NAME(File) (strlwr (File), (File))
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
# define AS_FILE_NAME(File) (File)
|
# define AS_FILE_NAME(File) (File)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
24
src/system.h
24
src/system.h
@@ -239,7 +239,7 @@ do { \
|
|||||||
# define MINSHORT -32768
|
# define MINSHORT -32768
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (MSDOS) && !defined (__GO32__)
|
#if defined (MSDOS) && !defined (__GO32__) && !defined (__DJGPP__)
|
||||||
# define BITS_PER_WORD 16
|
# define BITS_PER_WORD 16
|
||||||
# define MAXTABLE 16383
|
# define MAXTABLE 16383
|
||||||
#else
|
#else
|
||||||
@@ -261,19 +261,31 @@ do { \
|
|||||||
# define EXT_OUTPUT ".output"
|
# define EXT_OUTPUT ".output"
|
||||||
# define EXT_STYPE_H "_stype"
|
# define EXT_STYPE_H "_stype"
|
||||||
# define EXT_GUARD_C "_guard"
|
# define EXT_GUARD_C "_guard"
|
||||||
|
# define EXT_TYPE(ext) (ext)
|
||||||
#else /* ! VMS */
|
#else /* ! VMS */
|
||||||
# ifdef MSDOS
|
# ifdef MSDOS
|
||||||
/* MS DOS. */
|
# if defined (__DJGPP__)
|
||||||
# define EXT_TAB "_tab"
|
/* DJGPP */
|
||||||
# define EXT_OUTPUT ".out"
|
# define EXT_TAB ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".tab" : "_tab")
|
||||||
# define EXT_STYPE_H ".sth"
|
# define EXT_OUTPUT ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".output" : ".out")
|
||||||
# define EXT_GUARD_C ".guc"
|
# define EXT_STYPE_H ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".stype" : ".sth")
|
||||||
|
# define EXT_GUARD_C ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".guard" : ".guc")
|
||||||
|
# define EXT_TYPE(ext) ((pathconf (NULL, _PC_NAME_MAX) > 12) ? (ext) : "")
|
||||||
|
# else /* ! __DJGPP__ */
|
||||||
|
/* MS DOS. */
|
||||||
|
# define EXT_TAB "_tab"
|
||||||
|
# define EXT_OUTPUT ".out"
|
||||||
|
# define EXT_STYPE_H ".sth"
|
||||||
|
# define EXT_GUARD_C ".guc"
|
||||||
|
# define EXT_TYPE(ext) ""
|
||||||
|
# endif
|
||||||
# else /* ! MSDOS */
|
# else /* ! MSDOS */
|
||||||
/* Standard. */
|
/* Standard. */
|
||||||
# define EXT_TAB ".tab"
|
# define EXT_TAB ".tab"
|
||||||
# define EXT_OUTPUT ".output"
|
# define EXT_OUTPUT ".output"
|
||||||
# define EXT_STYPE_H ".stype"
|
# define EXT_STYPE_H ".stype"
|
||||||
# define EXT_GUARD_C ".guard"
|
# define EXT_GUARD_C ".guard"
|
||||||
|
# define EXT_TYPE(ext) (ext)
|
||||||
# endif /* ! MSDOS */
|
# endif /* ! MSDOS */
|
||||||
#endif /* ! VMS */
|
#endif /* ! VMS */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user