Browse Source

build on Irix

David Rose 23 years ago
parent
commit
78897e2563

+ 5 - 4
dtool/Config.Irix.pp

@@ -17,9 +17,6 @@
 // Does the C++ compiler support namespaces?
 #define HAVE_NAMESPACE 1
 
-// Does the C++ compiler support ios::binary?
-#define HAVE_IOS_BINARY
-
 // How about the typename keyword?
 #define HAVE_TYPENAME 1
 
@@ -45,8 +42,12 @@
 // Can we determine the terminal width by making an ioctl(TIOCGWINSZ) call?
 #define IOCTL_TERMINAL_WIDTH 1
 
-// Do the compiler or the system headers define a "streamsize" typedef?
+// Do the system headers define a "streamsize" typedef?  How about the
+// ios::binary enumerated value?  And other ios typedef symbols like
+// ios::openmode and ios::fmtflags?
 #define HAVE_STREAMSIZE
+#define HAVE_IOS_BINARY
+#define HAVE_IOS_TYPEDEFS
 
 // Can we safely call getenv() at static init time?
 #define STATIC_INIT_GETENV 1

+ 5 - 1
dtool/Config.Linux.pp

@@ -45,8 +45,12 @@
 // Can we determine the terminal width by making an ioctl(TIOCGWINSZ) call?
 #define IOCTL_TERMINAL_WIDTH 1
 
-// Do the compiler or the system headers define a "streamsize" typedef?
+// Do the system headers define a "streamsize" typedef?  How about the
+// ios::binary enumerated value?  And other ios typedef symbols like
+// ios::openmode and ios::fmtflags?
 #define HAVE_STREAMSIZE 1
+#define HAVE_IOS_BINARY 1
+#define HAVE_IOS_TYPEDEFS 1
 
 // Can we safely call getenv() at static init time?
 #define STATIC_INIT_GETENV

+ 5 - 1
dtool/Config.Win32.pp

@@ -45,8 +45,12 @@
 // Can we determine the terminal width by making an ioctl(TIOCGWINSZ) call?
 #define IOCTL_TERMINAL_WIDTH
 
-// Do the compiler or the system headers define a "streamsize" typedef?
+// Do the system headers define a "streamsize" typedef?  How about the
+// ios::binary enumerated value?  And other ios typedef symbols like
+// ios::openmode and ios::fmtflags?
 #define HAVE_STREAMSIZE 1
+#define HAVE_IOS_BINARY 1
+#define HAVE_IOS_TYPEDEFS 1
 
 // Can we safely call getenv() at static init time?
 #define STATIC_INIT_GETENV 1

+ 8 - 4
dtool/LocalSetup.pp

@@ -134,9 +134,6 @@ $[cdefine WORDS_BIGENDIAN]
 /* Define if the C++ compiler uses namespaces.  */
 $[cdefine HAVE_NAMESPACE]
 
-/* Define if the C++ iostream library supports ios::binary.  */
-$[cdefine HAVE_IOS_BINARY]
-
 /* Define if fstream::open() accepts a third parameter for umask. */
 $[cdefine HAVE_OPEN_MASK]
 
@@ -165,9 +162,16 @@ $[cdefine HAVE_GETOPT_LONG_ONLY]
 /* Define if you have ioctl(TIOCGWINSZ) to determine terminal width. */
 $[cdefine IOCTL_TERMINAL_WIDTH]
 
-/* Do the compiler or the system headers define a "streamsize" typedef? */
+/* Do the system headers define a "streamsize" typedef? */
 $[cdefine HAVE_STREAMSIZE]
 
+/* Do the system headers define key ios typedefs like ios::openmode
+   and ios::fmtflags? */
+$[cdefine HAVE_IOS_TYPEDEFS]
+
+/* Define if the C++ iostream library defines ios::binary.  */
+$[cdefine HAVE_IOS_BINARY]
+
 /* Can we safely call getenv() at static init time? */
 $[cdefine STATIC_INIT_GETENV]
 

+ 9 - 0
dtool/src/cppparser/cppBisonDefs.h

@@ -97,10 +97,19 @@ public:
 // lexer.
 
 struct cppyyltype {
+  // Bison expects these members to be part of this struct.
   int first_line;
   int first_column;
   int last_line;
   int last_column;
+
+  // Early versions of bison (1.25 and earlier) expected these members
+  // to be in this struct as well.
+  int timestamp;
+  char *text;
+
+  // The remaining members are added for this application and have no
+  // meaning to bison.
   CPPFile file;
 };
 #define YYLTYPE cppyyltype

