You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In src/filedrag/dfiledragserver.cpp and src/private/dfiledragserver_p.h the same class, DFileDragServerPrivate, is defined twice in different ways. This violates the One Definition Rule and is not valid C++.
DTK and OS VERSIONS | DTK&系统版本信息
dtk6gui-6.0.28
Minimal Reproducible Case Code | 最小复现案例代码
Configure and compile the library with LTO: -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -flto
OBSERVED RESULT | 观察到的结果
[55/68] : && /usr/lib/distcc/bin/x86_64-pc-linux-gnu-g++ -fPIC -march=core2 -msse4.1 -mxsave --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=6144 -O2 -pipe -fno-semantic-interposition -mfpmath=sse -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgcse-after-reload -floop-interchange -fpeel-loops -fpredictive-commoning -ftree-partial-pre -floop-block -fgraphite-identity -fPIC -Wall -Wextra -fopenmp -Ofast -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--as-needed -shared -Wl,-soname,libdtk6gui.so.6 -o src/libdtk6gui.so.6.0.28 src/CMakeFiles/dtk6gui.dir/dtk6gui_autogen/mocs_compilation.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/dplatforminterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/dplatformwindowinterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/xcb/dxcbplatforminterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/xcb/dxcbplatformwindowinterface.cpp.o src/CMakeFiles/dtk6gui.dir/wayland-treeland-personalization-manager-v1-protocol.c.o src/CMakeFiles/dtk6gui.dir/qwayland-treeland-personalization-manager-v1.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/dtreelandplatforminterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/dtreelandplatformwindowinterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/dtreelandwindowmanagerhelper.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/personalizationwaylandclientextension.cpp.o src/CMakeFiles/dtk6gui.dir/dbus/xeventmonitor_interface.cpp.o src/CMakeFiles/dtk6gui.dir/filedrag/dfiledrag.cpp.o src/CMakeFiles/dtk6gui.dir/filedrag/dfiledragclient.cpp.o src/CMakeFiles/dtk6gui.dir/filedrag/dfiledragserver.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dforeignwindow.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dguiapplicationhelper.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dnativesettings.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dpalette.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dplatformhandle.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dplatformtheme.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dregionmonitor.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dwindowgroupleader.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dwindowmanagerhelper.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddciicon.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddciiconpalette.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddciiconplayer.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddesktopservices_linux.cpp.o src/CMakeFiles/dtk6gui.dir/util/dfontmanager.cpp.o src/CMakeFiles/dtk6gui.dir/util/dicon.cpp.o src/CMakeFiles/dtk6gui.dir/util/dicontheme.cpp.o src/CMakeFiles/dtk6gui.dir/util/dimagehandler.cpp.o src/CMakeFiles/dtk6gui.dir/util/dimagehandlerlibs.cpp.o src/CMakeFiles/dtk6gui.dir/util/dsvgrenderer.cpp.o src/CMakeFiles/dtk6gui.dir/util/dtaskbarcontrol.cpp.o src/CMakeFiles/dtk6gui.dir/util/dthumbnailprovider.cpp.o src/CMakeFiles/dtk6gui.dir/util/private/dbuiltiniconengine.cpp.o src/CMakeFiles/dtk6gui.dir/util/private/dciiconengine.cpp.o src/CMakeFiles/dtk6gui.dir/util/private/diconproxyengine.cpp.o src/CMakeFiles/dtk6gui.dir/dtk6gui_autogen/J56SQPRNRA/qrc_deepin-theme-plugin-icons.cpp.o /usr/lib64/libQt6Network.so.6.8.1 /usr/lib64/libdtk6core.so.6.0.28 /usr/lib64/libQt6Svg.so.6.8.1 /usr/lib64/libQt6Xml.so.6.8.1 /usr/lib64/libdtk6log.so.0.0.1 /usr/lib64/libxkbcommon.so /usr/lib64/libQt6WaylandClient.so.6.8.1 /usr/lib64/libwayland-client.so /usr/lib64/libwayland-cursor.so /usr/lib64/libQt6Gui.so.6.8.1 /usr/lib64/libQt6DBus.so.6.8.1 /usr/lib64/libGLX.so /usr/lib64/libOpenGL.so /usr/lib64/libQt6Core.so.6.8.1 && :
FAILED: src/libdtk6gui.so.6.0.28
: && /usr/lib/distcc/bin/x86_64-pc-linux-gnu-g++ -fPIC -march=core2 -msse4.1 -mxsave --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=6144 -O2 -pipe -fno-semantic-interposition -mfpmath=sse -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgcse-after-reload -floop-interchange -fpeel-loops -fpredictive-commoning -ftree-partial-pre -floop-block -fgraphite-identity -fPIC -Wall -Wextra -fopenmp -Ofast -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--as-needed -shared -Wl,-soname,libdtk6gui.so.6 -o src/libdtk6gui.so.6.0.28 src/CMakeFiles/dtk6gui.dir/dtk6gui_autogen/mocs_compilation.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/dplatforminterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/dplatformwindowinterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/xcb/dxcbplatforminterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/xcb/dxcbplatformwindowinterface.cpp.o src/CMakeFiles/dtk6gui.dir/wayland-treeland-personalization-manager-v1-protocol.c.o src/CMakeFiles/dtk6gui.dir/qwayland-treeland-personalization-manager-v1.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/dtreelandplatforminterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/dtreelandplatformwindowinterface.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/dtreelandwindowmanagerhelper.cpp.o src/CMakeFiles/dtk6gui.dir/plugins/platform/treeland/personalizationwaylandclientextension.cpp.o src/CMakeFiles/dtk6gui.dir/dbus/xeventmonitor_interface.cpp.o src/CMakeFiles/dtk6gui.dir/filedrag/dfiledrag.cpp.o src/CMakeFiles/dtk6gui.dir/filedrag/dfiledragclient.cpp.o src/CMakeFiles/dtk6gui.dir/filedrag/dfiledragserver.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dforeignwindow.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dguiapplicationhelper.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dnativesettings.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dpalette.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dplatformhandle.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dplatformtheme.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dregionmonitor.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dwindowgroupleader.cpp.o src/CMakeFiles/dtk6gui.dir/kernel/dwindowmanagerhelper.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddciicon.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddciiconpalette.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddciiconplayer.cpp.o src/CMakeFiles/dtk6gui.dir/util/ddesktopservices_linux.cpp.o src/CMakeFiles/dtk6gui.dir/util/dfontmanager.cpp.o src/CMakeFiles/dtk6gui.dir/util/dicon.cpp.o src/CMakeFiles/dtk6gui.dir/util/dicontheme.cpp.o src/CMakeFiles/dtk6gui.dir/util/dimagehandler.cpp.o src/CMakeFiles/dtk6gui.dir/util/dimagehandlerlibs.cpp.o src/CMakeFiles/dtk6gui.dir/util/dsvgrenderer.cpp.o src/CMakeFiles/dtk6gui.dir/util/dtaskbarcontrol.cpp.o src/CMakeFiles/dtk6gui.dir/util/dthumbnailprovider.cpp.o src/CMakeFiles/dtk6gui.dir/util/private/dbuiltiniconengine.cpp.o src/CMakeFiles/dtk6gui.dir/util/private/dciiconengine.cpp.o src/CMakeFiles/dtk6gui.dir/util/private/diconproxyengine.cpp.o src/CMakeFiles/dtk6gui.dir/dtk6gui_autogen/J56SQPRNRA/qrc_deepin-theme-plugin-icons.cpp.o /usr/lib64/libQt6Network.so.6.8.1 /usr/lib64/libdtk6core.so.6.0.28 /usr/lib64/libQt6Svg.so.6.8.1 /usr/lib64/libQt6Xml.so.6.8.1 /usr/lib64/libdtk6log.so.0.0.1 /usr/lib64/libxkbcommon.so /usr/lib64/libQt6WaylandClient.so.6.8.1 /usr/lib64/libwayland-client.so /usr/lib64/libwayland-cursor.so /usr/lib64/libQt6Gui.so.6.8.1 /usr/lib64/libQt6DBus.so.6.8.1 /usr/lib64/libGLX.so /usr/lib64/libOpenGL.so /usr/lib64/libQt6Core.so.6.8.1 && :
/var/tmp/portage/gui-libs/dtk6gui-6.0.28/work/dtk6gui-6.0.28/src/private/dfiledragserver_p.h:20:7: error: type ‘struct DFileDragServerPrivate’ violates the C++ One Definition Rule [-Werror=odr]
20 | class DFileDragServerPrivate : public DCORE_NAMESPACE::DObjectPrivate
| ^
/var/tmp/portage/gui-libs/dtk6gui-6.0.28/work/dtk6gui-6.0.28/src/filedrag/dfiledragserver.cpp:27:7: note: a different type is defined in another translation unit
27 | class DFileDragServerPrivate : public DCORE_NAMESPACE::DObjectPrivate
| ^
/var/tmp/portage/gui-libs/dtk6gui-6.0.28/work/dtk6gui-6.0.28/src/filedrag/dfiledragserver.cpp:37:41: note: the first difference of corresponding definitions is field ‘dbusif’
37 | QSharedPointer<DDndSourceInterface> dbusif;
| ^
/var/tmp/portage/gui-libs/dtk6gui-6.0.28/work/dtk6gui-6.0.28/src/filedrag/dfiledragserver.cpp:27:7: note: a type with different number of fields is defined in another translation unit
27 | class DFileDragServerPrivate : public DCORE_NAMESPACE::DObjectPrivate
| ^
/var/tmp/portage/gui-libs/dtk6gui-6.0.28/work/dtk6gui-6.0.28/src/private/dfiledragserver_p.h:28:10: error: type of ‘writeMimeData’ does not match original declaration [-Werror=lto-type-mismatch]
28 | void writeMimeData(QMimeData *dest);
| ^
/var/tmp/portage/gui-libs/dtk6gui-6.0.28/work/dtk6gui-6.0.28/src/filedrag/dfiledragserver.cpp:171:6: note: ‘writeMimeData’ was previously declared here
171 | void DFileDragServerPrivate::writeMimeData(QMimeData *dest)
| ^
lto1: some warnings being treated as errors
lto-wrapper: fatal error: x86_64-pc-linux-gnu-g++ returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
distcc[330] ERROR: compile (null) on localhost failed
ninja: build stopped: subcommand failed.
EXPECTED RESULT | 期望的结果
library should compile without errors
ADDITIONAL INFORMATION | 额外补充
This patch fixes compilation for this package, but I don't know yet if it will cause issues down the line:
SUMMARY | 问题概要
In
src/filedrag/dfiledragserver.cpp
andsrc/private/dfiledragserver_p.h
the same class,DFileDragServerPrivate
, is defined twice in different ways. This violates the One Definition Rule and is not valid C++.DTK and OS VERSIONS | DTK&系统版本信息
dtk6gui-6.0.28
Minimal Reproducible Case Code | 最小复现案例代码
Configure and compile the library with LTO:
-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -flto
OBSERVED RESULT | 观察到的结果
EXPECTED RESULT | 期望的结果
library should compile without errors
ADDITIONAL INFORMATION | 额外补充
This patch fixes compilation for this package, but I don't know yet if it will cause issues down the line:
The text was updated successfully, but these errors were encountered: