RE: [boost] boost_signals.dll contains no symbols
[2003-02-14] Aleksey Chernoraenko wrote: >Rene Rivera wrote: >>>Hi Doug, >>> >>>Sorry, I forgot about these dependencies. Actually we are using the >makefile >>>where BOOST_SIGNALS_STATIC_LINK is defined. >>>There is another related issue. We would like to have automatic library >>>selection feature. This hides the details about which DLL to link to from >>>the users (regex library does the same thing). For this reason we made >>>header file and a few changes to include it. This header defines the >naming >>>scheme based on compiler options and contains the lib specifier (#pragma >>>comment) that allows to pass the library name to the linker. >>> >>>Unfortunately, I don't know bjam well to build the libraries and DLLs >which >>>file names will correspond to chosen naming scheme. >>>By the way the regex's Jamfile cannot produce the files corresponding to >>>it's naming scheme. Maybe it is impossible in bjam system? > >>Nothing is impossible ;-) > > >It great that bjam can do anything I will look at it more carefully. >Anyway I am sending the header file, changes and makefile. Well, I didn't say bjam can do anything. I would love it if printed out money ;-) Here's a Jamfile for the signals library that does what the makefile you posted does, and slightly more as it also works for other compilers other than msvc. The only change is the addition of the "stage bin-stage..." portion. There are some differences in the output from the arrangement, and compsition of the name of the files. The stage declaration tags this in alphabetical order so the names wont match what your header is expecting. I use alpha ordering because it's a more stable arrangement that doesn't change from library to library. But you could easily change the header to handle this difference ;-\ Here's the script with the resulting list of libraries it generates on my system, RH73-Linux, with gcc and gcc-3.2, and stlport 4.5.3... begin BOOST_ROOT/libs/signals/build/Jamfile # (C) Copyright Douglas Gregor 2001-2. # Permission to copy, use, modify, sell and # distribute this software is granted provided this copyright notice appears # in all copies. This software is provided "as is" without express or implied # warranty, and with no claim as to its suitability for any purpose. # # Boost.Signals build and test Jamfile # declare the location of this subproject relative to the root subproject libs/signals/build ; # Base names of the source files for libboost_signals CPP_SOURCES = trackable connection signal_base slot ; dll boost_signals : ../src/$(CPP_SOURCES).cpp : $(BOOST_ROOT) : debug release ; lib boost_signals : ../src/$(CPP_SOURCES).cpp : $(BOOST_ROOT) BOOST_SIGNALS_STATIC_LINK : debug release ; stage bin-stage : boost_signals boost_signals : # tags for the various toolsets _vc6_ _vc7_ _bcb5_ _vc6-stlport_ _gcc_ _gcc32_ _gcc32-stlport_ # tags for specific variants, in order of placement # (i.e. alphabetical) d d s d s i s m : debug release dynamic/static single/multi ; ---end--- Running: bjam -sTOOLS="gcc gcc-3.2 gcc-3.2-stlport-4.5.3" Generates: bin-stage/ libboost_signals_gcc32_ddim.so libboost_signals_gcc32_ddim.so.1.30.0 libboost_signals_gcc32_ddis.so libboost_signals_gcc32_ddis.so.1.30.0 libboost_signals_gcc32_ddm.a libboost_signals_gcc32_dds.a libboost_signals_gcc32_dim.so libboost_signals_gcc32_dim.so.1.30.0 libboost_signals_gcc32_dis.so libboost_signals_gcc32_dis.so.1.30.0 libboost_signals_gcc32_dm.a libboost_signals_gcc32_ds.a libboost_signals_gcc32_dsim.so libboost_signals_gcc32_dsim.so.1.30.0 libboost_signals_gcc32_dsis.so libboost_signals_gcc32_dsis.so.1.30.0 libboost_signals_gcc32_dsm.a libboost_signals_gcc32_dss.a libboost_signals_gcc32_sim.so libboost_signals_gcc32_sim.so.1.30.0 libboost_signals_gcc32_sis.so libboost_signals_gcc32_sis.so.1.30.0 libboost_signals_gcc32_sm.a libboost_signals_gcc32_ss.a libboost_signals_gcc32-stlport_ddim.so libboost_signals_gcc32-stlport_ddim.so.1.30.0 libboost_signals_gcc32-stlport_ddis.so libboost_signals_gcc32-stlport_ddis.so.1.30.0 libboost_signals_gcc32-stlport_ddm.a libboost_signals_gcc32-stlport_dds.a libboost_signals_gcc32-stlport_dim.so libboost_signals_gcc32-stlport_dim.so.1.30.0 libboost_signals_gcc32-stlport_dis.so libboost_signals_gcc32-stlport_dis.so.1.30.0 libboost_signals_gcc32-stlport_dm.a libboost_signals_gcc32-stlport_ds.a libboost_signals_gcc32-stlport_dsim.so libboost_signals_gcc32-stlport_dsim.so.1.30.0 libboost_signals_gcc32-stlport_dsis.so libboost_signals_gcc32-stlport_dsis.so.1.30.0 libboost_signals_gcc32-stlport_dsm.a libboost_signals_gcc32-stlport_dss.a libboost_signals_gcc32-stlport_sim.so libboost_signals_gcc32-stlport_sim.so.1.30.0 libboost_signals_gcc32-stlpor
RE: [boost] boost_signals.dll contains no symbols
Rene Rivera wrote: >>Hi Doug, >> >>Sorry, I forgot about these dependencies. Actually we are using the makefile >>where BOOST_SIGNALS_STATIC_LINK is defined. >>There is another related issue. We would like to have automatic library >>selection feature. This hides the details about which DLL to link to from >>the users (regex library does the same thing). For this reason we made >>header file and a few changes to include it. This header defines the naming >>scheme based on compiler options and contains the lib specifier (#pragma >>comment) that allows to pass the library name to the linker. >> >>Unfortunately, I don't know bjam well to build the libraries and DLLs which >>file names will correspond to chosen naming scheme. >>By the way the regex's Jamfile cannot produce the files corresponding to >>it's naming scheme. Maybe it is impossible in bjam system? >Nothing is impossible ;-) It great that bjam can do anything I will look at it more carefully. Anyway I am sending the header file, changes and makefile. >So if you could tell us what the various names of the libraries that should >be generated I can probably give you a stage rule that will generate them. >Another alternative is to declare more targets (dll ...) with the specific >names and options. >>If you want I send the header and the needed changes. >Perhaps that might help. I guess the header would have the mappings from compiler to name. signals_common.diff2 Description: Binary data signals_library_include.hpp Description: Binary data vc6-stlport.mak Description: Binary data ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: [boost] boost_signals.dll contains no symbols
[2003-02-14] Aleksey Chernoraenko wrote: >Hi Doug, > >Sorry, I forgot about these dependencies. Actually we are using the makefile >where BOOST_SIGNALS_STATIC_LINK is defined. >There is another related issue. We would like to have automatic library >selection feature. This hides the details about which DLL to link to from >the users (regex library does the same thing). For this reason we made >header file and a few changes to include it. This header defines the naming >scheme based on compiler options and contains the lib specifier (#pragma >comment) that allows to pass the library name to the linker. > >Unfortunately, I don't know bjam well to build the libraries and DLLs which >file names will correspond to chosen naming scheme. >By the way the regex's Jamfile cannot produce the files corresponding to >it's naming scheme. Maybe it is impossible in bjam system? Nothing is impossible ;-) In the case of regex it's possible as long as all the generated DLLs/SOs/LIBs have the name of the library in it: "boost_regex". So the same applies to the signal library: "boost_signals". You just need to find out what the mappings from the various build variants to the names, and use a "stage" rule to create the needed versions. The regex library already has a stage rule, for example, that generates a libboost_regex_debug.so, or boost_regex_debug.dll. So if you could tell us what the various names of the libraries that should be generated I can probably give you a stage rule that will generate them. Another alternative is to declare more targets (dll ...) with the specific names and options. >If you want I send the header and the needed changes. Perhaps that might help. I guess the header would have the mappings from compiler to name. -- grafik - Don't Assume Anything -- [EMAIL PROTECTED] - [EMAIL PROTECTED] -- 102708583@icq ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: [boost] boost_signals.dll contains no symbols
Hi Doug, Sorry, I forgot about these dependencies. Actually we are using the makefile where BOOST_SIGNALS_STATIC_LINK is defined. There is another related issue. We would like to have automatic library selection feature. This hides the details about which DLL to link to from the users (regex library does the same thing). For this reason we made header file and a few changes to include it. This header defines the naming scheme based on compiler options and contains the lib specifier (#pragma comment) that allows to pass the library name to the linker. Unfortunately, I don't know bjam well to build the libraries and DLLs which file names will correspond to chosen naming scheme. By the way the regex's Jamfile cannot produce the files corresponding to it's naming scheme. Maybe it is impossible in bjam system? If you want I send the header and the needed changes. AC. [EMAIL PROTECTED] -Original Message- From: Douglas Gregor [mailto:[EMAIL PROTECTED]] Sent: Friday, February 14, 2003 11:08 AM To: Aleksey Chernoraenko Subject: Re: [boost] boost_signals.dll contains no symbols Hello Aleksey, You'll have to excuse my ignorance on the subject of DLLs. I'm accustomed to Unix, where there is no notion of import/export and everything just magically works. Did you also have a Jamfile patch? I'm assuming that I need to define BOOST_SIGNALS_STATIC_LINK when building a static version of the library, but not define anything when building a dynamic version of the library (?). Doug On Friday 14 February 2003 03:12 am, Aleksey Chernoraenko wrote: > Douglas Gregor wrote: > >On Sunday 09 February 2003 08:46 pm, Davlet Panech wrote: > >> Hello, > >> > >> I just compiled build 1.29 with MS Visual C++ 6, and one of the > > libraries, > > >> boost_signals.dll does not export any symbols (and, as a consequence, no > >> corresponding .LIB file is generated). Is that normal? A library with no > >> symbols is quite useless, no? Anyhow, I'm not really using the signals > >> library, nor I have the time to investigate, I just thought I'd let > >> somebody know, because it seems suspicous. > > > >Thanks for reporting this. The Signals library is missing > > dllimport/dllexport > > >specifiers throughout. I'll try to get this fixed for 1.30.0. > > Hi Doug, > > We needed dynamic dll of Boost.Signals library and we fixed the > dllimport/export problem. The attached files are context diffs (diff -u) > against the current cvs state. > Note that we had to move the slot_base's "get_invocable_slot", > "get_inspectable_slot" and "tag_type" template member functions to > namespace scope because otherwise the dll would be required to provide all > possible instantiations of those. > > Hope it helps you and us, :) > > AC. > [EMAIL PROTECTED] > ___ > Unsubscribe & other changes: > http://lists.boost.org/mailman/listinfo.cgi/boost ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Re: [boost] boost_signals.dll contains no symbols
On Friday 14 February 2003 11:52 am, Douglas Gregor wrote: > On Friday 14 February 2003 03:30 am, Aleksey Chernoraenko wrote: > > Oops..., I am sending again, now with files > > Would you please re-send slot.diff? It was sent as "quoted-printable" and > ended up mangled on my end. Oddly enough, the others were perfectly fine. Please ignore this. I was able to get it from the archives. Thanks again for the patch. Doug ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Re: [boost] boost_signals.dll contains no symbols
On Friday 14 February 2003 03:30 am, Aleksey Chernoraenko wrote: > Oops..., I am sending again, now with files Would you please re-send slot.diff? It was sent as "quoted-printable" and ended up mangled on my end. Oddly enough, the others were perfectly fine. Thanks for doing this! Doug ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Re: [boost] boost_signals.dll contains no symbols
Oops..., I am sending again, now with files Douglas Gregor wrote: >On Sunday 09 February 2003 08:46 pm, Davlet Panech wrote: >> Hello, >> >> I just compiled build 1.29 with MS Visual C++ 6, and one of the libraries, >> boost_signals.dll does not export any symbols (and, as a consequence, no >> corresponding .LIB file is generated). Is that normal? A library with no >> symbols is quite useless, no? Anyhow, I'm not really using the signals >> library, nor I have the time to investigate, I just thought I'd let >> somebody know, because it seems suspicous. >Thanks for reporting this. The Signals library is missing dllimport/dllexport >specifiers throughout. I'll try to get this fixed for 1.30.0. Hi Doug, We needed dynamic dll of Boost.Signals library and we fixed the dllimport/export problem. The attached files are context diffs (diff -u) against the current cvs state. Note that we had to move the slot_base's "get_invocable_slot", "get_inspectable_slot" and "tag_type" template member functions to namespace scope because otherwise the dll would be required to provide all possible instantiations of those. Hope it helps you and us, :) AC. [EMAIL PROTECTED] trackable.diff Description: Binary data slot.diff Description: Binary data signals_common.diff Description: Binary data signal_base.diff Description: Binary data connection.diff Description: Binary data ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Re: [boost] boost_signals.dll contains no symbols
Douglas Gregor wrote: >On Sunday 09 February 2003 08:46 pm, Davlet Panech wrote: >> Hello, >> >> I just compiled build 1.29 with MS Visual C++ 6, and one of the libraries, >> boost_signals.dll does not export any symbols (and, as a consequence, no >> corresponding .LIB file is generated). Is that normal? A library with no >> symbols is quite useless, no? Anyhow, I'm not really using the signals >> library, nor I have the time to investigate, I just thought I'd let >> somebody know, because it seems suspicous. >Thanks for reporting this. The Signals library is missing dllimport/dllexport >specifiers throughout. I'll try to get this fixed for 1.30.0. Hi Doug, We needed dynamic dll of Boost.Signals library and we fixed the dllimport/export problem. The attached files are context diffs (diff -u) against the current cvs state. Note that we had to move the slot_base's "get_invocable_slot", "get_inspectable_slot" and "tag_type" template member functions to namespace scope because otherwise the dll would be required to provide all possible instantiations of those. Hope it helps you and us, :) AC. [EMAIL PROTECTED] ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Re: [boost] boost_signals.dll contains no symbols
On Sunday 09 February 2003 08:46 pm, Davlet Panech wrote: > Hello, > > I just compiled build 1.29 with MS Visual C++ 6, and one of the libraries, > boost_signals.dll does not export any symbols (and, as a consequence, no > corresponding .LIB file is generated). Is that normal? A library with no > symbols is quite useless, no? Anyhow, I'm not really using the signals > library, nor I have the time to investigate, I just thought I'd let > somebody know, because it seems suspicous. Thanks for reporting this. The Signals library is missing dllimport/dllexport specifiers throughout. I'll try to get this fixed for 1.30.0. Doug ___ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost