⛏️ index : buildtools.git

author Oliver Tappe <zooey@hirschkaefer.de> 2004-12-02 16:25:51.0 +00:00:00
committer Oliver Tappe <zooey@hirschkaefer.de> 2004-12-02 16:25:51.0 +00:00:00
commit
e5b1c1d2a4dc58752b95a2d4310855b969c5ec52 [patch]
tree
1a852576370add3a026420f088583f2e4a3839a7
parent
ad7c100bf6c2c6a34ccc08c8c70dcf052f63b7a8
download
e5b1c1d2a4dc58752b95a2d4310855b969c5ec52.tar.gz

- added support for manual selection of multiple/single symbol space via -fmultiple-symbol-spaces or -fno-multiple-symbol-spaces.

git-svn-id: file:///srv/svn/repos/haiku/trunk/buildtools@10352 a95241bf-73f2-0310-859d-f6bbb57e9c96

Diff

 gcc/gcc/cp/cp-tree.h      | 3 +++
 gcc/gcc/cp/decl2.c        | 6 ++++++
 gcc/gcc/cp/lang-options.h | 2 ++
 gcc/gcc/cp/lex.c          | 8 +++++---
 4 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/gcc/gcc/cp/cp-tree.h b/gcc/gcc/cp/cp-tree.h
index 8c1e7df..55f7097 100644
--- a/gcc/gcc/cp/cp-tree.h
+++ b/gcc/gcc/cp/cp-tree.h
@@ -567,6 +567,9 @@

extern int flag_access_control;

/* Nonzero to force the use of multiple symbol spaces  */
int flag_multiple_symbol_spaces;


/* C++ language-specific tree codes.  */
#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM,
diff --git a/gcc/gcc/cp/decl2.c b/gcc/gcc/cp/decl2.c
index c559ab1..53db85f 100644
--- a/gcc/gcc/cp/decl2.c
+++ b/gcc/gcc/cp/decl2.c
@@ -493,6 +493,9 @@
    if `-fSTRING' is seen as an option.
   (If `-fno-STRING' is seen as an option, the opposite value is stored.)  */

/* Nonzero to force the use of multiple symbol spaces  */
int flag_multiple_symbol_spaces;

static struct { const char *string; int *variable; int on_value;}
lang_f_options[] =
{
@@ -526,6 +529,7 @@
  {"implicit-inline-templates", &flag_implicit_inline_templates, 1},
  {"implicit-templates", &flag_implicit_templates, 1},
  {"labels-ok", &flag_labels_ok, 1},
  {"multiple-symbol-spaces", &flag_multiple_symbol_spaces, 1},
  {"nonansi-builtins", &flag_no_nonansi_builtin, 0},
  {"operator-names", &flag_operator_names, 1},
  {"optional-diags", &flag_optional_diags, 1},
@@ -2698,7 +2702,7 @@
	}
    }

  if (!optimize)
  if (!optimize || flag_multiple_symbol_spaces)
  if (import_export == -1)
    import_export = 0;

diff --git a/gcc/gcc/cp/lang-options.h b/gcc/gcc/cp/lang-options.h
index cfc6456..88f8413 100644
--- a/gcc/gcc/cp/lang-options.h
+++ b/gcc/gcc/cp/lang-options.h
@@ -73,6 +73,8 @@
  { "-fno-labels-ok", "" },
  { "-fmemoize-lookups", "" },
  { "-fno-memoize-lookups", "" },
  { "-fmultiple-symbol-spaces", "Use multiple symbol spaces (symbol export/import)" },
  { "-fno-multiple-symbol-spaces", "" },
  { "-fname-mangling-version-", "" },
  { "-fnew-abi", "Enable experimental ABI changes" },
  { "-fno-new-abi", "" },
diff --git a/gcc/gcc/cp/lex.c b/gcc/gcc/cp/lex.c
index 6cd018c..eb629d4 100644
--- a/gcc/gcc/cp/lex.c
+++ b/gcc/gcc/cp/lex.c
@@ -4890,18 +4890,18 @@

      interface_only = interface_strcmp (main_filename);

      if (!optimize) 
      if (!optimize || flag_multiple_symbol_spaces) 
	{  /* activate multiple symbol spaces */
#ifdef WORK_AROUND_PRAGMA_INTERFACE_BUG
	  interface_only = 0;
	  interface_unknown = 1;
#else /* WORK_AROUND_PRAGMA_INTERFACE_BUG */
      if (! interface_only)
	interface_unknown = 0;
	  if (! interface_only)
	    interface_unknown = 0;
#endif /* WORK_AROUND_PRAGMA_INTERFACE_BUG */
	}
      else /* single symbol space: */
      interface_unknown = 0;
	interface_unknown = 0;
      TREE_INT_CST_LOW (fileinfo) = interface_only;
      TREE_INT_CST_HIGH (fileinfo) = interface_unknown;