diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2007-01-05 10:05:29 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2007-01-05 10:05:29 +0000 |
commit | ee8ea1f7e40ec380f884463239afa38467371541 (patch) | |
tree | 953813a001d01e281c1ea20f61b9ac6818d7a362 | |
parent | 851aac95e3b73ec25e4bfec53a65d67d99c31307 (diff) | |
download | ATCD-ee8ea1f7e40ec380f884463239afa38467371541.tar.gz |
Fri Jan 5 10:04:18 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r-- | ACE/ChangeLog | 14 | ||||
-rw-r--r-- | ACE/NEWS | 16 | ||||
-rw-r--r-- | ACE/ace/config-g++-common.h | 16 |
3 files changed, 37 insertions, 9 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index 04580c6a280..2c45e40ab5b 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,17 @@ +Fri Jan 5 10:04:18 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl> + + * ace/config-g++-common.h: + A change related to my commit of: + Thu Jan 4 08:55:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl> + With FC6 a bug in GCC has been fixed. This is then fixed in + GCC 4.1.1 but only in the RedHat codebase, not in other + GCC 4.x compilers. The HP GCC 4.1.1 compiler hasn't this + fix but also the SuSE 10.2 GCC 4.1.2 compiler has not this + fix. We assume at this moment that GCC 4.2 will have this + fix. If you have FC6 you must add the following define to + your config.h file: + ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 + Fri Jan 5 07:05:18 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com> * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: @@ -3,15 +3,16 @@ PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known) . (Remedy) OpenVMS 8.3 on IA64 port -. (Remedy) RTEMS port - -PLANNED CHANGES FOR "ACE-5.5.5" +PLANNED CHANGES FOR "ACE-5.5.6" =============================== . (OO) Minor 64 bit file offset fixes for ACE AIO classes on HP-UX. . (OO) Various other fixes that have been piling up. +PLANNED CHANGES FOR "ACE-5.5.5" +=============================== + . (Riverace) Pharlap ETS 13 qualification. USER VISIBLE CHANGES BETWEEN ACE-5.5.4 and ACE-5.5.5 @@ -109,6 +110,15 @@ USER VISIBLE CHANGES BETWEEN ACE-5.5.4 and ACE-5.5.5 . VxWorks 6.4 support +. Added support for FC6. Because the GCC 4.1.1 version that gets shipped + has a fix for the visibility attribute we use for the singletons + you will need to define the following in your config.h file. This can't be + done automatically because SuSE 10.2 gets shipped with GCC 4.1.2 but + doesn't have the same fix + ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 + +. RTEMS port + USER VISIBLE CHANGES BETWEEN ACE-5.5.3 and ACE-5.5.4 ==================================================== diff --git a/ACE/ace/config-g++-common.h b/ACE/ace/config-g++-common.h index 1d864451c26..83b9350b8e1 100644 --- a/ACE/ace/config-g++-common.h +++ b/ACE/ace/config-g++-common.h @@ -78,20 +78,24 @@ # define ACE_Proper_Export_Flag __attribute__ ((visibility("default"))) # define ACE_Proper_Import_Flag -# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 1)) || ((__GNUC__ == 4) && (__GNUC_MINOR__ == 1) && (__GNUC_PATCHLEVEL__ >= 1)) +# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) // Sadly, G++ 4.x silently ignores visibility attributes on // template instantiations, which breaks singletons. // As a workaround, we use the GCC visibility pragmas. // And to make them fit in a macro, we use C99's _Pragma() // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17470 -// This has been fixed in GCC 4.1.1 -# define GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 +// This has been fixed in GCC 4.1.1 with FC6 but not with SuSE 10.2 +// that gets shipped with GCC 4.1.2 so we assume that with GCC 4.2 +// this will be fixed on the head. With FC6 just set this define yourself +# ifndef ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS +# define ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 +# endif # endif -# if defined (GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS) && GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS == 1 +# if defined (ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS) && GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS == 1 # define ACE_EXPORT_SINGLETON_DECLARATION(T) template class ACE_Proper_Export_Flag T # define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class ACE_Proper_Export_Flag SINGLETON_TYPE <CLASS, LOCK>; -# else /* ! GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS */ +# else /* ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS */ # define ACE_EXPORT_SINGLETON_DECLARATION(T) \ _Pragma ("GCC visibility push(default)") \ template class T \ @@ -100,7 +104,7 @@ _Pragma ("GCC visibility push(default)") \ template class SINGLETON_TYPE<CLASS, LOCK>; \ _Pragma ("GCC visibility pop") -# endif /* ! GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS */ +# endif /* ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS */ // Note that the "__extension__" is needed to prevent g++ from issuing // an error when using its "-pedantic" command line flag. |