Andrew Black wrote:
*shrugs*

I normally don't work with any part of subversion other than trunk, so
I'm not as familiar with the procedures for working on the branches.  I
suppose I should have sent the proposed patch to the list while I was
running the couple sanity builds, but I was more concerned with trying
to get things recovered from the bad merge, along with other internal work.

I'm not quite sure how to read this. If you think the RTC policy
for branches is too heavy-weight and have an idea for one that
allows for the kind of exception you're talking about feel free
to propose it. But unless and until we all decide to implement
such a change to the policy please post changes intended for
a pre-release branch to the list for review first.

Martin


The nightly testing sources need to be updated for the 4.2.0 release
branch, but provided we get decent results out of it I'm thinking we'll
probably end up tagging it as -rc2.

--Andrew Black

Martin Sebor wrote:
[EMAIL PROTECTED] wrote:
Author: ablack
Date: Fri Aug 24 17:29:23 2007
New Revision: 569584

URL: http://svn.apache.org/viewvc?rev=569584&view=rev
Log:
2007-08-24  Andrew Black  <[EMAIL PROTECTED]>

    STDCXX-470
    STDCXX-479
    STDCXX-481
FWIW, this change doesn't fix these bugs, it just integrates
the already committed fixes to the [pre]release branch. So,
IMO, the bugs shouldn't be referenced here. The main reason
why I think it's wrong is because this commit is now recorded
in each of the issues, giving the impression that it's a patch
necessary to fix the bugs.

In addition, quoting from the Committers section of our page
(http://incubator.apache.org/stdcxx/#committers), the policy
that we all voted in is:

  "For potentially unsafe changes or any changes to branches
  all stdcxx committers follow the Review-Then-Commit policy
 (RTC for short)."

Martin

    * etc/config/src/LIMITS.cpp: Revert
    http://svn.apache.org/viewvc?view=rev&revision=554421 ,
    accidentally merged to 4.2.0 prematurely as part of
    http://svn.apache.org/viewvc?view=rev&revision=569152 .
    * GNUmakefile: Deploy
    http://svn.apache.org/viewcvs?view=rev&rev=555061 to enable
    building with Sun C++ 5.9 (Sun Studio 12).
    * etc/config/GNUmakefile.cfg: Ditto.
    * etc/config/sunpro.config: Ditto.
    * etc/config/makefile.rules: Ditto.

Modified:
    incubator/stdcxx/branches/4.2.0/GNUmakefile
    incubator/stdcxx/branches/4.2.0/etc/config/GNUmakefile.cfg
    incubator/stdcxx/branches/4.2.0/etc/config/makefile.rules
    incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp
    incubator/stdcxx/branches/4.2.0/etc/config/sunpro.config

Modified: incubator/stdcxx/branches/4.2.0/GNUmakefile
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.0/GNUmakefile?rev=569584&r1=569583&r2=569584&view=diff

==============================================================================

--- incubator/stdcxx/branches/4.2.0/GNUmakefile (original)
+++ incubator/stdcxx/branches/4.2.0/GNUmakefile Fri Aug 24 17:29:23 2007
@@ -588,7 +588,10 @@
           && echo "PICFLAGS   = $(PICFLAGS)"             >>
$(MAKEFILE_IN)  \
           && echo "CPPFLAGS   = $(CPPFLAGS)"             >>
$(MAKEFILE_IN)  \
           && echo "WARNFLAGS  = $(WARNFLAGS)"            >>
$(MAKEFILE_IN)  \
-          && echo "DEPENDFLAGS = $(DEPENDFLAGS)"         >>
$(MAKEFILE_IN)  \
+          && echo "DEPENDFLAGS     = $(DEPENDFLAGS)"     >>
$(MAKEFILE_IN)  \
+          && echo "DEPENDFLAGS.cpp = $(DEPENDFLAGS.cpp)" >>
$(MAKEFILE_IN)  \
+          && echo "DEPENDFLAGS$(AS_EXT) = $(value
DEPENDFLAGS$(AS_EXT))"    \
+                                                         >>
$(MAKEFILE_IN)  \
           && echo "AS_EXT     = $(AS_EXT)"               >>
