K. Frank
2015-07-15 14:06:05 UTC
Hello List!
I get "duplicate section ... has different size" messages when I
build a Wt application that contains (as far as I can tell) a call
to:
internalPathChanged().connect (...);
First question: Do I care?
My tool-chain does not flag this as a warning or error, and my
very simple Wt apps (that I don't really know how to test) seem
to work.
Second: Can I make this go away?
Third: Does anyone else care? I could try to provide more
information if someone could tell me what to look for.
Details:
This is wt-3.3.3 built with mingw-w64 on 64-bit windows 7:
C:\...\wt_test>g++ --version
g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 4.9.2
When I build (link) my test program, I get the following par of messages:
C:\...\wt_test>g++ -std=gnu++14 -o section section.cpp -lwt
-lwthttp -lboost_date_time-mgw49-1_57 -lboost_filesystem-mgw49-1_57
-lboost_program_options-mgw49-1_57 -lboost_random-mgw49-1_57
-lboost_regex-mgw49-1_57 -lboost_system-mgw49-1_57
-lboost_thread-mgw49-mt-s-1_57 -lws2_32 -lwsock32
C:/.../wt-3.3.3_install/WT/lib/../lib/libwt.a(WApplication.obj):
duplicate section
`.rdata$_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE[_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE]'
has different size
C:/.../wt-3.3.3_install/WT/lib/../lib/libwt.a(WMenu.obj): duplicate
section `.rdata$_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE[_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE]'
has different size
This seems to have something to do with boost signals or boost
connection. As mentioned above, this happens when I have an
internalPathChanged().connect (...); call in my program. (See the
test program, below, for explicit detail.)
I built boost and the Wt libraries using the documented build procedures,
using the same tool-chain that I use for my test program. The compile
options I used for my test program are given in the compile command line
shown above, and the compile options used for boost and Wt are whatever
the standard build procedure had configured. (I didn't do anything special.)
The duplicate-section messages seems to be complaining about
WApplication.obj and WMenu.obj. These were compiled at the same time
when I built the Wt libraries all at once, so presumably they were compiled
with the same compiler options (but the standard build procedure could
have used different options for some reason).
My test program appears below. Note that not all connect calls trigger this
issue. If I comment out the line:
internalPathChanged().connect (this, SectionApp::dummy);
the duplicate-section messages go away.
(Note, none of the WPushButton stuff is necessary to trigger the
issue. If I comment out all of the WPushButton stuff, the issue
persists. I only included the WPushButton example to show that
button_->clicked().connect (this, SectionApp::dummy); doesn't
trigger the issue.)
Thanks.
K. Frank
section.cpp:
====================
#include <Wt/WApplication>
#include <Wt/WEnvironment>
#include <Wt/WPushButton>
using namespace Wt;
class SectionApp : public WApplication {
public:
SectionApp (const WEnvironment& env) : WApplication (env) {
setTitle ("Section Test");
// this line triggers "duplicate section"
internalPathChanged().connect (this, SectionApp::dummy);
button_ = new WPushButton ("button", root());
// this line does not
button_->clicked().connect (this, SectionApp::dummy);
}
void dummy() {}
private:
WPushButton *button_;
};
WApplication *createApplication(const WEnvironment& env) {
return new SectionApp (env);
}
int main (int argc, char *argv[]) {
return WRun (argc, argv, &createApplication);
}
====================
I get "duplicate section ... has different size" messages when I
build a Wt application that contains (as far as I can tell) a call
to:
internalPathChanged().connect (...);
First question: Do I care?
My tool-chain does not flag this as a warning or error, and my
very simple Wt apps (that I don't really know how to test) seem
to work.
Second: Can I make this go away?
Third: Does anyone else care? I could try to provide more
information if someone could tell me what to look for.
Details:
This is wt-3.3.3 built with mingw-w64 on 64-bit windows 7:
C:\...\wt_test>g++ --version
g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 4.9.2
When I build (link) my test program, I get the following par of messages:
C:\...\wt_test>g++ -std=gnu++14 -o section section.cpp -lwt
-lwthttp -lboost_date_time-mgw49-1_57 -lboost_filesystem-mgw49-1_57
-lboost_program_options-mgw49-1_57 -lboost_random-mgw49-1_57
-lboost_regex-mgw49-1_57 -lboost_system-mgw49-1_57
-lboost_thread-mgw49-mt-s-1_57 -lws2_32 -lwsock32
C:/.../wt-3.3.3_install/WT/lib/../lib/libwt.a(WApplication.obj):
duplicate section
`.rdata$_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE[_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE]'
has different size
C:/.../wt-3.3.3_install/WT/lib/../lib/libwt.a(WMenu.obj): duplicate
section `.rdata$_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE[_ZTIN5boost8signals26signalIFvSsN2Wt7NoClassES3_S3_S3_S3_ENS0_19optional_last_valueIvEEiSt4lessIiENS_8functionIS4_EENS9_IFvRKNS0_10connectionESsS3_S3_S3_S3_S3_EEENS0_5mutexEEE]'
has different size
This seems to have something to do with boost signals or boost
connection. As mentioned above, this happens when I have an
internalPathChanged().connect (...); call in my program. (See the
test program, below, for explicit detail.)
I built boost and the Wt libraries using the documented build procedures,
using the same tool-chain that I use for my test program. The compile
options I used for my test program are given in the compile command line
shown above, and the compile options used for boost and Wt are whatever
the standard build procedure had configured. (I didn't do anything special.)
The duplicate-section messages seems to be complaining about
WApplication.obj and WMenu.obj. These were compiled at the same time
when I built the Wt libraries all at once, so presumably they were compiled
with the same compiler options (but the standard build procedure could
have used different options for some reason).
My test program appears below. Note that not all connect calls trigger this
issue. If I comment out the line:
internalPathChanged().connect (this, SectionApp::dummy);
the duplicate-section messages go away.
(Note, none of the WPushButton stuff is necessary to trigger the
issue. If I comment out all of the WPushButton stuff, the issue
persists. I only included the WPushButton example to show that
button_->clicked().connect (this, SectionApp::dummy); doesn't
trigger the issue.)
Thanks.
K. Frank
section.cpp:
====================
#include <Wt/WApplication>
#include <Wt/WEnvironment>
#include <Wt/WPushButton>
using namespace Wt;
class SectionApp : public WApplication {
public:
SectionApp (const WEnvironment& env) : WApplication (env) {
setTitle ("Section Test");
// this line triggers "duplicate section"
internalPathChanged().connect (this, SectionApp::dummy);
button_ = new WPushButton ("button", root());
// this line does not
button_->clicked().connect (this, SectionApp::dummy);
}
void dummy() {}
private:
WPushButton *button_;
};
WApplication *createApplication(const WEnvironment& env) {
return new SectionApp (env);
}
int main (int argc, char *argv[]) {
return WRun (argc, argv, &createApplication);
}
====================