[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Recommendation for Virtual Machine and Instructions to set it up?



On Thu, Dec 06, 2018 at 08:01:31PM -0500, rhkramer@gmail.com wrote:
> On Thursday, December 06, 2018 12:59:19 PM Roberto C. Sánchez wrote:
> > On Thu, Dec 06, 2018 at 11:11:56AM -0500, rhkramer@gmail.com wrote:
> > > Background:
> > > 
> > > I'm involved with having some software written and then testing it.
> > > 
> > > The software won't run on either my Wheezy or Jessie systems -- it
> > > appears to be an outdated libstdc++ that is the problem.
> > 
> > That seems to be rather peculiar.  Is the software also built on the
> > wheezy or jessie system 
> 
> Nope -- the software was compiled (into a binary) on a Ubuntu system which 
> apparently can compile C++17
> 

I suspect your programmer may not fully understand what he or she is
doing.

I created a sid chroot, then did the following:

apt install -y build-essential less vim libgtk2.0-dev mercurial
hg clone http://hg.code.sf.net/p/scintilla/code scintilla
hg clone http://hg.code.sf.net/p/scintilla/scite scintilla-scite
cd scintilla/gtk/
make
cd ../../scintilla-scite/gtk/
make

After that, I copied scintilla-scite/bin/SciTE into the root directory
(/) in a wheezy and a jessie chroot.  Here is what I got from the wheezy
chroot:

sudo chroot ./wheezy-chroot/ ./SciTE
./SciTE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./SciTE)
./SciTE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ./SciTE)
./SciTE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./SciTE)
./SciTE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./SciTE)
./SciTE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./SciTE)

>From jessie:

sudo chroot ./jessie-chroot/ ./SciTE
./SciTE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./SciTE)
./SciTE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./SciTE)

So, those would be the libstdc++ problem.  I then made this change in
scintilla-scite:

diff -r 6e7614763bad gtk/makefile
--- a/gtk/makefile      Tue Dec 04 08:45:32 2018 +1100
+++ b/gtk/makefile      Fri Dec 07 02:38:46 2018 +0000
@@ -126,7 +126,7 @@
 MatchMarker.o StringHelpers.o \
 PropSetFile.o MultiplexExtension.o DirectorExtension.o SciTEProps.o StyleDefinition.o StyleWriter.o Utf8_16.o \
        JobQueue.o GTKMutex.o IFaceTable.o $(COMPLIB) $(LUA_OBJS)
-       $(CXX) `$(CONFIGTHREADS)` -rdynamic -Wl,--as-needed -Wl,--version-script $(srcdir)/lua.vers -DGTK $^ -o $@ $(CONFIGLIB) $(LIBDL) $(LDLIBS) -lm -lstdc++
+       $(CXX) `$(CONFIGTHREADS)` -rdynamic -Wl,--as-needed -Wl,--version-script $(srcdir)/lua.vers -DGTK $^ -o $@ $(CONFIGLIB) $(LIBDL) $(LDLIBS) -lm -static-libstdc++
 
 # Automatically generate header dependencies with "make deps"
 include deps.mak

As you can see, I swapped '-lstdc++' for '-static-libstdc++'.

Then I removed scintilla-scite/bin/SciTE and ran make again in
scintilla-scite/gtk and copied the new scintilla-scite/bin/SciTE into
the same wheezy and jessie chroots.

Now, in wheezy I get this:

sudo chroot ./wheezy-chroot/ ./SciTE
./SciTE: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by ./SciTE)
./SciTE: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./SciTE)

That makes sense since the glibc in wheezy is version 2.13.  However,
when I ran it in jessie, the editor window appeared.

All of this took roughly 45 minutes for me to diagnose, with most of
that time spent waiting on packages to download over my slow connection
to set up the chroots.

Let me know if you have any questions.

Regards,

-Roberto
-- 
Roberto C. Sánchez


Reply to: