Author Topic: rev 4649 doesn't build on linux  (Read 28991 times)

bludo

  • Guest
Re: rev 4649 doesn't build on linux
« Reply #15 on: November 21, 2007, 03:47:41 pm »
Ok, thanks for the solution and sorry for my unnecessary reply

bludo

  • Guest
Re: rev 4649 doesn't build on linux
« Reply #16 on: November 21, 2007, 04:13:51 pm »
Finally, It is not sufficient because after compiling squirrel, there are errors during sqplus compilation. Some functions retunrs types and parameters types in SqPlus.cpp must be modified from in to SQInteger to be compatible with squirrel 64 bit support. There are same problems in SquirrelObject.h functions.

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5491
Re: rev 4649 doesn't build on linux
« Reply #17 on: November 21, 2007, 04:39:00 pm »
at : Diff between revs 3594 and 4648
those :
#ifdef _LP64     
    #define _SQ64    
#endif

got removed.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: rev 4649 doesn't build on linux
« Reply #18 on: November 21, 2007, 04:55:48 pm »
at : Diff between revs 3594 and 4648
those :
#ifdef _LP64     
    #define _SQ64    
#endif

got removed.
As I said: It's all my fault. :oops:

Edit: killerbot: Will you fix this, please? And please add a C::B marker accordingly (see diff of 4648 to 4649).
« Last Edit: November 21, 2007, 04:59:15 pm by MortenMacFly »
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5491
Re: rev 4649 doesn't build on linux
« Reply #19 on: November 21, 2007, 05:33:08 pm »
I will fix this : so I just need to add those lines again ?
Was this one of our additions [before this weeks update] ??

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5491
Re: rev 4649 doesn't build on linux
« Reply #20 on: November 21, 2007, 06:37:09 pm »
have done that one adjustment, but there are much more errors now. probably some more things got broken.
Code
../../../../src/include/scripting/sqplus/sqplus.h:346: error: invalid conversion
 from 'int (*)(SQVM*)' to 'SQInteger (*)(SQVM*)'
../../../../src/include/scripting/sqplus/sqplus.h:346: error:   initializing arg
ument 2 of 'static SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQ
Integer (*)(SQVM*), const SQChar*, const SQChar*)'
../../../../src/include/scripting/sqplus/sqplus.h:347: error: invalid conversion
 from 'int (*)(SQVM*)' to 'SQInteger (*)(SQVM*)'
../../../../src/include/scripting/sqplus/sqplus.h:347: error:   initializing arg
ument 2 of 'static SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQ
Integer (*)(SQVM*), const SQChar*, const SQChar*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'void SqPlus::cre
ateInstanceSetGetHandlers(SquirrelObject&)':
../../../../src/include/scripting/sqplus/sqplus.h:377: error: invalid conversion
 from 'int (*)(SQVM*)' to 'SQInteger (*)(SQVM*)'
../../../../src/include/scripting/sqplus/sqplus.h:377: error:   initializing arg
ument 2 of 'static SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQ
Integer (*)(SQVM*), const SQChar*, const SQChar*)'
../../../../src/include/scripting/sqplus/sqplus.h:378: error: invalid conversion
 from 'int (*)(SQVM*)' to 'SQInteger (*)(SQVM*)'
