stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-336) allow multiple config.h files in the same installation directory
Date Tue, 04 Dec 2007 19:47:43 GMT

    [ https://issues.apache.org/jira/browse/STDCXX-336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548379
] 

Martin Sebor commented on STDCXX-336:
-------------------------------------

In addition to the config header this issue involves also storing libraries configured for
two or more compilers under the same directory (although most likely not in the same directory
since their names would conflict and encoding the name of the compiler or its version in the
name of the library binary would cause a binary incompatibility).

A possible solution to the config header problem that I discussed with Travis last week is
to encode the name (and possibly version) of the OS and compiler in the name of the generated
config header and provide a configuration macro (e.g., _RWSTD_CONFIG) for the user to set
to a value identifying this combination. E.g., the name of a config header generated for an
12d build with gcc 3.4.2 on Linux could be config-gcc-3.4.2-linux-12d.h and the value of the
_RWSTD_CONFIG macro to select this configuration would be gcc-3.4.2-linux-12d.

A solution to the library problem is to create a subdirectory for each distinct configuration
(compiler, OS, and buildtype) under $PREFIX/lib and store libraries there. Users would have
to append the name for the subdirectory appropriate for each configuration to their -L$PREFIX
option. To continue with the gcc/Linux example above, the install target would create a $PREFIX/lib/gcc-3.4.2-linux-12d
subdirectory and store the library (named libstd.so) there. Users would then need to specify
-L$PREFIX/lib/gcc-3.4.2-linux-12d -lstd on the link line. For compatibility with the current
setup where the buildtype is (or may be) encoded in the library name (libstd12d in our case)
the install target could create a link pointing to the suffix-less name (i.e., libstd12d.so
-> libstd.so).

> allow multiple config.h files in the same installation directory
> ----------------------------------------------------------------
>
>                 Key: STDCXX-336
>                 URL: https://issues.apache.org/jira/browse/STDCXX-336
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Configuration
>    Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0
>         Environment: all
>            Reporter: Andrew Black
>            Priority: Critical
>             Fix For: 4.3
>
>
> A useful enhancement could be the ability to install multiple versions of the standard
library into the same location.  While there is nothing in the makefiles that would prevent
such an installation, a problem arises with the config.h file in the include sub directory
of the install directory.  Only one config.h file can reside in this location at a time, and
different versions (such as those generated when characterizations are run with different
compilers) may differ.
> One problem that needs to be considered in implementing (or deciding not to implement)
this request is the situation where a config.h file hasn't been generated for a particular
os/compiler/buildtype/buildtag.
> Another problem to consider is when you have the same os/buildtype/buildtag, but different
compilers, and one or both compilers support features that the other doesn't.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message