RE: [boost] boost_signals.dll contains no symbols

2003-02-14 Thread Rene Rivera
[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

2003-02-14 Thread Aleksey Chernoraenko
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 Thread Rene Rivera
[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

2003-02-14 Thread Aleksey Chernoraenko
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

2003-02-14 Thread Douglas Gregor
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

2003-02-14 Thread Douglas Gregor
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

2003-02-14 Thread Aleksey Chernoraenko
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

2003-02-14 Thread Aleksey Chernoraenko
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

2003-02-10 Thread Douglas Gregor
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