Can't get makecint (demos) working

View: New views
8 Messages — Rating Filter:   Alert me  

Can't get makecint (demos) working

by Severin Ecker-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

alright, maybe I'm just being more stupid than i should be, but i can't
get any of the makecint demos to work.
I've read the README.txt, the manpage for makecint... and I (hopefully)
haven't overseen anything but I guess there's some setting issues which
i need to configure but haven't found.

looking at the procedure in the manpage i can do steps one and two, that
is, generate the makefile and modify it to my needs.

- Am I correct that CINTIPATH must contain the directory which points to
the cint/include, and supposedly cint/stl directory, that is to the cint
headers and not to the headers of the compiler?
- Am I further correct that IPATH must contain the compiler headers then?
- Am I correct that i must copy the G__setup.c file from the 'cint/main'
directory? (this is not mentioned anywhere, but since it's the only
location where i found this file and i haven't found information that i
must write it myself.. and if so what must go in there...)

Now somewhere must be an error in what I'm doing because trying to do
this with any of the samples or even the most minimalistic test interface:

#include <stdio.h>
void func(void) { printf("hello\n"); };

I always get errors like this:
'/cint/include\stddef.h(4) : error C2632: 'short' followed by 'wchar_t'
is illegal'

I have tried this with MSVC 8 and 9, pre-compiled versions of
cint/makecint, my own compiled versions of cint/makecint with libcint
both statically and dynamically linked and all that for 'all root' and
'cint only' (which interestingly give differently sized .dlls at least
on my system) but no success. (oh and i've used the latest version of
the svn trunk)

many many thanks in advance!

cheers,
severin


Re: Can't get makecint (demos) working

by Philippe Canal :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

There was many problems with the Makefile generated by makecint on
Windows; they have all been correctly in the svn repository.
Please try it again :)

 > - Am I correct that CINTIPATH must contain the directory which points
to the cint/include, and supposedly cint/stl directory, that is to the
cint headers and not to the headers of the compiler?

No, it should only contain the location where G__ci.h is.

 > - Am I further correct that IPATH must contain the compiler headers
then?

No the compiler will already know where they are.

 > - Am I correct that i must copy the G__setup.c file from the
'cint/main' directory? (this is not mentioned anywhere, but since it's
the only location where i found this file and i haven't found
information that i must write it myself.. and if so what must go in
there...)

Yes but on windows the makefile generated by makecint was not correctly
pointing to it.

 > I always get errors like this:
 > '/cint/include\stddef.h(4) : error C2632: 'short' followed by
'wchar_t' is illegal'

Yes, this is probably because of the change you made to CINTIPATH.

Cheers,
Philippe.




Severin Ecker wrote:

> Hi,
>
> alright, maybe I'm just being more stupid than i should be, but i
> can't get any of the makecint demos to work.
> I've read the README.txt, the manpage for makecint... and I
> (hopefully) haven't overseen anything but I guess there's some setting
> issues which i need to configure but haven't found.
>
> looking at the procedure in the manpage i can do steps one and two,
> that is, generate the makefile and modify it to my needs.
>
> - Am I correct that CINTIPATH must contain the directory which points
> to the cint/include, and supposedly cint/stl directory, that is to the
> cint headers and not to the headers of the compiler?
> - Am I further correct that IPATH must contain the compiler headers then?
> - Am I correct that i must copy the G__setup.c file from the
> 'cint/main' directory? (this is not mentioned anywhere, but since it's
> the only location where i found this file and i haven't found
> information that i must write it myself.. and if so what must go in
> there...)
>
> Now somewhere must be an error in what I'm doing because trying to do
> this with any of the samples or even the most minimalistic test
> interface:
>
> #include <stdio.h>
> void func(void) { printf("hello\n"); };
>
> I always get errors like this:
> '/cint/include\stddef.h(4) : error C2632: 'short' followed by
> 'wchar_t' is illegal'
>
> I have tried this with MSVC 8 and 9, pre-compiled versions of
> cint/makecint, my own compiled versions of cint/makecint with libcint
> both statically and dynamically linked and all that for 'all root' and
> 'cint only' (which interestingly give differently sized .dlls at least
> on my system) but no success. (oh and i've used the latest version of
> the svn trunk)
>
> many many thanks in advance!
>
> cheers,
> severin
>


