]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Hide all symbols that aren't exported explicitly
authorattilamolnar <attilamolnar@hush.com>
Fri, 23 Aug 2013 09:13:09 +0000 (11:13 +0200)
committerattilamolnar <attilamolnar@hush.com>
Sun, 8 Sep 2013 15:21:37 +0000 (17:21 +0200)
In addition to reducing the sizes of all binaries this also helps the optimizer

include/compat.h
include/hashcomp.h
include/modules.h
include/protocol.h
make/template/main.mk

index 1cdad06c20a76ba4f9178549f52df4b9bbdfe76e..0357f54789eff25ef04ffed06e8e60e7513e65a6 100644 (file)
 #else
 # include <unistd.h>
 # define ENTRYPOINT int main(int argc, char** argv)
-# define DllExport
-# define CoreExport
+# define DllExport __attribute__ ((visibility ("default")))
+# define CoreExport __attribute__ ((visibility ("default")))
 #endif
index 51570978a1ba065b6dfb177f8947dd2b52c932e2..ec1cc57649a2b1c901d487d300bbf5ac782135f3 100644 (file)
@@ -118,8 +118,8 @@ namespace irc
         * This class is used to implement irc::string, a case-insensitive, RFC-
         * comparing string class.
         */
-       struct irc_char_traits : std::char_traits<char> {
-
+       struct CoreExport irc_char_traits : public std::char_traits<char>
+       {
                /** Check if two chars match.
                 * @param c1st First character
                 * @param c2nd Second character
index e8f0d10fe4926d24f8fea1cf057e5c20b0ec1163..d7b46ad4834b6552333605b79010396b9dec7b9a 100644 (file)
@@ -1428,7 +1428,7 @@ struct AllModuleList {
        { \
                return new y; \
        } \
-       extern "C" const char inspircd_src_version[] = VERSION " " REVISION;
+       extern "C" DllExport const char inspircd_src_version[] = VERSION " " REVISION;
 #endif
 
 #define COMMAND_INIT(c) MODULE_INIT(CommandModule<c>)
index 6af0ed21c65891e814008bc8c2cbde178f136d36..e474dd0951069827fe806d81ebeeff3dc36981a3 100644 (file)
@@ -26,7 +26,7 @@ class User;
 
 typedef std::vector<std::string> parameterlist;
 
-class ProtocolInterface
+class CoreExport ProtocolInterface
 {
  public:
        class ServerInfo
index bdb4d9762566165b0cf4d912994cab1c6ede6a3a..d82e8b27e37ce43f074ee3cfb79f628e6c86d0d8 100644 (file)
@@ -35,7 +35,7 @@ COMPILER = @COMPILER@
 SYSTEM = @SYSTEM@
 BUILDPATH = @BUILD_DIR@
 SOCKETENGINE = @SOCKETENGINE@
-CORECXXFLAGS = -fPIC -pipe -Iinclude -Wall -Wextra -Wfatal-errors -Wno-unused-parameter -Wshadow
+CORECXXFLAGS = -fPIC -fvisibility-inlines-hidden -pipe -Iinclude -Wall -Wextra -Wfatal-errors -Wno-unused-parameter -Wshadow
 LDLIBS = -lstdc++
 CORELDFLAGS = -rdynamic -L. $(LDFLAGS)
 PICLDFLAGS = -fPIC -shared -rdynamic $(LDFLAGS)
@@ -54,6 +54,10 @@ INSTMODE_LIB = 0640
   CORECXXFLAGS += -pedantic -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute
 @ENDIF
 
+@IFNEQ $(SYSTEM)-$(COMPILER) darwin-gcc
+  CORECXXFLAGS += -fvisibility=hidden
+@ENDIF
+
 @IFNEQ $(SYSTEM) darwin
   LDLIBS += -pthread
 @ENDIF