Use explicit dllexport attribute for g++ 4.7 and later
The bug that resulted in creating huge DLLs that took inordinate amounts of
memory and time to link with g++ 4.5 has been fixed in 4.7, so don't export
everything when using it, as this results in even smaller DLLs.
The situation with 4.6 is unknown, so leave behaviour with it unchanged.
See 49d2c0adc3
This commit is contained in:
parent
1c5c28411b
commit
db966da330
@ -26,13 +26,16 @@
|
||||
# define WXEXPORT __declspec(dllexport)
|
||||
# define WXIMPORT __declspec(dllimport)
|
||||
/*
|
||||
While gcc also supports __declspec(dllexport), it creates unusably huge
|
||||
DLL files since gcc 4.5 (while taking horribly long amounts of time),
|
||||
While gcc also supports __declspec(dllexport), it created unusably huge
|
||||
DLL files in gcc 4.[56] (while taking horribly long amounts of time),
|
||||
see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601. Because of this
|
||||
we rely on binutils auto export/import support which seems to work
|
||||
quite well for 4.5+.
|
||||
quite well for 4.5+. However the problem was fixed in 4.7 and later and
|
||||
not exporting everything creates smaller DLLs (~8% size difference), so
|
||||
do use the explicit attributes again for the newer versions.
|
||||
*/
|
||||
# elif defined(__GNUC__) && !wxCHECK_GCC_VERSION(4, 5)
|
||||
# elif defined(__GNUC__) && \
|
||||
(!wxCHECK_GCC_VERSION(4, 5) || wxCHECK_GCC_VERSION(4, 7))
|
||||
/*
|
||||
__declspec could be used here too but let's use the native
|
||||
__attribute__ instead for clarity.
|
||||
|
Loading…
Reference in New Issue
Block a user