Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Building Code::Blocks on Win 64

<< < (4/15) > >>

jonok:

--- Quote from: Biplab on December 08, 2009, 05:06:57 pm ---Here's an update.

C::B and core plugins can now be compiled successfully on Win 64 bit platform. Do note my emphasis on the word "compiled". The code can now be compiled but is unstable at the moment!!

A patch is attached with the post.

Known issues:
1) There are couple of warnings to be fixed in Compiler depslib target.
2) crashhandler.cpp code needs to be updated to conform 64 bit api calls.
3) Scripting system is partially broken. Needs to be fixed.  <-- Fixed now. I accidentally commented one line which caused this bug.  :oops:

The patch may not work with patch tools. Manual patching may be necessary in such a case.


Edit 1: A new version of patch is uploaded. This fixes item no 3 stated above. If you have downloaded the previous file (64-bit_v1_08-Dec-09.7z), please redownload the patch. I had accidentally commented one line which caused the above bug.

--- End quote ---

Biplab:
I've uploaded a test build (core app and core plugins only) to the following link which is based on C::B trunk (rev 6078) and my patchset. If you are interested then you may download it from the following link.


--- Quote ---http://www.box.net/shared/tsoetogrd3
--- End quote ---

Note that patches needed for Squirrel has already been committed to trunk. I'm attaching remaining patch (against trunk-rev 6078) needed to build core app and plugins. Contrib plugins are not updated yet for Win 64 build.

Important Notes:
1) This is a test build. Use it for testing only.
2) You need to "Kill" it from Task Manager after you finish your work. If you close it normally, it will stay in the memory. Source of Bug - so far I've been unable to trace it.
3) Clicking Settings > Editor will cause a segfault. I've found the offending line. However that line can't be a source of this bug (I'm quite sure). I'm still looking for the real source.

As the patch matures, I'll commit them in trunk. Any feedback is always welcome. :)

Edit 1:
@Billy, please try this new patch. Build issue on Linux should get resolved.

[attachment deleted by admin]

billyonthemountain:
Compiling still fails here :

--- Code: ---/bin/sh ../../../../libtool --tag=CXX   --mode=compile x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../../../src/include -I/usr/lib64/wx/include/gtk2-unicode-release-2.9 -I/usr/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -I../../../../src/include -I../../../../src/include/wxscintilla/include -I../../../../src/include/scripting/include -I../../../../src/include/scripting/bindings -I../../../../src/include/scripting/sqplus  -Ulinux -Uunix  -O2 -ffast-math -DCB_AUTOCONF -O2 -pipe -march=core2 -fno-strict-aliasing  -fPIC -DPIC -fexceptions -c -o sc_wxtypes.lo sc_wxtypes.cpp                                                                                                                                        
libtool: compile:  x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../../../src/include -I/usr/lib64/wx/include/gtk2-unicode-release-2.9 -I/usr/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -I../../../../src/include -I../../../../src/include/wxscintilla/include -I../../../../src/include/scripting/include -I../../../../src/include/scripting/bindings -I../../../../src/include/scripting/sqplus -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -O2 -pipe -march=core2 -fno-strict-aliasing -fPIC -DPIC -fexceptions -c sc_wxtypes.cpp  -fPIC -DPIC -o .libs/sc_wxtypes.o        
In file included from ../../../../src/include/scripting/bindings/sc_base_types.h:26,                                                                
                 from sc_wxtypes.cpp:18:                                                                                                            
../../../../src/include/scripting/sqplus/sqplus.h: In static member function ‘static SQInteger SqPlus::DirectCallInstanceMemberFunction<Callee, Func>::Dispatch(SQVM*) [with Callee = wxColour, Func = bool (wxGDIObject::*)()const]’:                                                                    
../../../../src/include/scripting/sqplus/sqplus.h:1323:   instantiated from ‘void SqPlus::sq_pushdirectinstanceclosure(SQVM*, const Callee&, Func, SQUnsignedInteger) [with Callee = wxColour, Func = bool (wxGDIObject::*)()const]’                                                                      
../../../../src/include/scripting/sqplus/sqplus.h:1407:   instantiated from ‘void SqPlus::RegisterInstance(SQVM*, HSQOBJECT, Callee&, Func, const SQChar*) [with Callee = wxColour, Func = bool (wxGDIObject::*)()const]’                                                                                
../../../../src/include/scripting/sqplus/sqplus.h:1761:   instantiated from ‘SqPlus::SQClassDef<TClassType>& SqPlus::SQClassDef<TClassType>::func(Func, const SQChar*) [with Func = bool (wxGDIObject::*)()const, TClassType = wxColour]’                                                                
sc_wxtypes.cpp:223:   instantiated from here                                                                                                        
../../../../src/include/scripting/sqplus/sqplus.h:1254: error: no matching function for call to ‘Call(wxColour&, bool (wxGDIObject::*&)()const, SQVM*&, int)’                                                                                                                                            
make[4]: *** [sc_wxtypes.lo] Error 1                                                                                                                
make[4]: Leaving directory `/var/tmp/portage/dev-util/codeblocks-9999-r23/work/codeblocks-9999/src/sdk/scripting/bindings'                          
make[3]: *** [all-recursive] Error 1                                                                                                                
make[3]: Leaving directory `/var/tmp/portage/dev-util/codeblocks-9999-r23/work/codeblocks-9999/src/sdk/scripting'                                    
make[2]: *** [all-recursive] Error 1                                                                                                                
make[2]: Leaving directory `/var/tmp/portage/dev-util/codeblocks-9999-r23/work/codeblocks-9999/src/sdk'                                              
make[1]: *** [all-recursive] Error 1                                                                                                                
make[1]: Leaving directory `/var/tmp/portage/dev-util/codeblocks-9999-r23/work/codeblocks-9999/src'                                                  
make: *** [all-recursive] Error 1
--- End code ---
Using wx-2.9 svn on linux 64bit


--- Quote from: Biplab on January 12, 2010, 05:35:22 pm ---2) You need to "Kill" it from Task Manager after you finish your work. If you close it normally, it will stay in the memory. Source of Bug - so far I've been unable to trace it.

