Author Topic: Something broke between 8045 and 8050  (Read 16081 times)

Offline ironhead

  • Almost regular
  • **
  • Posts: 210
Something broke between 8045 and 8050
« on: June 15, 2012, 09:20:10 pm »
I'm compiling C::B using MinGW GCC 4.7.0 and with the '-fpermissive' workaround I was able to compile up to 8045.  I just updated to 8050 and now the compilation is failing (existing with a status code of 1).

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Something broke between 8045 and 8050
« Reply #1 on: June 15, 2012, 09:48:19 pm »
And the error is?
Also have you tried a clean build (removing .obj, devel and output, even the pchs)?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline ironhead

  • Almost regular
  • **
  • Posts: 210
Re: Something broke between 8045 and 8050
« Reply #2 on: June 16, 2012, 06:10:25 am »
And the error is?

Many - 988 to be exact: http://emergedesktop.org/8050_error.txt

Also have you tried a clean build (removing .obj, devel and output, even the pchs)?

Didn't help unfortunately.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: Something broke between 8045 and 8050
« Reply #3 on: June 16, 2012, 08:14:47 am »
I'm compiling C::B using MinGW GCC 4.7.0 and with the '-fpermissive' workaround I was able to compile up to 8045.  I just updated to 8050 and now the compilation is failing (existing with a status code of 1).
What platform? I cannot reproduce.
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: Something broke between 8045 and 8050
« Reply #4 on: June 16, 2012, 08:27:40 am »
I cannot reproduce.
Well - I could finally (was using the wrong compiler before). I recalled a fix which I have just committed. Try again and report back, 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 ironhead

  • Almost regular
  • **
  • Posts: 210
Re: Something broke between 8045 and 8050
« Reply #5 on: June 16, 2012, 03:37:28 pm »
I cannot reproduce.
Well - I could finally (was using the wrong compiler before). I recalled a fix which I have just committed. Try again and report back, please.

I got a little further and the error count is down, but unfortunately it still didn't work: http://emergedesktop.org/8055_error.txt.

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Something broke between 8045 and 8050
« Reply #6 on: June 16, 2012, 03:47:01 pm »
Works here with -fpermissive hack (fc17 64-bit).
Only tested with automake in clean fedora 17 chroot.

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7588
    • My Best Post
Re: Something broke between 8045 and 8050
« Reply #7 on: June 16, 2012, 03:55:13 pm »
I cannot reproduce.
Well - I could finally (was using the wrong compiler before). I recalled a fix which I have just committed. Try again and report back, please.

I got a little further and the error count is down, but unfortunately it still didn't work: http://emergedesktop.org/8055_error.txt.

Those are only warnings; there is no Compiler errors in your txt file.
CB is falsely reporting the Compiler warnings as errors. 

SET The CB value of max number of errors to 0 for unlimited.
Or, fix the regex in CB to ignore the warnings (or treat them as warnings instead of errors)

Tim S.
« Last Edit: June 16, 2012, 03:59:03 pm by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline ironhead

  • Almost regular
  • **
  • Posts: 210
Re: Something broke between 8045 and 8050
« Reply #8 on: June 16, 2012, 09:01:15 pm »
I found the source of the build failure, it turns out it has nothing to do with the compilation:

Code
Running target post-build steps
zip -jq9 devel\share\CodeBlocks\manager_resources.zip sdk\resources\*.xrc
cmd /c "cd sdk\resources & zip -0 -q ..\..\devel\share\CodeBlocks\manager_resources.zip images\*.png images\12x12\*.png images\16x16\*.png"
zip I/O error: No such file or directory
zip error: Could not create output file (devel/share/CodeBlocks/manager_resources.zip)

With out the devel/share/CodeBlocks directory pre-existing (i.e. you delete, or on first compilation) the zip fails, causing the whole thing to crap out. If I create the directory before hand the compilation will complete.

Those are only warnings; there is no Compiler errors in your txt file.
CB is falsely reporting the Compiler warnings as errors. 

SET The CB value of max number of errors to 0 for unlimited.
Or, fix the regex in CB to ignore the warnings (or treat them as warnings instead of errors)

Agreed, but I'm having one heck of time getting the regex to work.  I have:


Which works in the "Test String" but doesn't work when compiling.  Help would be appreciated.

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Something broke between 8045 and 8050
« Reply #9 on: June 16, 2012, 09:40:08 pm »
I found the source of the build failure, it turns out it has nothing to do with the compilation:
Which works in the "Test String" but doesn't work when compiling.  Help would be appreciated.