+ 5 - 5
dtool/src/dconfig/notify.cxx

@@ -109,18 +109,18 @@ get_ostream_ptr() const {
 //               case this does nothing.  But the flag is available in
 //               case any extended types want to make use of it.
 ////////////////////////////////////////////////////////////////////
-ios::fmtflags Notify::
+ios_fmtflags Notify::
 get_literal_flag() {
   static bool got_flag = false;
-  static ios::fmtflags flag;
+  static ios_fmtflags flag;
 
   if (!got_flag) {
 #ifndef HAVE_IOSTREAM
     flag = ios::bitalloc();
 #else
-    // We lost bitalloc in the new iostream?  This feature will just be
-    // disabled for now.  No big deal.
-    flag = (ios::fmtflags)0;
+    // We lost bitalloc in the new iostream?  Ok, this feature will
+    // just be disabled for now.  No big deal.
+    flag = (ios_fmtflags)0;
 #endif
     got_flag = true;
   }

+ 1 - 1
dtool/src/dconfig/notify.h

@@ -75,7 +75,7 @@ PUBLISHED:
   static Notify *ptr();
 
 public:
-  static ios::fmtflags get_literal_flag();
+  static ios_fmtflags get_literal_flag();
 
   bool assert_failure(const char *expression, int line,
                       const char *source_file);

+ 13 - 0
dtool/src/dtoolbase/dtoolbase_cc.h

@@ -74,6 +74,19 @@ using namespace std;
 #define TYPENAME
 #endif
 
+#ifndef HAVE_STREAMSIZE
+// Some compilers (notably SGI) don't define this for us
+typedef int streamsize;
+#endif /* HAVE_STREAMSIZE */
+
+#ifndef HAVE_IOS_TYPEDEFS
+typedef int ios_openmode;
+typedef int ios_fmtflags;
+#else
+typedef ios::openmode ios_openmode;
+typedef ios::fmtflags ios_fmtflags;
+#endif
+
 
 #if defined(WIN32_VC) && defined(FORCE_INLINING)
 // If FORCE_INLINING is defined, we use the keyword __forceinline,

+ 1 - 1
dtool/src/dtoolutil/executionEnvironment.I

@@ -48,7 +48,7 @@ get_environment_variable(const string &var) {
 ////////////////////////////////////////////////////////////////////
 INLINE void ExecutionEnvironment::
 set_environment_variable(const string &var, const string &value) {
-  return get_ptr()->ns_set_environment_variable(var, value);
+  get_ptr()->ns_set_environment_variable(var, value);
 }
 
 ////////////////////////////////////////////////////////////////////

+ 4 - 4
dtool/src/dtoolutil/filename.cxx

@@ -1171,7 +1171,7 @@ bool Filename::
 open_read(ifstream &stream) const {
   assert(is_text() || is_binary());
 
-  ios::openmode open_mode = ios::in;
+  ios_openmode open_mode = ios::in;
 
 #ifdef HAVE_IOS_BINARY
   // For some reason, some systems (like Irix) don't define
@@ -1206,7 +1206,7 @@ bool Filename::
 open_write(ofstream &stream, bool truncate) const {
   assert(is_text() || is_binary());
 
-  ios::openmode open_mode = ios::out;
+  ios_openmode open_mode = ios::out;
 
   if (truncate) {
     open_mode |= ios::trunc;
@@ -1256,7 +1256,7 @@ bool Filename::
 open_append(ofstream &stream) const {
   assert(is_text() || is_binary());
 
-  ios::openmode open_mode = ios::app;
+  ios_openmode open_mode = ios::app;
 
 #ifdef HAVE_IOS_BINARY
   // For some reason, some systems (like Irix) don't define
@@ -1292,7 +1292,7 @@ bool Filename::
 open_read_write(fstream &stream) const {
   assert(is_text() || is_binary());
 
-  ios::openmode open_mode = ios::in | ios::out;
+  ios_openmode open_mode = ios::in | ios::out;
 
 #ifdef HAVE_IOS_BINARY
   // For some reason, some systems (like Irix) don't define

+ 0 - 5
dtool/src/dtoolutil/pfstreamBuf.cxx

@@ -19,11 +19,6 @@
 #include "pfstreamBuf.h"
 #include <assert.h>
 
-#ifndef HAVE_STREAMSIZE
-// Some compilers (notably SGI) don't define this for us
-typedef int streamsize;
-#endif /* HAVE_STREAMSIZE */
-
 PipeStreamBuf::PipeStreamBuf(PipeStreamBuf::Direction dir) : 
   _dir(dir)
 {