--- End quote ---
Does also happen on Win64 using a 32bit build, still need to confirm it and do more some testing
Works with the 12.01 nightly, need to check my build system on windows

Biplab:
I'll look into Linux build issue tonight. Thanks for your feedback. Hung app issue doesn't occur in 32 bit. However it crashes on normal exit. Debugger doesn't return any meaningful output on the crash. :-)

billyonthemountain:
Just for interest : Using wx-2.8 on linux, fails as well but not at the same place...

--- Code: ---/bin/sh ../../../libtool --tag=CXX   --mode=compile x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../../src/include -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I../../../src/include/wxscintilla/include -I../../../src/include -I../../../src/include/tinyxml  -Ulinux -Uunix  -O2 -ffast-math -DCB_AUTOCONF -O2 -pipe -march=core2 -fno-strict-aliasing  -fPIC -DPIC -fexceptions -c -o tinywxuni.lo tinywxuni.cpp                                                                                                     
libtool: compile:  x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../../src/include -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I../../../src/include/wxscintilla/include -I../../../src/include -I../../../src/include/tinyxml -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -O2 -pipe -march=core2 -fno-strict-aliasing -fPIC -DPIC -fexceptions -c tinywxuni.cpp  -fPIC -DPIC -o .libs/tinywxuni.o                                                                                                                       
In file included from ../../../src/include/sdk_common.h:40,                                                                                         
                 from ../../../src/include/sdk_precomp.h:13,                                                                                         
                 from tinywxuni.cpp:1:                                                                                                               