Re: Can't get makecint (demos) working

by Severin Ecker-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Philippe,

I've been playing around a bit more and i think i can build the
toolchain the way i need to. I'd just like to clarify something so i
don't get it wrong again :)

The re-written header files within the cint/include, cint/stl, cint/lib
directory i need if
a) i want to compile an interface directly into an interpreter (e.g.: i
pass those as include directories via -I to cint along with -c-1 et.
al.) correct? (and how should i compile those generated sources, because
if i just use the normal include path i get undeclared symbols for
G__CINT_ENDS.., which are clearly defined within the cint/include headers)
b) i want to run or write a script file in the interpreter which uses
e.g.: the STL
also for case a, i must use the rewritten STL headers otherwise
Is there a way to pre-compile all those headers into the interpreter so
i don't have to keep those 'external' header files around and only have
a single working executable which includes all the stuff i need?

so far so good for the questions.

now I think I've discovered one or two bug in the compiler part.
If the header contains an inclusion of 'STL-header'.h then an additional
include is added to the file named
algorithm.h (newlink.cxx around line 2739)
Given that this file doesn't exist i suppose it should rather include
"algo.h" ?

If i set the Y option (ignore std namespace) to 0 --> not ignored,
everything works fine except for the symbol _Bool (Admittedly I've never
come across that one but i suppose it's in the standard. the problem is
that at least on windows with msvc8, it's within namespace std, and
therefore results in an undeclared symbol if namespace std should not be
ignored.)
(file "iterator" around line 399, i suppose fixing this against the
check whether std should be ignored or not is quite a bit of an effort;
for me i just use bool instead, but i suppose you have implications
which prevent you from using this type)

cheers,
severin


Philippe Canal wrote:

> Hi,
>
> There was many problems with the Makefile generated by makecint on
> Windows; they have all been correctly in the svn repository.
> Please try it again :)
>
> > - Am I correct that CINTIPATH must contain the directory which
> points to the cint/include, and supposedly cint/stl directory, that is
> to the cint headers and not to the headers of the compiler?
>
> No, it should only contain the location where G__ci.h is.
>
> > - Am I further correct that IPATH must contain the compiler headers
> then?
>
> No the compiler will already know where they are.
>
> > - Am I correct that i must copy the G__setup.c file from the
> 'cint/main' directory? (this is not mentioned anywhere, but since it's
> the only location where i found this file and i haven't found
> information that i must write it myself.. and if so what must go in
> there...)
>
> Yes but on windows the makefile generated by makecint was not
> correctly pointing to it.
>
> > I always get errors like this:
> > '/cint/include\stddef.h(4) : error C2632: 'short' followed by
> 'wchar_t' is illegal'
>
> Yes, this is probably because of the change you made to CINTIPATH.
>
> Cheers,
> Philippe.
>
>
>
>
> Severin Ecker wrote:
>> Hi,
>>
>> alright, maybe I'm just being more stupid than i should be, but i
>> can't get any of the makecint demos to work.
>> I've read the README.txt, the manpage for makecint... and I
>> (hopefully) haven't overseen anything but I guess there's some
>> setting issues which i need to configure but haven't found.
>>
>> looking at the procedure in the manpage i can do steps one and two,
>> that is, generate the makefile and modify it to my needs.
>>
>> - Am I correct that CINTIPATH must contain the directory which points
>> to the cint/include, and supposedly cint/stl directory, that is to
>> the cint headers and not to the headers of the compiler?
>> - Am I further correct that IPATH must contain the compiler headers
>> then?
>> - Am I correct that i must copy the G__setup.c file from the
>> 'cint/main' directory? (this is not mentioned anywhere, but since
>> it's the only location where i found this file and i haven't found
>> information that i must write it myself.. and if so what must go in
>> there...)
>>
>> Now somewhere must be an error in what I'm doing because trying to do
>> this with any of the samples or even the most minimalistic test
>> interface:
>>
>> #include <stdio.h>
>> void func(void) { printf("hello\n"); };
>>
>> I always get errors like this:
>> '/cint/include\stddef.h(4) : error C2632: 'short' followed by
>> 'wchar_t' is illegal'
>>
>> I have tried this with MSVC 8 and 9, pre-compiled versions of
>> cint/makecint, my own compiled versions of cint/makecint with libcint
>> both statically and dynamically linked and all that for 'all root'
>> and 'cint only' (which interestingly give differently sized .dlls at
>> least on my system) but no success. (oh and i've used the latest
>> version of the svn trunk)
>>
>> many many thanks in advance!
>>
>> cheers,
>> severin