I'm on fedora 17 now, which has gcc 4.7 as default compiler.
I will see, if I can fix it.

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Something broke between 8045 and 8050
« Reply #10 on: June 16, 2012, 10:16:36 pm »
You can try this one:
Code
([][{}() \t#%$~[:alnum:]&_:+/\.-]+):([0-9]+):[0-9]+:[ \t]+([Rr]equired from.*)

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5491
Re: Something broke between 8045 and 8050
« Reply #11 on: June 16, 2012, 11:33:50 pm »
You can try this one:
Code
([][{}() \t#%$~[:alnum:]&_:+/\.-]+):([0-9]+):[0-9]+:[ \t]+([Rr]equired from.*)
that was one I had on the top list of things to fix ;-)

Commit please if it works ok :-)

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7588
    • My Best Post
Re: Something broke between 8045 and 8050
« Reply #12 on: June 16, 2012, 11:56:04 pm »
You can try this one:
Code
([][{}() \t#%$~[:alnum:]&_:+/\.-]+):([0-9]+):[0-9]+:[ \t]+([Rr]equired from.*)

It did not work for me; but, I have never messed with the compiler regex adv. options before.

Tim S.

two example lines from Windows
Code
include\scripting\sqplus\sqplus.h|1751|  required from 'SqPlus::SQClassDef<TClassType>& SqPlus::SQClassDef<TClassType>::func(Func, const SQChar*) [with Func = ProjectFile* (cbProject::*)(int); TClassType = cbProject; SqPlus::SQClassDef<TClassType> = SqPlus::SQClassDef<cbProject>; SQChar = char]'|
H:\SourceCode\OpenSourceCode\Apps\IDEs\CodeBlocks\codeblocks-wx28-SJLJ\src\sdk\scripting\bindings\scriptbindings.cpp|519|  required from here|
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Something broke between 8045 and 8050
« Reply #13 on: June 17, 2012, 12:23:12 am »
You can try this one:
Code
([][{}() \t#%$~[:alnum:]&_:+/\.-]+):([0-9]+):[0-9]+:[ \t]+([Rr]equired from.*)

It did not work for me; but, I have never messed with the compiler regex adv. options before.

Tim S.

two example lines from Windows
Code
include\scripting\sqplus\sqplus.h|1751|  required from 'SqPlus::SQClassDef<TClassType>& SqPlus::SQClassDef<TClassType>::func(Func, const SQChar*) [with Func = ProjectFile* (cbProject::*)(int); TClassType = cbProject; SqPlus::SQClassDef<TClassType> = SqPlus::SQClassDef<cbProject>; SQChar = char]'|
H:\SourceCode\OpenSourceCode\Apps\IDEs\CodeBlocks\codeblocks-wx28-SJLJ\src\sdk\scripting\bindings\scriptbindings.cpp|519|  required from here|
Can you post the cooresponding lines from the "Build log" and not from the "Build messages" tab ?

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7588
    • My Best Post
Re: Something broke between 8045 and 8050
« Reply #14 on: June 17, 2012, 01:45:21 am »
Build log different spot

Code
H:\SourceCode\OpenSourceCode\Apps\IDEs\CodeBlocks\codeblocks-wx28-SJLJ\src\sdk\scripting\bindings\scriptbindings.cpp:680:98:   required from here
include\scripting\sqplus/sqplus.h:626:5: warning: 'Push' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from H:\SourceCode\OpenSourceCode\Apps\IDEs\CodeBlocks\codeblocks-wx28-SJLJ\src\sdk\scripting\bindings\scriptbindings.cpp:28:0:
include\scripting\bindings/sc_base_types.h:74:1: note: 'void SqPlus::Push(HSQUIRRELVM, TargetFilenameGenerationPolicy)' declared here, later in the translation unit
In file included from include\scripting\bindings/sc_base_types.h:26:0,
                 from H:\SourceCode\OpenSourceCode\Apps\IDEs\CodeBlocks\codeblocks-wx28-SJLJ\src\sdk\scripting\bindings\scriptbindings.cpp:28:
include\scripting\sqplus/sqplus.h: In instantiation of 'static SQInteger SqPlus::ReturnSpecialization<RT>::Call(RT (*)(P1, P2), HSQUIRRELVM, SQInteger) [with P1 = const wxString&; P2 = const wxString&; RT = bool; SQInteger = int; HSQUIRRELVM = SQVM*]':
include\scripting\sqplus/sqplus.h:1111:53:   required from 'SQInteger SqPlus::Call(RT (*)(P1, P2), HSQUIRRELVM, SQInteger) [with RT = bool; P1 = const wxString&; P2 = const wxString&; SQInteger = int; HSQUIRRELVM = SQVM*]'
include\scripting\sqplus/sqplus.h:1194:26:   required from 'static SQInteger SqPlus::DirectCallFunction<Func>::Dispatch(HSQUIRRELVM) [with Func = bool (*)(const wxString&, const wxString&); SQInteger = int; HSQUIRRELVM = SQVM*]'
include\scripting\sqplus/sqplus.h:1293:3:   required from 'void SqPlus::sq_pushdirectclosure(HSQUIRRELVM, Func, SQUnsignedInteger) [with Func = bool (*)(const wxString&, const wxString&); HSQUIRRELVM = SQVM*; SQUnsignedInteger = unsigned int]'
include\scripting\sqplus/sqplus.h:1330:3:   required from 'void SqPlus::Register(HSQUIRRELVM, Func, const SQChar*) [with Func = bool (*)(const wxString&, const wxString&); HSQUIRRELVM = SQVM*; SQChar = char]'
include\scripting\sqplus/sqplus.h:1376:3:   required from 'void SqPlus::Register(HSQUIRRELVM, HSQOBJECT, Func, const SQChar*) [with Func = bool (*)(const wxString&, const wxString&); HSQUIRRELVM = SQVM*; HSQOBJECT = tagSQObject; SQChar = char]'
include\scripting\sqplus/sqplus.h:1781:5:   required from 'SqPlus::SQClassDef<TClassType>& SqPlus::SQClassDef<TClassType>::staticFunc(Func, const SQChar*) [with Func = bool (*)(const wxString&, const wxString&); TClassType = CompilerFactory; SqPlus::SQClassDef<TClassType> = SqPlus::SQClassDef<CompilerFactory>; SQChar = char]'

Related spot from build message

Code
H:\SourceCode\OpenSourceCode\Apps\IDEs\CodeBlocks\codeblocks-wx28-SJLJ\src\sdk\scripting\bindings\scriptbindings.cpp|680|  required from here|
include\scripting\sqplus\sqplus.h|626|warning: 'Push' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]|
include\scripting\bindings\sc_base_types.h|74|note: 'void SqPlus::Push(HSQUIRRELVM, TargetFilenameGenerationPolicy)' declared here, later in the translation unit|
include\scripting\sqplus\sqplus.h|1111|  required from 'SQInteger SqPlus::Call(RT (*)(P1, P2), HSQUIRRELVM, SQInteger) [with RT = bool; P1 = const wxString&; P2 = const wxString&; SQInteger = int; HSQUIRRELVM = SQVM*]'|
include\scripting\sqplus\sqplus.h|1194|  required from 'static SQInteger SqPlus::DirectCallFunction<Func>::Dispatch(HSQUIRRELVM) [with Func = bool (*)(const wxString&, const wxString&); SQInteger = int; HSQUIRRELVM = SQVM*]'|
include\scripting\sqplus\sqplus.h|1293|  required from 'void SqPlus::sq_pushdirectclosure(HSQUIRRELVM, Func, SQUnsignedInteger) [with Func = bool (*)(const wxString&, const wxString&); HSQUIRRELVM = SQVM*; SQUnsignedInteger = unsigned int]'|
include\scripting\sqplus\sqplus.h|1330|  required from 'void SqPlus::Register(HSQUIRRELVM, Func, const SQChar*) [with Func = bool (*)(const wxString&, const wxString&); HSQUIRRELVM = SQVM*; SQChar = char]'|
include\scripting\sqplus\sqplus.h|1376|  required from 'void SqPlus::Register(HSQUIRRELVM, HSQOBJECT, Func, const SQChar*) [with Func = bool (*)(const wxString&, const wxString&); HSQUIRRELVM = SQVM*; HSQOBJECT = tagSQObject; SQChar = char]'|
include\scripting\sqplus\sqplus.h|1781|  required from 'SqPlus::SQClassDef<TClassType>& SqPlus::SQClassDef<TClassType>::staticFunc(Func, const SQChar*) [with Func = bool (*)(const wxString&, const wxString&); TClassType = CompilerFactory; SqPlus::SQClassDef<TClassType> = SqPlus::SQClassDef<CompilerFactory>; SQChar = char]'|
H:\SourceCode\OpenSourceCode\Apps\IDEs\CodeBlocks\codeblocks-wx28-SJLJ\src\sdk\scripting\bindings\scriptbindings.cpp|681|  required from here|
include\scripting\sqplus\sqplus.h|638|warning: 'Push' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]|
include\scripting\bindings\sc_base_types.h|74|note: 'void SqPlus::Push(HSQUIRRELVM, TargetFilenameGenerationPolicy)' declared here, later in the translation unit|

Currently rebuild the full Code::Blocks project will attach minimal build log when done.
Note: Using these option on cpp file(s) "-std=gnu++0x -fpermissive"

Tim S.

[attachment deleted by admin]
« Last Edit: June 17, 2012, 02:03:20 am by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org