View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001180 | OpenMPT | libopenmpt | public | 2018-12-24 18:41 | 2019-01-13 14:36 |
| Reporter | jcowgill | Assigned To | manx | ||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | resolved | Resolution | fixed | ||
| Product Version | OpenMPT 1.28.01.00 / libopenmpt 0.4.0 (upgrade first) | ||||
| Fixed in Version | OpenMPT 1.28.02.00 / libopenmpt 0.4.1 (upgrade first) | ||||
| Summary | 0001180: CSoundFile compat API is missing from shared libraries in libopenmpt 0.4.0 | ||||
| Description | In the libmodplug layer in libopenmpt 0.4.0, it seems that all the CSoundFile functions have been made non-public (hidden visibility). This causes undefined references in applications which use the compat layer and the CSoundFile API. Was this an intentional change or an oversight? | ||||
| Steps To Reproduce | With libopenmpt 0.4.0 autotools:
With 0.3.13, this prints lots of symbols. | ||||
| Tags | No tags attached. | ||||
| Attached Files | |||||
| Has the bug occurred in previous versions? | |||||
| Tested code revision (in case you know it) | |||||
|
This is certainly a bug and was not intentional. I'll release a fixed 0.4.1 in the next 2 days. Until then, the attached patch should restore the public symbols. libmodplug-no-exported-cpp-api-quickfix-v1.patch (745 bytes)
--- libopenmpt-0.4.0+release.autotools.original/libopenmpt/libopenmpt_modplug_cpp.cpp 2018-08-30 15:03:30.000000000 +0200
+++ libopenmpt-0.4.0+release.autotools/libopenmpt/libopenmpt_modplug_cpp.cpp 2018-12-24 20:07:59.972914902 +0100
@@ -51,8 +51,6 @@
/* libmodplug C++ header is broken for MSVC DLL builds */
#define MODPLUG_STATIC
#endif /* _MSC_VER */
-#include "libmodplug/stdafx.h"
-#include "libmodplug/sndfile.h"
#ifdef _MSC_VER
#define LIBOPENMPT_MODPLUG_API
@@ -60,6 +58,11 @@
#define LIBOPENMPT_MODPLUG_API LIBOPENMPT_API_HELPER_EXPORT
#endif /* _MSC_VER */
+class LIBOPENMPT_MODPLUG_API CSoundFile;
+
+#include "libmodplug/stdafx.h"
+#include "libmodplug/sndfile.h"
+
namespace {
template <class T>
void Clear( T & x )
|
|
|
Thanks! That patch works. |
|
|
0.4.1 release will take about 2 weeks rather than 2 days |
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2018-12-24 18:41 | jcowgill | New Issue | |
| 2018-12-24 18:56 | manx | Assigned To | => manx |
| 2018-12-24 18:56 | manx | Status | new => assigned |
| 2018-12-24 19:13 | manx | File Added: libmodplug-no-exported-cpp-api-quickfix-v1.patch | |
| 2018-12-24 19:13 | manx | Note Added: 0003771 | |
| 2018-12-24 20:58 | jcowgill | Note Added: 0003772 | |
| 2018-12-25 06:47 | manx | Status | assigned => resolved |
| 2018-12-25 06:47 | manx | Resolution | open => fixed |
| 2018-12-25 06:47 | manx | Note Added: 0003773 | |
| 2018-12-26 06:41 | manx | Note Added: 0003774 | |
| 2019-01-13 14:36 | manx | Fixed in Version | => OpenMPT 1.28.02.00 / libopenmpt 0.4.1 (upgrade first) |