diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/g++spec.c | 11 | 
2 files changed, 15 insertions, 1 deletions
| diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 43ba64936e2..09f671844ae 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-08-05  Geoffrey Keating  <geoffk@apple.com> + +	* g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option +	means that libstdc++ is needed. +  2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>  	* cvt.c (cp_convert_to_pointer): Adjust force_fit_type call. diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c index 286134b0e97..ec31d818805 100644 --- a/gcc/cp/g++spec.c +++ b/gcc/cp/g++spec.c @@ -164,9 +164,18 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,  		}  	      saw_speclang = 1;  	    } +	  /* Arguments that go directly to the linker might be .o files, +	     or something, and so might cause libstdc++ to be needed.  */ +	  else if (strcmp (argv[i], "-Xlinker") == 0) +	    { +	      quote = argv[i]; +	      if (library == 0) +		library = 1; +	    } +	  else if (strncmp (argv[i], "-Wl,", 4) == 0) +	    library = (library == 0) ? 1 : library;  	  else if (((argv[i][2] == '\0'  		     && strchr ("bBVDUoeTuIYmLiA", argv[i][1]) != NULL) -		    || strcmp (argv[i], "-Xlinker") == 0  		    || strcmp (argv[i], "-Tdata") == 0))  	    quote = argv[i];  	  else if ((argv[i][2] == '\0' | 