Re: Can't get makecint (demos) working

by Philippe Canal :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Severin,

 > a) i want to compile an interface directly into an interpreter

Yes, those re-written headers are used in this case

 > (e.g.: i pass those as include directories via -I to cint along with
-c-1 et. al.)

No, you do NOT need to tell cint where they are.  If everything is
correctly configured and installed, CINT will find them on its own when
it needs them.

 > (and how should i compile those generated sources, because if i just
use the normal include path i get undeclared symbols for
 > G__CINT_ENDS.., which are clearly defined within the cint/include
headers)

There is a bug somewhere :), the generated source should never contains
G__CINT_ENDS.

 > Is there a way to pre-compile all those headers into the interpreter
so i don't have to keep those 'external' header files around and
 > only have a single working executable which includes all the stuff i
need?

Unfortunately, not at this time.  You do need to distribute the
re-written the header if you want to be able generate dictionary and
interpret headers.

 > Given that this file doesn't exist i suppose it should rather include
"algo.h" ?

Well rootcint is suppose to use the correct 'name' for you compiler
(depending on the compiler and compiler version the name of this header
file changed many times :().   Can you provide an example where it gets
it work (i.e. source file, command line used, platform, compiler and
compiler version).

 > If i set the Y option (ignore std namespace) to 0 --> not ignored,
everything works fine except for the symbol _Bool

Okay, this looks indeed like a bug ... however not that _Bool is part of
the C99 standard, in C++ you should use 'bool'.
And we should review the code in iterator (that was copy/pasted more or
so from msvc6) to remove the use of _Bool.

Cheers,
Philippe.


Severin Ecker wrote:

> Hi Philippe,
>
> I've been playing around a bit more and i think i can build the
> toolchain the way i need to. I'd just like to clarify something so i
> don't get it wrong again :)
>
> The re-written header files within the cint/include, cint/stl,
> cint/lib directory i need if
> a) i want to compile an interface directly into an interpreter (e.g.:
> i pass those as include directories via -I to cint along with -c-1 et.
> al.) correct? (and how should i compile those generated sources,
> because if i just use the normal include path i get undeclared symbols
> for G__CINT_ENDS.., which are clearly defined within the cint/include
> headers)
> b) i want to run or write a script file in the interpreter which uses
> e.g.: the STL
> also for case a, i must use the rewritten STL headers otherwise
> Is there a way to pre-compile all those headers into the interpreter
> so i don't have to keep those 'external' header files around and only
> have a single working executable which includes all the stuff i need?
>
> so far so good for the questions.
>
> now I think I've discovered one or two bug in the compiler part.
> If the header contains an inclusion of 'STL-header'.h then an
> additional include is added to the file named
> algorithm.h (newlink.cxx around line 2739)
> Given that this file doesn't exist i suppose it should rather include
> "algo.h" ?
>
> If i set the Y option (ignore std namespace) to 0 --> not ignored,
> everything works fine except for the symbol _Bool (Admittedly I've
> never come across that one but i suppose it's in the standard. the
> problem is that at least on windows with msvc8, it's within namespace
> std, and therefore results in an undeclared symbol if namespace std
> should not be ignored.)
> (file "iterator" around line 399, i suppose fixing this against the
> check whether std should be ignored or not is quite a bit of an
> effort; for me i just use bool instead, but i suppose you have
> implications which prevent you from using this type)
>
> cheers,
> severin
>
>
> Philippe Canal wrote:
>> Hi,
>>
>> There was many problems with the Makefile generated by makecint on
>> Windows; they have all been correctly in the svn repository.
>> Please try it again :)
>>
>> > - Am I correct that CINTIPATH must contain the directory which
>> points to the cint/include, and supposedly cint/stl directory, that
>> is to the cint headers and not to the headers of the compiler?
>>
>> No, it should only contain the location where G__ci.h is.
>>
>> > - Am I further correct that IPATH must contain the compiler headers
>> then?
>>
>> No the compiler will already know where they are.
>>
>> > - Am I correct that i must copy the G__setup.c file from the
>> 'cint/main' directory? (this is not mentioned anywhere, but since
>> it's the only location where i found this file and i haven't found
>> information that i must write it myself.. and if so what must go in
>> there...)
>>
>> Yes but on windows the makefile generated by makecint was not
>> correctly pointing to it.
>>
>> > I always get errors like this:
>> > '/cint/include\stddef.h(4) : error C2632: 'short' followed by
>> 'wchar_t' is illegal'
>>
>> Yes, this is probably because of the change you made to CINTIPATH.
>>
>> Cheers,
>> Philippe.
>>
>>
>>
>>
>> Severin Ecker wrote:
>>> Hi,
>>>
>>> alright, maybe I'm just being more stupid than i should be, but i
>>> can't get any of the makecint demos to work.
>>> I've read the README.txt, the manpage for makecint... and I
>>> (hopefully) haven't overseen anything but I guess there's some
>>> setting issues which i need to configure but haven't found.
>>>
>>> looking at the procedure in the manpage i can do steps one and two,
>>> that is, generate the makefile and modify it to my needs.
>>>
>>> - Am I correct that CINTIPATH must contain the directory which
>>> points to the cint/include, and supposedly cint/stl directory, that
>>> is to the cint headers and not to the headers of the compiler?
>>> - Am I further correct that IPATH must contain the compiler headers
>>> then?
>>> - Am I correct that i must copy the G__setup.c file from the
>>> 'cint/main' directory? (this is not mentioned anywhere, but since
>>> it's the only location where i found this file and i haven't found
>>> information that i must write it myself.. and if so what must go in
>>> there...)
>>>
>>> Now somewhere must be an error in what I'm doing because trying to
>>> do this with any of the samples or even the most minimalistic test
>>> interface:
>>>
>>> #include <stdio.h>
>>> void func(void) { printf("hello\n"); };
>>>
>>> I always get errors like this:
>>> '/cint/include\stddef.h(4) : error C2632: 'short' followed by
>>> 'wchar_t' is illegal'
>>>
>>> I have tried this with MSVC 8 and 9, pre-compiled versions of
>>> cint/makecint, my own compiled versions of cint/makecint with
>>> libcint both statically and dynamically linked and all that for 'all
>>> root' and 'cint only' (which interestingly give differently sized
>>> .dlls at least on my system) but no success. (oh and i've used the
>>> latest version of the svn trunk)
>>>
>>> many many thanks in advance!
>>>
>>> cheers,
>>> severin


