Author Topic: exchndl related patch because win32/lib folder is empty in SVN  (Read 19146 times)

Offline stahta01

  • Lives here!
  • ****
  • Posts: 6675
    • My Best Post
Code: [Select]
Index: src/CodeBlocks.cbp
===================================================================
--- src/CodeBlocks.cbp  (revision 10372)
+++ src/CodeBlocks.cbp  (working copy)
@@ -218,7 +218,7 @@
                                        <Add library="advapi32" />
                                        <Add library="wsock32" />
                                        <Add directory="devel" />
-                                       <Add directory="exchndl/win32/lib" />
+                                       <Add directory="exchndl/win32/bin" />
                                </Linker>
                                <ExtraCommands>
                                        <Add after="cmd /c if not exist devel\share\CodeBlocks mkdir devel\share\CodeBlocks" />

Tim S.

C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #1 on: July 27, 2015, 08:00:41 am »
Code: [Select]
Index: src/CodeBlocks.cbp
===================================================================
--- src/CodeBlocks.cbp  (revision 10372)
+++ src/CodeBlocks.cbp  (working copy)
@@ -218,7 +218,7 @@
                                        <Add library="advapi32" />
                                        <Add library="wsock32" />
                                        <Add directory="devel" />
-                                       <Add directory="exchndl/win32/lib" />
+                                       <Add directory="exchndl/win32/bin" />
                                </Linker>
                                <ExtraCommands>
                                        <Add after="cmd /c if not exist devel\share\CodeBlocks mkdir devel\share\CodeBlocks" />

Tim S.
Sorry, these files were hidden on commit - I've added the right ones, now.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline stahta01

  • Lives here!
  • ****
  • Posts: 6675
    • My Best Post
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #2 on: July 27, 2015, 08:18:29 am »
Sorry, these files were hidden on commit - I've added the right ones, now.

Thank you.

Tim S.
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline stahta01

  • Lives here!
  • ****
  • Posts: 6675
    • My Best Post
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #3 on: July 27, 2015, 08:21:42 am »
Sorry, these files were hidden on commit - I've added the right ones, now.

Thank you.

Tim S.

This warning did NOT go way. I was thinking it happened because I linked to a DLL instead of import lib.
But, I must have been wrong.

Edit: Using TDM MinGW GCC 4.7.?

Code: [Select]
Linking executable: devel\codeblocks.exe
Warning: resolving [email protected] by linking to _ExcHndlInit
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups

Tim S.
« Last Edit: July 27, 2015, 08:23:43 am by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #4 on: July 27, 2015, 07:55:12 pm »
Are you sure you're removed the bin folder and re-added the lib one?
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline stahta01

  • Lives here!
  • ****
  • Posts: 6675
    • My Best Post
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #5 on: July 27, 2015, 09:06:44 pm »
Are you sure you're removed the bin folder and re-added the lib one?

Yes.
What compiler version are you using?

I will try a fresh checkout later to be sure something else is NOT causing the message.

Tim S.
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #6 on: July 27, 2015, 09:07:46 pm »
Are you sure you're removed the bin folder and re-added the lib one?

Yes.
What compiler version are you using?

I will try a fresh checkout later to be sure something else is NOT causing the message.