../../../../src/include/scripting/sqplus/sqplus.h:378: error:   initializing arg
ument 2 of 'static SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQ
Integer (*)(SQVM*), const SQChar*, const SQChar*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'char SqPlus::Get
(SqPlus::TypeWrapper<char>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1890: error: cannot convert 'I
NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege
r, SQInteger*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'unsigned char Sq
Plus::Get(SqPlus::TypeWrapper<unsigned char>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1891: error: cannot convert 'I
NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege
r, SQInteger*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'short int SqPlus
::Get(SqPlus::TypeWrapper<short int>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1892: error: cannot convert 'I
NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege
r, SQInteger*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'short unsigned i
nt SqPlus::Get(SqPlus::TypeWrapper<short unsigned int>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1893: error: cannot convert 'I
NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege
r, SQInteger*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'int SqPlus::Get(
SqPlus::TypeWrapper<int>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1894: error: cannot convert 'I
NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege
r, SQInteger*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'unsigned int SqP
lus::Get(SqPlus::TypeWrapper<unsigned int>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1895: error: cannot convert 'I
NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege
r, SQInteger*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'long int SqPlus:                   :Get(SqPlus::TypeWrapper<long int>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1896: error: cannot convert 'I                   NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege                   r, SQInteger*)'
../../../../src/include/scripting/sqplus/sqplus.h: In function 'long unsigned in                   t SqPlus::Get(SqPlus::TypeWrapper<long unsigned int>, SQVM*, int)':
../../../../src/include/scripting/sqplus/sqplus.h:1897: error: cannot convert 'I                   NT*' to 'SQInteger*' for argument '3' to 'SQRESULT sq_getinteger(SQVM*, SQIntege                   r, SQInteger*)'

Hopefully tomorrow or Friday I can take a look at it. Thing is, during the day time currently no 64bit machine available

EDIT : @Morton : were there out places where such things got removed ??
At first sight it doesn't look good for the moment ...

EDIT : we could maybe simplify things by just following this suggestion :
Quote
Compiling squirrel on 64 bits platforms requires to define the _SQ64 variable so I have added in squirrel Makefile the flag -D_SQ64 in CXXFLAGS and then the compilation succeed.

but in a portable way then, in the makefile and in the cbp files. So probably the old style is better : _LP64 --> _SQ64, but in the current code this seems not to be sufficient.


just by looking at sqplus.h I see that a lot of SQInteger are now replaced by int. Were does SQIntegers put there by the original authors or were that CB adjustments which got lost in the update ??
« Last Edit: November 21, 2007, 06:50:02 pm by killerbot »

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: rev 4649 doesn't build on linux
« Reply #21 on: November 22, 2007, 10:05:28 am »
have done that one adjustment, but there are much more errors now. probably some more things got broken.
Oh dear... :-(

EDIT : @Morton : were there out places where such things got removed ??
I need to double-check. I have the following resources: Squirell/SQPlus 2.1.0/1.9 original and C::B revision; Squirell/SQPlus 2.1.1/2.3 original and C::B revision. I am diffing them to see...

EDIT : we could maybe simplify things by just following this suggestion :
Sure, this would probably be a good idea. It also reduces our modifications on the sources.

just by looking at sqplus.h I see that a lot of SQInteger are now replaced by int. Were does SQIntegers put there by the original authors or were that CB adjustments which got lost in the update ??
This seems to hhave been done indeed by Yiannis that time. I think we should ask him and he will hopefully remember. If that's the case we need to replace int by SQInteger again. In addition the same applied to float vs. SQFloat (but only within the focus of SQPlus, not Squirrel).

With regards, Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: rev 4649 doesn't build on linux
« Reply #22 on: November 22, 2007, 10:14:56 am »
This seems to hhave been done indeed by Yiannis that time. I think we should ask him and he will hopefully remember. If that's the case we need to replace int by SQInteger again. In addition the same applied to float vs. SQFloat (but only within the focus of SQPlus, not Squirrel).
So - it seems Yiannis did that indeed. I will therefore apply the same modifications to SQPlus in SVN. Give me some time and try afterwards... ;-)
« Last Edit: November 22, 2007, 10:16:28 am by MortenMacFly »
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5491
Re: rev 4649 doesn't build on linux
« Reply #23 on: November 22, 2007, 10:52:06 am »
ok I will .... patience is a virtue  8) 8) 8) 8) 8)

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: rev 4649 doesn't build on linux
« Reply #24 on: November 22, 2007, 01:46:03 pm »
ok I will .... patience is a virtue  8) 8) 8) 8) 8)
So... guess what: I have done that but now C::B crashes on startup with a weired error message that has it's roots in wxScintilla...?!
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: rev 4649 doesn't build on linux
« Reply #25 on: November 22, 2007, 02:47:40 pm »
ok I will .... patience is a virtue  8) 8) 8) 8) 8)
OK - done. Give iot another try, please...
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5491
Re: rev 4649 doesn't build on linux
« Reply #26 on: November 22, 2007, 11:50:13 pm »
no luck  :

Code
 g++ -DHAVE_CONFIG_H -I. -I. -I../../../../src/include -I../../../../src/include/scripting/include -I../../../../src/include/scripting/sqplus -Ulinux -Uunix -O2 -ffast-math -g -O2 -DCB_PRECOMP -Winvalid-pch -fPIC -DPIC -fexceptions -MT SqPlus.lo -MD -MP -MF .deps/SqPlus.Tpo -c SqPlus.cpp  -fPIC -DPIC -o .libs/SqPlus.o
../../../../src/include/scripting/sqplus/sqplus.h: In function 'SquirrelObject SqPlus::RegisterClassType(SQVM*, const SQChar*, const SQChar*)':
../../../../src/include/scripting/sqplus/sqplus.h:1696: error: call of overloaded 'SetValue(const char [5], int&)' is ambiguous
../../../../src/include/scripting/sqplus/SquirrelObject.h:20: note: candidates are: BOOL SquirrelObject::SetValue(INT, bool) <near match>
../../../../src/include/scripting/sqplus/SquirrelObject.h:21: note:                 BOOL SquirrelObject::SetValue(INT, INT) <near match>
../../../../src/include/scripting/sqplus/SquirrelObject.h:22: note:                 BOOL SquirrelObject::SetValue(INT, FLOAT) <near match>
../../../../src/include/scripting/sqplus/SquirrelObject.h:23: note:                 BOOL SquirrelObject::SetValue(INT, const SQChar*) <near match>
../../../../src/include/scripting/sqplus/SquirrelObject.h:26: note:                 BOOL SquirrelObject::SetValue(const SQChar*, bool)
../../../../src/include/scripting/sqplus/SquirrelObject.h:27: note:                 BOOL SquirrelObject::SetValue(const SQChar*, INT)
../../../../src/include/scripting/sqplus/SquirrelObject.h:28: note:                 BOOL SquirrelObject::SetValue(const SQChar*, FLOAT)
../../../../src/include/scripting/sqplus/SquirrelObject.h:29: note:                 BOOL SquirrelObject::SetValue(const SQChar*, const SQChar*) <near match>
make[4]: *** [SqPlus.lo] Error 1

Offline keenblade

  • Multiple posting newcomer
  • *
  • Posts: 36
  • tao
    • keenblade
Re: rev 4649 doesn't build on linux
« Reply #27 on: November 24, 2007, 07:47:58 am »
no luck  :
no luck, too. Same error on my x86_64.
Anyway it\'s all the same at the end...

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: rev 4649 doesn't build on linux
« Reply #28 on: November 24, 2007, 09:38:31 am »
Fixed in r4667.
Be patient!
This bug will be fixed soon...

Offline alchemist

  • Multiple posting newcomer
  • *
  • Posts: 38
    • My Blog
Re: rev 4649 doesn't build on linux
« Reply #29 on: November 24, 2007, 11:02:20 am »
Fixed in r4667.
\o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/

BIG THANKS !!!
Kind Regards,
Xavier Miller.
http://xaviermiller.be