Some update to fix build issues (this time, Linux)

- All platforms support native hash values for long long etc.
  with the TR1 containers
- Use non-static, function symbols to force linking.
- Debian package is picky about dates so give them some
  in Changelog.
This commit is contained in:
Matthias Koefferlein 2018-09-10 21:56:20 +02:00
parent 8fa3baa594
commit c46bed0785
41 changed files with 43 additions and 83 deletions

View File

@ -1,9 +1,9 @@
0.26 (xxxx-xx-xx):
0.26 (2018-12-31):
* Enhancement: Standalone Python modules provided
For details see:
https://github.com/klayoutmatthias/klayout/wiki/klayout---Standalone-KLayout-Python-Module
0.25.5 (xxxx-xx-xx):
0.25.5 (2018-12-31):
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/162
GDS2 LIBNAME was not maintained on "File/Save".

View File

@ -3093,7 +3093,7 @@ END
src.puts("# define GSI_#{modn.upcase}_LOCAL DEF_OUTSIDE_LOCAL")
src.puts("# endif")
src.puts("")
src.puts("#define FORCE_LINK_GSI_#{modn.upcase} void force_link_gsi#{modn}_f () { GSI_#{modn.upcase}_PUBLIC int force_link_gsi#{modn}; force_link_gsi#{modn} = 0; }")
src.puts("#define FORCE_LINK_GSI_#{modn.upcase} GSI_#{modn.upcase}_PUBLIC int _force_link_gsi#{modn}_f (); int _force_link_gsi#{modn} = _force_link_gsi#{modn}_f ();")
src.puts("")
src.puts("#endif")
@ -3120,7 +3120,7 @@ END
src.puts("")
src.puts("#include \"gsi#{modn}Common.h\"")
src.puts("")
src.puts("GSI_#{modn.upcase}_PUBLIC int force_link_gsi#{modn} = 0;")
src.puts("GSI_#{modn.upcase}_PUBLIC int _force_link_gsi#{modn}_f () { return 0; }")
src.puts("")
puts("#{src_name} written.")

View File

@ -33,7 +33,7 @@
namespace ant
{
ANT_PUBLIC int _force_link_f ();
static int _force_link_target = _force_link_f ();
int _force_link_target = _force_link_f ();
}
#endif

View File