Tim S.
I am using tdm version 4.9.2.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5247
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #7 on: July 29, 2015, 03:05:54 am »
I get a build error when building the latest svn under mingw-build gcc 4.9.2 (32bit).
Code: [Select]
[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Ldevel -Lexchndl\win32\lib -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o  .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined  -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
.objs\src\app.o: In function `ZN13CodeBlocksApp20InitExceptionHandlerEv':
F:\cb_sf_git\trunk\src/src/app.cpp:459: undefined reference to `[email protected]
'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (3 minute(s), 14 second(s))
2 error(s), 0 warning(s) (3 minute(s), 14 second(s))


So, I will try to use tim's patch to see whether it fix this issue.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5247
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #8 on: July 29, 2015, 03:11:39 am »
I get a build error when building the latest svn under mingw-build gcc 4.9.2 (32bit).
Code: [Select]
[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Ldevel -Lexchndl\win32\lib -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o  .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined  -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
.objs\src\app.o: In function `ZN13CodeBlocksApp20InitExceptionHandlerEv':
F:\cb_sf_git\trunk\src/src/app.cpp:459: undefined reference to `[email protected]
'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (3 minute(s), 14 second(s))
2 error(s), 0 warning(s) (3 minute(s), 14 second(s))


So, I will try to use tim's patch to see whether it fix this issue.

Justed tried, but still the build error:
Code: [Select]
-------------- Build: src in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler)---------------

[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Ldevel -Lexchndl\win32\bin -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o  .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined  -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
.objs\src\app.o: In function `ZN13CodeBlocksApp20InitExceptionHandlerEv':
F:\cb_sf_git\trunk\src/src/app.cpp:459: undefined reference to `[email protected]'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 15 second(s))
2 error(s), 0 warning(s) (0 minute(s), 15 second(s))

If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5247
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #9 on: July 29, 2015, 03:44:45 am »
Code: [Select]

F:\cb_sf_git\trunk\src\exchndl\win32\lib>nm libexchndl.a

dhczt.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$7
00000000 t .text
00000000 I ___home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a_iname

dhczh.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$2
00000000 i .idata$4
00000000 i .idata$5
00000000 t .text
         U ___home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a_iname
00000000 I __head__home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a
00000000 i fthunk
00000000 i hname

dhczs00001.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
         U __head__home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a
00000000 I [email protected]
00000000 T [email protected]

dhczs00000.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
         U __head__home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a
00000000 I [email protected]
00000000 T [email protected]


Well, I do see the symbol named "[email protected]" when using the nm command.

Also, I see that in the dll, there is a function named "ExcHndInit", see the image shot below from the dependency walker:


But why the linker can't find it, they have different symbol names, can I add some name alise?
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline stahta01

  • Lives here!
  • ****
  • Posts: 6675
    • My Best Post
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #10 on: July 29, 2015, 04:57:59 am »
I did a fresh checkout and the warnings went away for me.

Edit: I do a fresh checkout in a non-standard way because of my slow internet connection.
I delete everything in my CB folder except the .svn folder.
Then, I do this command three times till nothing is updated on the third time.
Code: [Select]
svn update .

It normally errors out on the first time done.
Updates the external stuff on the second time.
And, on the third time it just displays the svn revs.

Tim S.
« Last Edit: July 29, 2015, 05:02:14 am by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #11 on: July 29, 2015, 05:28:11 am »
Good to know its solved for you.it could also have been that you seem to use the dwarf version which I don't. At least I didn't even try of the lib is actually compatible.it claims to bee so...
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline stahta01

  • Lives here!
  • ****
  • Posts: 6675
    • My Best Post
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #12 on: July 29, 2015, 05:44:42 am »
Good to know its solved for you.it could also have been that you seem to use the dwarf version which I don't. At least I didn't even try of the lib is actually compatible.it claims to bee so...

I use SJLJ; but, maybe ollydbg uses dwarf version.

Tim S.
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5247
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #13 on: July 29, 2015, 06:02:57 am »
Good to know its solved for you.it could also have been that you seem to use the dwarf version which I don't. At least I didn't even try of the lib is actually compatible.it claims to bee so...

I use SJLJ; but, maybe ollydbg uses dwarf version.

Tim S.
Yes, I use dwarf version, is that the reason I get link error, I don't think so, I see exchndl is a pure C library.
BTW: I use the version: MinGW-W64 project, mingw-build i686-4.9.2-posix-dwarf-rt_v4-rev2
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: exchndl related patch because win32/lib folder is empty in SVN
« Reply #14 on: July 29, 2015, 06:55:14 am »
Good to know its solved for you.it could also have been that you seem to use the dwarf version which I don't. At least I didn't even try of the lib is actually compatible.it claims to bee so...

I use SJLJ; but, maybe ollydbg uses dwarf version.

Tim S.
Yes, I use dwarf version, is that the reason I get link error, I don't think so, I see exchndl is a pure C library.
BTW: I use the version: MinGW-W64 project, mingw-build i686-4.9.2-posix-dwarf-rt_v4-rev2
ok,I think you should do a recompile and look for old versions of the dll in the path.the linker would pick an old version. Please search for exchndl.* in the path. There is no reason why it should not work except the linker picks a wrong version. You could also add the lib with the full path temporarily to try...
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