1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
From: YOKOTA Hiroshi <yokota.hgml@gmail.com>
Date: Tue, 10 Nov 2020 22:37:21 +0900
Subject: Add visibility attribute to reduce export table
Forwarded: not-needed
---
dll.cpp | 12 ++++++++++++
dll.hpp | 24 ++++++++++++------------
makefile | 2 +-
3 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/dll.cpp b/dll.cpp
index 31818e4..e54a3e0 100644
--- a/dll.cpp
+++ b/dll.cpp
@@ -14,6 +14,7 @@ struct DataSet
};
+__attribute__ ((visibility ("default")))
HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *r)
{
RAROpenArchiveDataEx rx;
@@ -30,6 +31,7 @@ HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *r)
}
+__attribute__ ((visibility ("default")))
HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *r)
{
DataSet *Data=NULL;
@@ -165,6 +167,7 @@ HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *r)
}
+__attribute__ ((visibility ("default")))
int PASCAL RARCloseArchive(HANDLE hArcData)
{
DataSet *Data=(DataSet *)hArcData;
@@ -181,6 +184,7 @@ int PASCAL RARCloseArchive(HANDLE hArcData)
}
+__attribute__ ((visibility ("default")))
int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *D)
{
struct RARHeaderDataEx X;
@@ -206,6 +210,7 @@ int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *D)
}
+__attribute__ ((visibility ("default")))
int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *D)
{
DataSet *Data=(DataSet *)hArcData;
@@ -417,18 +422,21 @@ int PASCAL ProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestNa
}
+__attribute__ ((visibility ("default")))
int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName)
{
return ProcessFile(hArcData,Operation,DestPath,DestName,NULL,NULL);
}
+__attribute__ ((visibility ("default")))
int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar *DestPath,wchar *DestName)
{
return ProcessFile(hArcData,Operation,NULL,NULL,DestPath,DestName);
}
+__attribute__ ((visibility ("default")))
void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc)
{
DataSet *Data=(DataSet *)hArcData;
@@ -436,6 +444,7 @@ void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc)
}
+__attribute__ ((visibility ("default")))
void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData)
{
DataSet *Data=(DataSet *)hArcData;
@@ -444,6 +453,7 @@ void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserDat
}
+__attribute__ ((visibility ("default")))
void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc)
{
DataSet *Data=(DataSet *)hArcData;
@@ -451,6 +461,7 @@ void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataPro
}
+__attribute__ ((visibility ("default")))
void PASCAL RARSetPassword(HANDLE hArcData,char *Password)
{
#ifndef RAR_NOCRYPT
@@ -463,6 +474,7 @@ void PASCAL RARSetPassword(HANDLE hArcData,char *Password)
}
+__attribute__ ((visibility ("default")))
int PASCAL RARGetDllVersion()
{
return RAR_DLL_VERSION;
diff --git a/dll.hpp b/dll.hpp
index c785ff1..268c2ce 100644
--- a/dll.hpp
+++ b/dll.hpp
@@ -167,18 +167,18 @@ typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
extern "C" {
#endif
-HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
-HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
-int PASCAL RARCloseArchive(HANDLE hArcData);
-int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
-int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
-int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
-int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
-void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData);
-void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
-void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
-void PASCAL RARSetPassword(HANDLE hArcData,char *Password);
-int PASCAL RARGetDllVersion();
+__attribute__ ((visibility ("default"))) HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
+__attribute__ ((visibility ("default"))) HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
+__attribute__ ((visibility ("default"))) int PASCAL RARCloseArchive(HANDLE hArcData);
+__attribute__ ((visibility ("default"))) int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
+__attribute__ ((visibility ("default"))) int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
+__attribute__ ((visibility ("default"))) int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
+__attribute__ ((visibility ("default"))) int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
+__attribute__ ((visibility ("default"))) void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData);
+__attribute__ ((visibility ("default"))) void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
+__attribute__ ((visibility ("default"))) void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
+__attribute__ ((visibility ("default"))) void PASCAL RARSetPassword(HANDLE hArcData,char *Password);
+__attribute__ ((visibility ("default"))) int PASCAL RARGetDllVersion();
#ifdef __cplusplus
}
diff --git a/makefile b/makefile
index f057518..d2c927f 100644
--- a/makefile
+++ b/makefile
@@ -4,7 +4,7 @@
# Linux using GCC
CXX = c++
CXXFLAGS +=
-LIBFLAGS += -fPIC
+LIBFLAGS += -fPIC -fvisibility=hidden -fvisibility-inlines-hidden
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP
STRIP = true
AR = ar
|