Re: Can't get makecint (demos) working

by Adem-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Severin Ecker wrote:

> Hi Philippe,
>
> I've been playing around a bit more and i think i can build the
> toolchain the way i need to. I'd just like to clarify something so i
> don't get it wrong again :)
>
> The re-written header files within the cint/include, cint/stl, cint/lib
> directory i need if
> a) i want to compile an interface directly into an interpreter (e.g.: i
> pass those as include directories via -I to cint along with -c-1 et.
> al.) correct? (and how should i compile those generated sources, because
> if i just use the normal include path i get undeclared symbols for
> G__CINT_ENDS.., which are clearly defined within the cint/include headers)
> b) i want to run or write a script file in the interpreter which uses
> e.g.: the STL
> also for case a, i must use the rewritten STL headers otherwise
> Is there a way to pre-compile all those headers into the interpreter so
> i don't have to keep those 'external' header files around and only have
> a single working executable which includes all the stuff i need?
>
> so far so good for the questions.
>
> now I think I've discovered one or two bug in the compiler part.
> If the header contains an inclusion of 'STL-header'.h then an additional
> include is added to the file named
> algorithm.h (newlink.cxx around line 2739)
> Given that this file doesn't exist i suppose it should rather include
> "algo.h" ?
>
> If i set the Y option (ignore std namespace) to 0 --> not ignored,
> everything works fine except for the symbol _Bool (Admittedly I've never
> come across that one but i suppose it's in the standard. the problem is
> that at least on windows with msvc8, it's within namespace std, and
> therefore results in an undeclared symbol if namespace std should not be
> ignored.)
> (file "iterator" around line 399, i suppose fixing this against the
> check whether std should be ignored or not is quite a bit of an effort;
> for me i just use bool instead, but i suppose you have implications
> which prevent you from using this type)
>
> cheers,
> severin