@ -43,53 +43,13 @@
/**
* This header defines some hash functions for various database objects
* for use with std_ext::hash_map and std_ext::hash_set
* for use with std::unordered_map and std::unordered_set
*
* It also provides namespace abstraction for the std_ext namespace
*/
namespace std
{
#if defined(_WIN64) && !defined(_MSC_VER)
/**
* @brief Specialization missing for size_t on WIN64
*/
template<>
struct hash<size_t>
{
size_t operator()(size_t __x) const
{
return __x;
}
};
#endif
#if (defined(_WIN64) && !defined(_MSC_VER)) || defined(__APPLE__)
/**
* @brief Specialization missing for long long on WIN64
*/
template<>
struct hash<long long>
{
size_t operator()(long long __x) const
{
return size_t (__x);
}
};
#elif defined(_WIN32)
/**
* @brief Specialization missing for long long (64 bit) on WIN32
*/
template<>
struct hash<long long>
{
size_t operator()(long long __x) const
{
return size_t (__x ^ (__x >> 32));
}
};
#endif
template <class T>
inline size_t hfunc (const T &t)
{

View File

@ -33,7 +33,7 @@
namespace drc
{
DRC_PUBLIC int _force_link_f ();
static int _force_link_target = _force_link_f ();
int _force_link_target = _force_link_f ();
}
#endif

View File

@ -20,6 +20,6 @@
# define GSI_QTCORE_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTCORE void force_link_gsiQtCore_f () { GSI_QTCORE_PUBLIC int force_link_gsiQtCore; force_link_gsiQtCore = 0; }
#define FORCE_LINK_GSI_QTCORE GSI_QTCORE_PUBLIC int _force_link_gsiQtCore_f (); int _force_link_gsiQtCore = _force_link_gsiQtCore_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtCoreCommon.h"
GSI_QTCORE_PUBLIC int force_link_gsiQtCore = 0;
GSI_QTCORE_PUBLIC int _force_link_gsiQtCore_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTDESIGNER_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTDESIGNER void force_link_gsiQtDesigner_f () { GSI_QTDESIGNER_PUBLIC int force_link_gsiQtDesigner; force_link_gsiQtDesigner = 0; }
#define FORCE_LINK_GSI_QTDESIGNER GSI_QTDESIGNER_PUBLIC int _force_link_gsiQtDesigner_f (); int _force_link_gsiQtDesigner = _force_link_gsiQtDesigner_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtDesignerCommon.h"
GSI_QTDESIGNER_PUBLIC int force_link_gsiQtDesigner = 0;
GSI_QTDESIGNER_PUBLIC int _force_link_gsiQtDesigner_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTGUI_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTGUI void force_link_gsiQtGui_f () { GSI_QTGUI_PUBLIC int force_link_gsiQtGui; force_link_gsiQtGui = 0; }
#define FORCE_LINK_GSI_QTGUI GSI_QTGUI_PUBLIC int _force_link_gsiQtGui_f (); int _force_link_gsiQtGui = _force_link_gsiQtGui_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtGuiCommon.h"
GSI_QTGUI_PUBLIC int force_link_gsiQtGui = 0;
GSI_QTGUI_PUBLIC int _force_link_gsiQtGui_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTNETWORK_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTNETWORK void force_link_gsiQtNetwork_f () { GSI_QTNETWORK_PUBLIC int force_link_gsiQtNetwork; force_link_gsiQtNetwork = 0; }
#define FORCE_LINK_GSI_QTNETWORK GSI_QTNETWORK_PUBLIC int _force_link_gsiQtNetwork_f (); int _force_link_gsiQtNetwork = _force_link_gsiQtNetwork_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtNetworkCommon.h"
GSI_QTNETWORK_PUBLIC int force_link_gsiQtNetwork = 0;
GSI_QTNETWORK_PUBLIC int _force_link_gsiQtNetwork_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTSQL_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTSQL void force_link_gsiQtSql_f () { GSI_QTSQL_PUBLIC int force_link_gsiQtSql; force_link_gsiQtSql = 0; }
#define FORCE_LINK_GSI_QTSQL GSI_QTSQL_PUBLIC int _force_link_gsiQtSql_f (); int _force_link_gsiQtSql = _force_link_gsiQtSql_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtSqlCommon.h"
GSI_QTSQL_PUBLIC int force_link_gsiQtSql = 0;
GSI_QTSQL_PUBLIC int _force_link_gsiQtSql_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTXML_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTXML void force_link_gsiQtXml_f () { GSI_QTXML_PUBLIC int force_link_gsiQtXml; force_link_gsiQtXml = 0; }
#define FORCE_LINK_GSI_QTXML GSI_QTXML_PUBLIC int _force_link_gsiQtXml_f (); int _force_link_gsiQtXml = _force_link_gsiQtXml_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtXmlCommon.h"
GSI_QTXML_PUBLIC int force_link_gsiQtXml = 0;
GSI_QTXML_PUBLIC int _force_link_gsiQtXml_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTCORE_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTCORE void force_link_gsiQtCore_f () { GSI_QTCORE_PUBLIC int force_link_gsiQtCore; force_link_gsiQtCore = 0; }
#define FORCE_LINK_GSI_QTCORE GSI_QTCORE_PUBLIC int _force_link_gsiQtCore_f (); int _force_link_gsiQtCore = _force_link_gsiQtCore_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtCoreCommon.h"
GSI_QTCORE_PUBLIC int force_link_gsiQtCore = 0;
GSI_QTCORE_PUBLIC int _force_link_gsiQtCore_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTDESIGNER_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTDESIGNER void force_link_gsiQtDesigner_f () { GSI_QTDESIGNER_PUBLIC int force_link_gsiQtDesigner; force_link_gsiQtDesigner = 0; }
#define FORCE_LINK_GSI_QTDESIGNER GSI_QTDESIGNER_PUBLIC int _force_link_gsiQtDesigner_f (); int _force_link_gsiQtDesigner = _force_link_gsiQtDesigner_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtDesignerCommon.h"
GSI_QTDESIGNER_PUBLIC int force_link_gsiQtDesigner = 0;
GSI_QTDESIGNER_PUBLIC int _force_link_gsiQtDesigner_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTGUI_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTGUI void force_link_gsiQtGui_f () { GSI_QTGUI_PUBLIC int force_link_gsiQtGui; force_link_gsiQtGui = 0; }
#define FORCE_LINK_GSI_QTGUI GSI_QTGUI_PUBLIC int _force_link_gsiQtGui_f (); int _force_link_gsiQtGui = _force_link_gsiQtGui_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtGuiCommon.h"
GSI_QTGUI_PUBLIC int force_link_gsiQtGui = 0;
GSI_QTGUI_PUBLIC int _force_link_gsiQtGui_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTMULTIMEDIA_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTMULTIMEDIA void force_link_gsiQtMultimedia_f () { GSI_QTMULTIMEDIA_PUBLIC int force_link_gsiQtMultimedia; force_link_gsiQtMultimedia = 0; }
#define FORCE_LINK_GSI_QTMULTIMEDIA GSI_QTMULTIMEDIA_PUBLIC int _force_link_gsiQtMultimedia_f (); int _force_link_gsiQtMultimedia = _force_link_gsiQtMultimedia_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtMultimediaCommon.h"
GSI_QTMULTIMEDIA_PUBLIC int force_link_gsiQtMultimedia = 0;
GSI_QTMULTIMEDIA_PUBLIC int _force_link_gsiQtMultimedia_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTNETWORK_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTNETWORK void force_link_gsiQtNetwork_f () { GSI_QTNETWORK_PUBLIC int force_link_gsiQtNetwork; force_link_gsiQtNetwork = 0; }
#define FORCE_LINK_GSI_QTNETWORK GSI_QTNETWORK_PUBLIC int _force_link_gsiQtNetwork_f (); int _force_link_gsiQtNetwork = _force_link_gsiQtNetwork_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtNetworkCommon.h"
GSI_QTNETWORK_PUBLIC int force_link_gsiQtNetwork = 0;
GSI_QTNETWORK_PUBLIC int _force_link_gsiQtNetwork_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTPRINTSUPPORT_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTPRINTSUPPORT void force_link_gsiQtPrintSupport_f () { GSI_QTPRINTSUPPORT_PUBLIC int force_link_gsiQtPrintSupport; force_link_gsiQtPrintSupport = 0; }
#define FORCE_LINK_GSI_QTPRINTSUPPORT GSI_QTPRINTSUPPORT_PUBLIC int _force_link_gsiQtPrintSupport_f (); int _force_link_gsiQtPrintSupport = _force_link_gsiQtPrintSupport_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtPrintSupportCommon.h"
GSI_QTPRINTSUPPORT_PUBLIC int force_link_gsiQtPrintSupport = 0;
GSI_QTPRINTSUPPORT_PUBLIC int _force_link_gsiQtPrintSupport_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTSQL_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTSQL void force_link_gsiQtSql_f () { GSI_QTSQL_PUBLIC int force_link_gsiQtSql; force_link_gsiQtSql = 0; }
#define FORCE_LINK_GSI_QTSQL GSI_QTSQL_PUBLIC int _force_link_gsiQtSql_f (); int _force_link_gsiQtSql = _force_link_gsiQtSql_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtSqlCommon.h"
GSI_QTSQL_PUBLIC int force_link_gsiQtSql = 0;
GSI_QTSQL_PUBLIC int _force_link_gsiQtSql_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTSVG_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTSVG void force_link_gsiQtSvg_f () { GSI_QTSVG_PUBLIC int force_link_gsiQtSvg; force_link_gsiQtSvg = 0; }
#define FORCE_LINK_GSI_QTSVG GSI_QTSVG_PUBLIC int _force_link_gsiQtSvg_f (); int _force_link_gsiQtSvg = _force_link_gsiQtSvg_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtSvgCommon.h"
GSI_QTSVG_PUBLIC int force_link_gsiQtSvg = 0;
GSI_QTSVG_PUBLIC int _force_link_gsiQtSvg_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTWIDGETS_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTWIDGETS void force_link_gsiQtWidgets_f () { GSI_QTWIDGETS_PUBLIC int force_link_gsiQtWidgets; force_link_gsiQtWidgets = 0; }
#define FORCE_LINK_GSI_QTWIDGETS GSI_QTWIDGETS_PUBLIC int _force_link_gsiQtWidgets_f (); int _force_link_gsiQtWidgets = _force_link_gsiQtWidgets_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtWidgetsCommon.h"
GSI_QTWIDGETS_PUBLIC int force_link_gsiQtWidgets = 0;
GSI_QTWIDGETS_PUBLIC int _force_link_gsiQtWidgets_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTXML_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTXML void force_link_gsiQtXml_f () { GSI_QTXML_PUBLIC int force_link_gsiQtXml; force_link_gsiQtXml = 0; }
#define FORCE_LINK_GSI_QTXML GSI_QTXML_PUBLIC int _force_link_gsiQtXml_f (); int _force_link_gsiQtXml = _force_link_gsiQtXml_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtXmlCommon.h"
GSI_QTXML_PUBLIC int force_link_gsiQtXml = 0;
GSI_QTXML_PUBLIC int _force_link_gsiQtXml_f () { return 0; }

View File

@ -20,6 +20,6 @@
# define GSI_QTXMLPATTERNS_LOCAL DEF_OUTSIDE_LOCAL
# endif
#define FORCE_LINK_GSI_QTXMLPATTERNS void force_link_gsiQtXmlPatterns_f () { GSI_QTXMLPATTERNS_PUBLIC int force_link_gsiQtXmlPatterns; force_link_gsiQtXmlPatterns = 0; }
#define FORCE_LINK_GSI_QTXMLPATTERNS GSI_QTXMLPATTERNS_PUBLIC int _force_link_gsiQtXmlPatterns_f (); int _force_link_gsiQtXmlPatterns = _force_link_gsiQtXmlPatterns_f ();
#endif

View File

@ -7,5 +7,5 @@
#include "gsiQtXmlPatternsCommon.h"
GSI_QTXMLPATTERNS_PUBLIC int force_link_gsiQtXmlPatterns = 0;
GSI_QTXMLPATTERNS_PUBLIC int _force_link_gsiQtXmlPatterns_f () { return 0; }

View File

@ -33,7 +33,7 @@
namespace img
{
IMG_PUBLIC int _force_link_f ();
static int _force_link_target = _force_link_f ();
int _force_link_target = _force_link_f ();
}
#endif

View File

@ -33,7 +33,7 @@
namespace lib
{
LIB_PUBLIC int _force_link_f ();
static int _force_link_target = _force_link_f ();
int _force_link_target = _force_link_f ();
}
#endif