$(MAKEFILE_IN)  \
           && echo "LD         = $(LD)"                   >>
$(MAKEFILE_IN)  \
           && echo "LDFLAGS    = $(LDFLAGS)"              >>
$(MAKEFILE_IN)  \

Modified: incubator/stdcxx/branches/4.2.0/etc/config/GNUmakefile.cfg
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.0/etc/config/GNUmakefile.cfg?rev=569584&r1=569583&r2=569584&view=diff

==============================================================================

--- incubator/stdcxx/branches/4.2.0/etc/config/GNUmakefile.cfg (original)
+++ incubator/stdcxx/branches/4.2.0/etc/config/GNUmakefile.cfg Fri Aug
24 17:29:23 2007
@@ -145,6 +145,11 @@
 # (re)create config.h; do not change timestamp if the new file is the
same
 # make .o first to make sure the %.o: %.cpp rule gets invoked (make
bug?)
 # run a configure script as the last step (e.g., to remove unwanted
files)
+
+# creates a file named vars.sh, containing shell assignments
corresponding
+# to makefile variables defined in $(BUILDDIR)/makefile.in (variables
with
+# invalid names (those containing periods) are commented out);
vars.sh is
+# used in libc_decl.sh to invoke the compiler and linker
 config: clean sane      @([ -f config.h ] && mv config.h config.h.~
;                       \
           echo "// configured for $(CCNAME) on `uname -sr`" >config.h
;     \
@@ -163,6 +168,7 @@
                   if [ ! -f vars.sh ] ;
then                                \
                       cat
../makefile.in                                    \
                       | sed -e "s/= *\([^ ][^ ]*
.*\)/=\"\1\"/"             \
+                            -e "s/^\( *[^=]*\.[^=]*=.*\)/#
\1/"             \
                             -e "s/^\([^ ]*\) *= *\(.*\)/\1=\2 ;
export \1/" \
                             -e 's/$$(\([^)]*\))/${\1}/g' >vars.sh
;         \
                   fi
;                                                      \

Modified: incubator/stdcxx/branches/4.2.0/etc/config/makefile.rules
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.0/etc/config/makefile.rules?rev=569584&r1=569583&r2=569584&view=diff

==============================================================================

--- incubator/stdcxx/branches/4.2.0/etc/config/makefile.rules (original)
+++ incubator/stdcxx/branches/4.2.0/etc/config/makefile.rules Fri Aug
24 17:29:23 2007
@@ -119,8 +119,9 @@
PATH=$$PATH:.; \ TOPDIR=$(TOPDIR); \ TMP=$${TMP:-/tmp}/stdcxx-run-$$$$; \ + TZ=MST+7; \
         export
TMP;                                                       \
-        export LD_LIBRARY_PATH PATH TMP
TOPDIR;                           \
+        export LD_LIBRARY_PATH PATH TMP TOPDIR
TZ;                        \
         trap "rm -rf $$TMP" HUP INT QUIT TERM
EXIT;                       \
         mkdir -p
$$TMP;                                                   \
         ./run $(RUNFLAGS)
$(RUNTARGET);                                   \
@@ -133,8 +134,9 @@
PATH=$$PATH:$(LIBDIR):.; \ TOPDIR=$(TOPDIR); \ TMP=$${TMP:-/tmp}/stdcxx-run-$$$$; \ + TZ=MST+7; \
         export
TMP;                                                       \
-        export LD_LIBRARY_PATH PATH TMP
TOPDIR;                           \
+        export LD_LIBRARY_PATH PATH TMP TOPDIR
TZ;                        \
         trap "rm -rf $$TMP" HUP INT QUIT TERM
EXIT;                       \
         mkdir -p
$$TMP;                                                   \
         ./run $(RUNFLAGS)