../../../src/include/prep.h:305: error: ‘wxIntPtr’ does not name a type                                                                             
../../../src/include/prep.h:307: error: expected ‘)’ before ‘in’                                                                                     
../../../src/include/prep.h:310: error: ‘wxIntPtr’ has not been declared                                                                             
../../../src/include/prep.h:316: error: expected type-specifier before ‘wxIntPtr’                                                                   
../../../src/include/prep.h: In constructor ‘ID::ID()’:                                                                                             
../../../src/include/prep.h:314: error: class ‘ID’ does not have any field named ‘value’                                                             
../../../src/include/prep.h:314: error: ‘wxIntPtr’ was not declared in this scope                                                                   
../../../src/include/prep.h: In member function ‘ID::operator void*() const’:                                                                       
../../../src/include/prep.h:317: error: ‘value’ was not declared in this scope                                                                       
../../../src/include/prep.h: In member function ‘bool ID::Valid() const’:                                                                           
../../../src/include/prep.h:319: error: ‘value’ was not declared in this scope                                                                       
../../../src/include/prep.h:319: error: ‘wxIntPtr’ was not declared in this scope                                                                   
../../../src/include/prep.h: In function ‘bool operator==(ID, ID)’:                                                                                 
../../../src/include/prep.h:322: error: ‘class ID’ has no member named ‘value’                                                                       
../../../src/include/prep.h:322: error: ‘class ID’ has no member named ‘value’                                                                       
../../../src/include/prep.h: In function ‘bool operator==(ID, int)’:                                                                                 
../../../src/include/prep.h:323: error: ‘class ID’ has no member named ‘value’                                                                       
../../../src/include/prep.h:323: error: ‘wxIntPtr’ was not declared in this scope                                                                   
../../../src/include/prep.h:323: error: expected ‘;’ before ‘b’                                                                                     
../../../src/include/prep.h: In function ‘bool operator!=(ID, ID)’:                                                                                 
../../../src/include/prep.h:325: error: ‘class ID’ has no member named ‘value’                                                                       
../../../src/include/prep.h:325: error: ‘class ID’ has no member named ‘value’                                                                       
../../../src/include/prep.h: In function ‘bool operator!=(ID, int)’:                                                                                 
../../../src/include/prep.h:326: error: ‘class ID’ has no member named ‘value’                                                                       
../../../src/include/prep.h: In function ‘ID GetID()’:                                                                                               
../../../src/include/prep.h:332: error: ‘wxIntPtr’ does not name a type                                                                             
../../../src/include/prep.h:333: error: ‘id’ was not declared in this scope                                                                         
../../../src/include/prep.h: At global scope:                                                                                                       
../../../src/include/prep.h:337: error: ‘ConstructID’ declared as an ‘inline’ variable                                                               
../../../src/include/prep.h:337: error: ‘ID ConstructID’ redeclared as different kind of symbol                                                     
../../../src/include/prep.h:310: error: previous declaration of ‘ID ConstructID(int)’                                                               
../../../src/include/prep.h:337: error: ‘wxIntPtr’ was not declared in this scope                                                                   
make[3]: *** [tinywxuni.lo] Error 1                                                                                                                 
make[3]: Leaving directory `/var/tmp/portage/dev-util/codeblocks-9999-r23/work/codeblocks-9999/src/base/tinyxml'                                     
make[2]: *** [all-recursive] Error 1                                                                                                                 
make[2]: Leaving directory `/var/tmp/portage/dev-util/codeblocks-9999-r23/work/codeblocks-9999/src/base'                                             
make[1]: *** [all-recursive] Error 1                                                                                                                 
make[1]: Leaving directory `/var/tmp/portage/dev-util/codeblocks-9999-r23/work/codeblocks-9999/src'                                                 
make: *** [all-recursive] Error 1
--- End code ---
I'm not really familiar with wxwidgets internals but it seems there's a non-negligible gap between 2.8.10 and 2.9; handling 2.8/2.9, win/linux/MacOs 32/64bits might get tricky...   :?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version