0

Switched development to a new system. Went to GitHub and picked up the project but got one about 2 months newer then the one on my older system. Although only minor changes in the new GitHub version, there is a huge difference in size of executable. I assume the new version includes debugging info. Since the make files are built during setup I copied the old make files to the new system but the build executable came out the same size after running make.

jstateson@jysdualxeon:~/boinc$ uname -a
Linux jysdualxeon 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
jstateson@jysdualxeon:~/boinc/client$ ls -l boinc
-rwxr-xr-x 2 root root 20075752 Nov  9 08:57 boinc
jstateson@jysdualxeon:~/boinc/client$


jstateson@jyslinux1:~/Downloads/boinc-master/client$ uname -a
Linux jyslinux1 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
jstateson@jyslinux1:~/Downloads/boinc-master/client$ ls -l boinc
-rwxrwxr-x 2 jstateson jstateson 1517832 Nov  1 01:22 boinc
jstateson@jyslinux1:~/Downloads/boinc-master/client$

[EDIT] I have no idea what is causing this but I fixed it by tar'ing up my exiting project from the old development system and un-tar'ing in on the new system and then doing a massive copy *.cpp *.h to get the sources into the "new" git workspace. The build came out to the correct size and is the correct code.

I am interested in discovering what caused this. so far, the project maintainers have not responded but they are all volunteers so I would like to find what happened myself. I am guessing it was built for static instead of dynamic? Just a total guess as I once did that on a windows system. Newbie question: Does gcc have a visual debugger like visual studio that builds huge debug files? I have never debugged any Linux code other than throwing in a bunch of console prints to see WTF is going on. Maybe things have changed since I retired in 2009 and I mistakenly build a visual gnu debug version ???

[as requested]

jstateson@jysdualxeon:~/boinc/client$ file boinc
boinc: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=753642cbdfe8381bf86e41d736eece30774dd318, with debug_info, not stripped

a grep for "-strip-debug" shows up identically in both the old (working) and the new (size too big) systems both show the following for example

libtool:old_striplib="strip --strip-debug"

solution: ran that strip tool on my program worked fine. still do not know how the debug stuff got in but I did track the problem back to where I got the software

if $ac_cv_prog_cc_g is equal to "yes" then I get debug "-g O2" That variable is set to either YES or NO in configure and configure is created by "_autosetup" but I cannot find that variable in _autosetup. In folder "x" if I run autosetup I get "-O3" which is great In folder "y" if I run autosetup I get "-g O2" which is terrible folder x came from a download from GitHub of the "zip" and folder Y came from git clone https://github.com/Y so it seems there is a difference. Not sure where it is hiding but at least I know how to strip the debug stuff from the executable.

  • yea, looks like debug stuff jstateson@jysdualxeon:~/boinc/client$ file boinc boinc: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=753642cbdfe8381bf86e41d736eece30774dd318, with debug_info, not stripped jstateson@jysdualxeon:~/boinc/client$ – Joseph Stateson Nov 9 at 16:58
  • Use readelf (from the binutils package). Use ldd to see dynamic libraries. – waltinator Nov 9 at 16:59
  • looks like I need to add "-Wl,--strip-debug" to linker if I can figure where that is – Joseph Stateson Nov 9 at 17:04
  • I like ddd for a gui debugger. Its' in the standard repos these days. – ubfan1 2 days ago

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.