Explorar el Código

appease adequate with some weak symbols for -private

Closes: #806422
David Kalnischkies hace 10 años
padre
commit
28f24d3dad
Se han modificado 3 ficheros con 8 adiciones y 2 borrados
  1. 2 0
      apt-pkg/contrib/macros.h
  2. 4 0
      apt-private/private-cmndline.cc
  3. 2 2
      apt-private/private-cmndline.h

+ 2 - 0
apt-pkg/contrib/macros.h

@@ -76,12 +76,14 @@
 	#define APT_PURE	__attribute__((pure))
 	#define APT_NORETURN	__attribute__((noreturn))
 	#define APT_PRINTF(n)	__attribute__((format(printf, n, n + 1)))
+	#define APT_WEAK        __attribute__((weak));
 #else
 	#define APT_DEPRECATED
 	#define APT_CONST
 	#define APT_PURE
 	#define APT_NORETURN
 	#define APT_PRINTF(n)
+	#define APT_WEAK
 #endif
 
 #if APT_GCC_VERSION > 0x0302

+ 4 - 0
apt-private/private-cmndline.cc

@@ -514,3 +514,7 @@ unsigned short DispatchCommandLine(CommandLine &CmdL, std::vector<CommandLine::D
    return Errors == true ? 100 : 0;
 }
 									/*}}}*/
+
+// weak symbols
+bool ShowHelp(CommandLine &) { return false; }
+std::vector<aptDispatchWithHelp> GetCommands() { return {}; }

+ 2 - 2
apt-private/private-cmndline.h

@@ -23,14 +23,14 @@ enum class APT_CMD {
    APT_SORTPKG,
 };
 
-bool ShowHelp(CommandLine &CmdL);
+APT_PUBLIC bool ShowHelp(CommandLine &CmdL) APT_WEAK;
 struct aptDispatchWithHelp
 {
    const char *Match;
    bool (*Handler)(CommandLine &);
    const char *Help;
 };
-std::vector<aptDispatchWithHelp> GetCommands();
+APT_PUBLIC std::vector<aptDispatchWithHelp> GetCommands() APT_WEAK;
 
 APT_PUBLIC std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD const Binary,
       Configuration * const * const Cnf, pkgSystem ** const Sys, int const argc, const char * argv[]);