$(RUNTARGET);                                   \
@@ -164,8 +166,6 @@
 endif   # eq ($(findstring clean,$(MAKECMDGOALS)),)
-ifneq ($(DEPENDFLAGS),)
-
 # generate dependencies only if they don't yet exist, removing anything
 # not under $(TOPDIR) or $(BUILDDIR) (e.g., system headers) from the
list
 # this is done by splitting up dependencies using tr so that there is
just
@@ -186,8 +186,9 @@
s:$$RWTSRCDIR:$$""(TOPDIR)/\.\./rwtest:gp; \ s:$(TOPDIR):$$""(TOPDIR):gp; \
                    s:$(BUILDDIR):$$""(BUILDDIR):gp"
;                        \
- \
-           $(CXX) $(DEPENDFLAGS) $(CPPFLAGS) $(CXXFLAGS)
$<                  \
+       depflags="$(value
DEPENDFLAGS$(depsuffix))";                      \
+           echo "$(CXX) $$depflags $(CPPFLAGS) $(CXXFLAGS)
$<";              \
+           $(CXX) $$depflags $(CPPFLAGS) $(CXXFLAGS)
$<                      \
                | sed "$$sedexp1" | tr "@" "\n" | sed -n "$$sedexp2"
$@ ;    \
            if [ ! -s $@ ];
then                                              \
depfile=$*.u; \
@@ -205,14 +206,36 @@
 $(DEPENDDIR):
     @[ ! -d $(DEPENDDIR) ] && mkdir -p $(DEPENDDIR)
+
+ifeq ($(DEPENDFLAGS),)
+  # if DEPENDFLAGS is empty or not defined, set it to the concatenation
+  # of the variables specific to each type of a source file
+  DEPENDFLAGS = $(DEPENDFLAGS.cpp) $(value DEPENDFLAGS$(AS_EXT))
+else
+  DEPENDFLAGS.cpp := $(DEPENDFLAGS)
+  DEPENDFLAGS.S   := $(DEPENDFLAGS)
+  DEPENDFLAGS.s   := $(DEPENDFLAGS)
+endif
+
+ifneq ($(DEPENDFLAGS),)
+
+# set depsuffix to the suffix of the first prerequisite
+$(DEPENDDIR)/%.d: depsuffix = $(suffix $<)
+
+  ifneq ($(DEPENDFLAGS.cpp),)
+
 # rule to make dependencies for C++ source files
 $(DEPENDDIR)/%.d: %.cpp $(DEPENDDIR)
     $(makedep)
+ endif # DEPENDFLAGS.cpp
+  ifneq ($(value DEPENDFLAGS$(AS_EXT)),)
+
 # rule to make dependencies for assembly files
 $(DEPENDDIR)/%.d: %$(AS_EXT) $(DEPENDDIR)
     $(makedep)
+ endif # DEPENDFLAGS.as else # ifeq ($(DEPENDFLAGS),)
Modified: incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp?rev=569584&r1=569583&r2=569584&view=diff

==============================================================================

--- incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp (original)
+++ incubator/stdcxx/branches/4.2.0/etc/config/src/LIMITS.cpp Fri Aug
24 17:29:23 2007
@@ -336,14 +336,14 @@
#ifndef _RWSTD_NO_WCHAR_T - printf ("#define _RWSTD_WCHAR_SIZE %2u /* sizeof (wchar_t) */\n",
+    printf ("#define _RWSTD_WCHAR_T_SIZE  %2u /* sizeof (wchar_t) */\n",
             SIZEOF (wchar_t));
const char *suffix = "U";
     if ((wchar_t)~0 < (wchar_t)0)
         suffix = "";
     -    MKLIMITS (wchar_t, "WCHAR", suffix, "wchar_t");
+    MKLIMITS (wchar_t, "WCHAR_T", suffix, "wchar_t");
#endif // _RWSTD_NO_WCHAR_T
Modified: incubator/stdcxx/branches/4.2.0/etc/config/sunpro.config
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.0/etc/config/sunpro.config?rev=569584&r1=569583&r2=569584&view=diff