Hello Severin,
I would suggest to compile it first under Linux/Unix or
under Cygwin (ie. in a Linux-environment under Windows).
Then you will see that everything compiles fine.
Your problems are mostly related to Microsoft's non-standards-conforming
crappy "compiler" and the Non-POSIX-conformant "OS" (ROTFL! :-) etc.
Sorry, couldn't resist :-)
FYI: Everybody is switching to Linux, so don't waste your time and money
any longer with the monopolist MS, Win, VS etc... MS is dead! Believe me! :-)
I'm switched completely to Linux (Debian), and I have been MS certified solution developer (MCSD C++ & SQL)
and MS certified system engineer (MCSE+)... :-)  What a waste of investment of time and money it was man!

Cheers,
Adem


> Philippe Canal wrote:
>> Hi,
>>
>> There was many problems with the Makefile generated by makecint on
>> Windows; they have all been correctly in the svn repository.
>> Please try it again :)
>>
>> > - Am I correct that CINTIPATH must contain the directory which
>> points to the cint/include, and supposedly cint/stl directory, that is
>> to the cint headers and not to the headers of the compiler?
>>
>> No, it should only contain the location where G__ci.h is.
>>
>> > - Am I further correct that IPATH must contain the compiler headers
>> then?
>>
>> No the compiler will already know where they are.
>>
>> > - Am I correct that i must copy the G__setup.c file from the
>> 'cint/main' directory? (this is not mentioned anywhere, but since it's
>> the only location where i found this file and i haven't found
>> information that i must write it myself.. and if so what must go in
>> there...)
>>
>> Yes but on windows the makefile generated by makecint was not
>> correctly pointing to it.
>>
>> > I always get errors like this:
>> > '/cint/include\stddef.h(4) : error C2632: 'short' followed by
>> 'wchar_t' is illegal'
>>
>> Yes, this is probably because of the change you made to CINTIPATH.
>>
>> Cheers,
>> Philippe.
>>
>>
>>
>>
>> Severin Ecker wrote:
>>> Hi,
>>>
>>> alright, maybe I'm just being more stupid than i should be, but i
>>> can't get any of the makecint demos to work.
>>> I've read the README.txt, the manpage for makecint... and I
>>> (hopefully) haven't overseen anything but I guess there's some
>>> setting issues which i need to configure but haven't found.
>>>
>>> looking at the procedure in the manpage i can do steps one and two,
>>> that is, generate the makefile and modify it to my needs.
>>>
>>> - Am I correct that CINTIPATH must contain the directory which points
>>> to the cint/include, and supposedly cint/stl directory, that is to
>>> the cint headers and not to the headers of the compiler?
>>> - Am I further correct that IPATH must contain the compiler headers
>>> then?
>>> - Am I correct that i must copy the G__setup.c file from the
>>> 'cint/main' directory? (this is not mentioned anywhere, but since
>>> it's the only location where i found this file and i haven't found
>>> information that i must write it myself.. and if so what must go in
>>> there...)
>>>
>>> Now somewhere must be an error in what I'm doing because trying to do
>>> this with any of the samples or even the most minimalistic test
>>> interface:
>>>
>>> #include <stdio.h>
>>> void func(void) { printf("hello\n"); };
>>>
>>> I always get errors like this:
>>> '/cint/include\stddef.h(4) : error C2632: 'short' followed by
>>> 'wchar_t' is illegal'
>>>
>>> I have tried this with MSVC 8 and 9, pre-compiled versions of
>>> cint/makecint, my own compiled versions of cint/makecint with libcint
>>> both statically and dynamically linked and all that for 'all root'
>>> and 'cint only' (which interestingly give differently sized .dlls at
>>> least on my system) but no success. (oh and i've used the latest
>>> version of the svn trunk)
>>>
>>> many many thanks in advance!
>>>
>>> cheers,
>>> severin


