1. 20 Jun, 2016 1 commit
  2. 14 Jun, 2014 1 commit
    • Konstantinos Tsanaktsidis's avatar
      Fix libmod_plugin undefined __imp_ symbols building for win32 · 298616dd
      Konstantinos Tsanaktsidis authored
      When building current HEAD of master for x86_64-w64-mingw32 against current
      contribs, compilation fails at libmod_plugin due to undefined symbols of
      the form __imp_ModPlug_*. This patch modifies libmodplug in contribs by
      adding -DMODPLUG_STATIC to CFlags in the pkg-config file. A bug is also
      fixed in the main build system to make sure the CFLAGS are picked up from
      this pkg-config file.
      
      This problem occurs because of the following code in
      contrib/x86_64-w64-mingw32/include/libmodplug/modplug.h. This code is
      present in libmodplug obtained from running "make fetch & make" in the
      contribs directory, but not present in the prebuilt contribs obtained from
      running "make prebuilt".
      
       #if defined(_WIN32) || defined(__CYGWIN__)
       # if defined(MODPLUG_BUILD) && defined(DLL_EXPORT)
       #   define MODPLUG_EXPORT __declspec(dllexport)
       # elif defined(MODPLUG_BUILD) || defined(MODPLUG_STATIC)
       #   define MODPLUG_EXPORT
       # else
       #   define MODPLUG_EXPORT __declspec(dllimport)
       # endif
      
      When building for Windows, if MODPLUG_STATIC is not defined, MODPLUG_EXPORT
      is defined as "__declspec(dllimport)". On Windows, dynamic symbols are
      prefixed with "__imp_", so this causes GCC to adjust the symbol references
      to the libmodplug functions accordingly.
      
      This patch therefore adds a patch to contribs for libmodplug's pkg-config
      file. It adds -DMODPLUG_STATIC to CFlags, so that when libmod_plugin is
      building it will have the correct symbol names.
      
      However, there is also a bug in the build system that needs to be fixed for
      this to work. The configure script sets a CXXFLAGS_mod containing the
      output of pkg-config for libmodplug, but not CFLAGS_mod. Additionally, the
      Makefile.ac for libmod_plugin sets CXXFLAGS when in fact the relevant files
      (mod.c) are plain C. Autotools therefore ignores these CXXFLAGS when
      generating a makefile.
      
      The solution is to add a macro to configure.ac to set CFLAGS_mod. This then
      needs to be used in modules/demux/Makefile.am to populate
      libmod_plugin_la_CFLAGS instead of libmod_plugin_la_CXXFLAGS (which gets
      ignored).
      Signed-off-by: Jean-Baptiste Kempf's avatarJean-Baptiste Kempf <jb@videolan.org>
      298616dd
  3. 24 May, 2014 1 commit
  4. 29 Nov, 2013 1 commit
  5. 07 Oct, 2013 2 commits
  6. 18 Aug, 2013 1 commit
  7. 06 Mar, 2012 1 commit
  8. 05 Jan, 2012 2 commits
  9. 27 Nov, 2011 1 commit
  10. 08 Aug, 2011 1 commit
  11. 04 Jul, 2011 1 commit
  12. 30 Jun, 2011 1 commit
  13. 29 Jun, 2011 1 commit