==============================================================================

--- incubator/stdcxx/branches/4.2.0/etc/config/sunpro.config (original)
+++ incubator/stdcxx/branches/4.2.0/etc/config/sunpro.config Fri Aug
24 17:29:23 2007
@@ -10,9 +10,24 @@
# extract the "C++ m.n" substring from version string (whcih changes
 # from one release of the compiler to another)
-CCVER          := $(shell $(CXX) -V 2>&1 | head -n1 | sed 's/.*C\+\+
*\([^ ]*\).*/\1/')
+CCVER          := $(shell   $(CXX) -V 2>&1 | head -n1 \
+                          | sed 's/.*C\+\+ *\([^ ]*\).*/\1/')
+CCMAJOR        := $(shell echo $(CCVER) | cut -f1 -d'.')
+CCMINOR        := $(shell echo $(CCVER) | cut -f2 -d'.')
+
+ifeq ($(shell expr $(CCMAJOR) = 5 \& $(CCMINOR) = 9),1) + # in Sun C++ 5.9 -xM can only be used with C and C++ files
+  # and it produces the wrong results with .{S,s} files
+  DEPENDFLAGS.cpp = -xM
+
+  # deliberately undefined:
+  # DEPENDFLAGS.S =
+  # DEPENDFLAGS   =
+else
+  DEPENDFLAGS     = -xM
+endif
+
 WARNFLAGS       = +w
-DEPENDFLAGS     = -xM
 PICFLAGS        = -KPIC
 LDSOFLAGS       =  CXXFLAGS        = -library=%none
@@ -77,21 +92,38 @@
 SINGL_CPPFLAGS =
 SINGL_LDFLAGS  =
-# (try to) determine the architecture via the (non-standard) -p option
-# recognized on (at least) Linux and Solaris
-arch=$(shell uname -p 2>/dev/null)
-
-ifeq ($(arch),sparc)
-    # wide (64-bit) flags -- must be set explicitly
-    # narrow (32-bit) flags are implicit on SPARC
-    wide_flags     = -xarch=v9
-    narrow_flags   = -xarch=v8
+ifeq ($(shell expr $(CCMAJOR) \>= 5 \& $(CCMINOR) \>= 9),1)
+
+    # starting with Sun C++ 5.9, the compiler prefers the generic
+    # -m32 and -m64 options to the architecture specific -xarch
+    # options some of which have been deprecated
+    wide_flags   = -m64
+    narrow_flags = -m32
 else
-    # wide (64-bit) flags -- must be set explicitly
-    # narrow (32-bit) flags are implicit on AMD64
-    ifeq ($(arch),amd64)
-        wide_flags     = -xarch=amd64
-        narrow_flags   =
+    # (try to) determine the architecture via the (non-standard)
+    # -p option recognized on (at least) Linux and Solaris
+    arch := $(shell uname -p 2>/dev/null)
+
+    ifeq ($(arch),sparc)
+        # wide (64-bit) flags -- must be set explicitly
+        # narrow (32-bit) flags are implicit on SPARC
+        wide_flags   = -xarch=v9
+        narrow_flags = -xarch=v8
+    else
+        # wide (64-bit) flags -- must be set explicitly
+        # narrow (32-bit) flags are implicit on AMD64
+        ifeq ($(OSNAME),SunOS)
+            # Solaris uname -p prints i386 on AMD64, use the optisa
+            # command to deterrmine "the best" architecture
+            arch := $(shell optisa amd64)
+        endif
+        ifeq ($(arch),amd64)
+            wide_flags   = -xarch=amd64
+            narrow_flags = -xarch=386 # the default (same as generic)
+        else
+            wide_flags   = -xarch=generic64
+            narrow_flags = -xarch=generic # the default (same as 386)
+        endif
     endif
 endif


Reply via email to