Re: Can't get makecint (demos) working

by Severin Ecker-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Adem,

So, you want to tell me that I shouldn't report any problems, even
though they're bugs because it's only 'Microsoft's
non-standards-conforming crappy "compiler"'s fault? Yup, that the
typical Linux community answer. I would have been surprised if I'd have
been able to discuss OSS problems without those stupid religious Anti-MS
rants. On the other hand i suppose that's what you linux folks get to
read with the system's daily welcome message right? (Sorry, now I
couldn't resist).


@ Philippe

thanks for your support. It is highly appreciated!

cheers,
severin


Adem wrote:

> Severin Ecker wrote:
>> Hi Philippe,
>>
>> I've been playing around a bit more and i think i can build the
>> toolchain the way i need to. I'd just like to clarify something so i
>> don't get it wrong again :)
>>
>> The re-written header files within the cint/include, cint/stl,
>> cint/lib directory i need if
>> a) i want to compile an interface directly into an interpreter (e.g.:
>> i pass those as include directories via -I to cint along with -c-1
>> et. al.) correct? (and how should i compile those generated sources,
>> because if i just use the normal include path i get undeclared
>> symbols for G__CINT_ENDS.., which are clearly defined within the
>> cint/include headers)
>> b) i want to run or write a script file in the interpreter which uses
>> e.g.: the STL
>> also for case a, i must use the rewritten STL headers otherwise
>> Is there a way to pre-compile all those headers into the interpreter
>> so i don't have to keep those 'external' header files around and only
>> have a single working executable which includes all the stuff i need?
>>
>> so far so good for the questions.
>>
>> now I think I've discovered one or two bug in the compiler part.
>> If the header contains an inclusion of 'STL-header'.h then an
>> additional include is added to the file named
>> algorithm.h (newlink.cxx around line 2739)
>> Given that this file doesn't exist i suppose it should rather include
>> "algo.h" ?
>>
>> If i set the Y option (ignore std namespace) to 0 --> not ignored,
>> everything works fine except for the symbol _Bool (Admittedly I've
>> never come across that one but i suppose it's in the standard. the
>> problem is that at least on windows with msvc8, it's within namespace
>> std, and therefore results in an undeclared symbol if namespace std
>> should not be ignored.)
>> (file "iterator" around line 399, i suppose fixing this against the
>> check whether std should be ignored or not is quite a bit of an
>> effort; for me i just use bool instead, but i suppose you have
>> implications which prevent you from using this type)
>>
>> cheers,
>> severin
>
> Hello Severin,
> I would suggest to compile it first under Linux/Unix or
> under Cygwin (ie. in a Linux-environment under Windows).
> Then you will see that everything compiles fine.
> Your problems are mostly related to Microsoft's non-standards-conforming
> crappy "compiler" and the Non-POSIX-conformant "OS" (ROTFL! :-) etc.
> Sorry, couldn't resist :-)
> FYI: Everybody is switching to Linux, so don't waste your time and money
> any longer with the monopolist MS, Win, VS etc... MS is dead! Believe
> me! :-)
> I'm switched completely to Linux (Debian), and I have been MS
> certified solution developer (MCSD C++ & SQL)
> and MS certified system engineer (MCSE+)... :-)  What a waste of
> investment of time and money it was man!
>
> Cheers,
> Adem


Some CINT issues

by Severin Ecker-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I've been working some more with CINT on windows (using MSVC8 and
cygwin...) and found some issues (probably bugs, but that you have to
decide yourself):

1) prec_stl/vector (line 125):
#if (G__MSC_VER>=1310) && (G__MSC_VER<1400)
        //const_iterator(pointer _Ptr);
        const_iterator(T *const  _Ptr);
