stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Black <abl...@roguewave.com>
Subject Re: Nightly testing failures on AIX 5.3
Date Fri, 08 Dec 2006 23:58:03 GMT
Greetings all.

Attached is a different solution to (and Changelog for) the core issue 
observed, that of the incorrect RPATH value for the test suite on AIX 
5.3.  Rather than defining directory specific LDFLAGS variables, this 
patch defines a new variable (RPATH), and appends it to the LDFLAGS 
variable in each directory's makefile, along with the relevant directory 
path.

Martin and I spent probably an hour or so this morning discussing 
different ways to generate the proposed sectional makefile.in setup. 
The conclusion that was reached was that generating these files would be 
an extremely verbose process.  In addition, the fatal flaw is the 
inability to remove or combine flags.  An example is if a pair of flags 
defined in different files (such as makefile.release.in and 
makefile.static.in) are mutually exclusive.  Another example is the MSVC 
runtime library options, which vary on two or three build mode options.

The basic layout of the sectional makefile would likely have been as 
follows.
The 'core' makefile.in contains variables that are used in all builds 
with a given compiler on a given platform.  This is mostly the same as 
the existing makefile.in.
In addition to this makefiles, a generated makefile would exist for each 
  build type attribute, and would be named like makefile.attribute.in. 
The attributes are debug/optimized, archive/shared, 
nothread/posix/solaris/dec, and narrow/wide.  These variables would 
contain the (narrow) set of variables which do vary.  These variables 
would be SUFFIX (only for archive/shared), CXXFLAGS, CPPFLAGS, LDFLAGS, 
  and ARFLAGS.

Within the .config files, these changing variables would be named like 
VARIABLE.mode (ie: CXXFLAGS.debug and LDFLAGS.shared, taking the place 
of the existing DEBUG_CXXFLAGS and SHARED_LDFLAGS variables respectively).

A similar set of files would exist in each major subdirectory.  The 
variables within the .config files would be named like VARIABLE.dir (for 
the makefile.in in each directory) and VARIABLE.dir.mode (for the 
makefile.mode.in in each directory).

Another concept that was discussed was the possibility of creating a 
compiler driver.  This driver would handle translating a set of gcc 
style compiler switches into switches understood by each compiler, along 
with such things as template repository locations and rpath control 
switches.

--Andrew Black

Mime
View raw message