#elif (G__MSC_VER>=1400)
        const_iterator(T *const  _Ptr, const vector<T>* _Pvector );
#endif

on MSVC8 (_MSC_VER == 1400) this only works if the
_HAS_ITERATOR_DEBUGGING or _SECURE_SCL prep. definition has been set to
1, otherwise we have an undefined symbol.

(vector from MSVC8

    _Vector_const_iterator()
        {    // [...]
        }

#if _HAS_ITERATOR_DEBUGGING
    _Vector_const_iterator(_Tptr _Ptr, const _Container_base *_Pvector)
        {    // [...]
        }

 #elif _SECURE_SCL
    _Vector_const_iterator(_Tptr _Ptr, const _Container_base *_Pvector)
        {    // [...]
        }

 #else
    _Vector_const_iterator(_Tptr _Ptr)
        {    // [...]
        }
 #endif /* _HAS_ITERATOR_DEBUGGING */

)


2) src/newlink.cxx (line 2709) et. al.:
    sprintf(sysstl,"%s/%s/stl/",G__cintsysdir,G__CFG_COREVERSION);

since (in this case) G_cintsysdir is created useing the system's path
separator this line should read:
   
sprintf(sysstl,"%s%s%s%sstl%s",G__cintsysdir,G__psep,G__CFG_COREVERSION,G__psep,G__psep);

otherwise the comparison further down will not work correctly in some
(windows non cygwin) cases
(there are some more places within newlink.cxx as well as loadfile.cxx
(e.g.: line 1800) where a path is constructed using '/' instead of
G__psep although in most circumstances it doesn't really make any
difference)


cheers,
severin


Re: Some CINT issues

by Axel Naumann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Severin,

thanks for your reports! I will deal with them after CERN's holidays,
i.e. after Jan 5.

Cheers, Axel.

Severin Ecker wrote:

> Hi,
>
> I've been working some more with CINT on windows (using MSVC8 and
> cygwin...) and found some issues (probably bugs, but that you have to
> decide yourself):
>
> 1) prec_stl/vector (line 125):
> #if (G__MSC_VER>=1310) && (G__MSC_VER<1400)
>        //const_iterator(pointer _Ptr);
>        const_iterator(T *const  _Ptr);
> #elif (G__MSC_VER>=1400)
>        const_iterator(T *const  _Ptr, const vector<T>* _Pvector );
> #endif
>
> on MSVC8 (_MSC_VER == 1400) this only works if the
> _HAS_ITERATOR_DEBUGGING or _SECURE_SCL prep. definition has been set to
> 1, otherwise we have an undefined symbol.
>
> (vector from MSVC8
>
>    _Vector_const_iterator()
>        {    // [...]
>        }
>
> #if _HAS_ITERATOR_DEBUGGING
>    _Vector_const_iterator(_Tptr _Ptr, const _Container_base *_Pvector)
>        {    // [...]
>        }
>
> #elif _SECURE_SCL
>    _Vector_const_iterator(_Tptr _Ptr, const _Container_base *_Pvector)
>        {    // [...]
>        }
>
> #else
>    _Vector_const_iterator(_Tptr _Ptr)
>        {    // [...]
>        }
> #endif /* _HAS_ITERATOR_DEBUGGING */
>
> )
>
>
> 2) src/newlink.cxx (line 2709) et. al.:
>    sprintf(sysstl,"%s/%s/stl/",G__cintsysdir,G__CFG_COREVERSION);
>
> since (in this case) G_cintsysdir is created useing the system's path
> separator this line should read:
>  
> sprintf(sysstl,"%s%s%s%sstl%s",G__cintsysdir,G__psep,G__CFG_COREVERSION,G__psep,G__psep);
>
>
> otherwise the comparison further down will not work correctly in some
> (windows non cygwin) cases
> (there are some more places within newlink.cxx as well as loadfile.cxx
> (e.g.: line 1800) where a path is constructed using '/' instead of
> G__psep although in most circumstances it doesn't really make any
> difference)
>
>
> cheers,
> severin
>
>