Re: Issue with Latest GDB on AIX with GCC-6.12
Nitish Kumar Mishra <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CACC+hkjAH1-6cX3R3aF6PdQyXAVdm21R9U3O9LkTFiQiwUg-bw@mail.gmail.com> |
Hi All ! The previous patch file has issues while patching. I mistakenly sent it. I am attaching the updated one. Thanks and Regards Nitish. On Mon, Feb 20, 2017 at 5:07 PM, Nitish Kumar Mishra <[email protected]> wrote: > Hi All ! > The proposed patch is tested on AIX-7.2 and Ubuntu-16.04 and it seems > to be working fine. > > Thanks, > Nitish. > > On Mon, Feb 20, 2017 at 4:55 PM, Nitish Kumar Mishra > <[email protected]> wrote: >> Hi All ! >> >> Please find the patch attachment with this mail. >> Any comments are more than welcome. >> >> Thanks, >> Nitish >> >> On Mon, Feb 20, 2017 at 4:52 PM, Nitish Kumar Mishra >> <[email protected]> wrote: >>> Hi All ! >>> >>> I have created a bug for this issue. The bug id is: 21187. >>> I have created a patch for configure file in which new configure >>> option --enable-staticlib and --disable-staticlib is implemented. >>> By default the linking of GDB with libstdc++ and libgcc will be static. >>> >>> Attching the patch with the mail. >>> >>> On Mon, Feb 13, 2017 at 9:08 PM, Nitish Kumar Mishra >>> <[email protected]> wrote: >>>> Hi David ! >>>> >>>>>Who built GCC 6.1 for you? Is this an IBM build or Bull Freeware? >>>> IBM does not have GCC-6 build yet, and generally Bull's rpm breaks our >>>> environment. I took it from perzl.org. >>>> But now I have tested it with Bull's RPM, static linking still not >>>> working but removing --static-libstdc++ and --static-libgcc >>>> is working for me as well. >>>> Now, I will run the testsuite and will paste the result once it's finished. >>>> >>>> I disabled the static options manually. I don't see any configure >>>> option for disabling the static linking. I tried with one configure >>>> option --disable-libstdcxx, but I dont think it will lead to dynamic >>>> linking. Anyways, for me, using this option --disable-libstdcxx >>>> was giving compilation error, saying, "ld soes not support target". >>>> >>>> Thanks, >>>> Nitish >>>> >>>> >>>> On Mon, Feb 13, 2017 at 8:49 PM, Eli Zaretskii <[email protected]> wrote: >>>>>> From: David Edelsohn <[email protected]> >>>>>> Date: Mon, 13 Feb 2017 10:02:35 -0500 >>>>>> Cc: Nitish Kumar Mishra <[email protected]>, "[email protected]" <[email protected]>, Yao Qi <[email protected]> >>>>>> >>>>>> >> Can we disable -static-libgcc and -static-libstdc++ for AIX? >>>>>> > >>>>>> > Works for me. Those are added by the top level configure. They were >>>>>> > originally added for gcc, we just inherited it. Ideally adding >>>>>> > those would be controllable with a configure option, IMO. >>>>>> >>>>>> We shouldn't disable static-libgcc and static-libstdc++ for GCC. And >>>>>> static would be better. But linking GDB dynamically could be helpful >>>>>> as an interim work-around. >>>>> >>>>> Please let's not do that on MS-Windows at least. Dynamically linking >>>>> against these two libraries has the following 2 adverse effects: >>>>> >>>>> . it requires any site that distributes precompiled Windows binaries >>>>> of GDB to also distribute the full humongous tarball of GCC >>>>> sources (because libgcc runtime exception doesn't cover dynamic >>>>> linking against shared libraries); and >>>>> >>>>> . it opens the gates of the "DLL hell", since there's any number of >>>>> libgcc and libstdc++ DLLs from different versions of GCC floating >>>>> around on any given Windows system with GNU software, and there's >>>>> no practical way to ensure binary compatibility between the one >>>>> found first on PATH and a particular version of GDB one wants to >>>>> run
disable_static_link_aix.patch
(application/octet-stream, 2.1 KB)
--- configure.ORIG 2017-02-21 12:57:12.609299019 +0530
+++ configure 2017-02-21 13:00:09.385643019 +0530
@@ -760,6 +760,7 @@
enable_libada
enable_libssp
enable_libstdcxx
+enable_staticlib
enable_liboffloadmic
enable_static_libjava
enable_bootstrap
@@ -1487,6 +1488,7 @@
--enable-libada build libada directory
--enable-libssp build libssp directory
--disable-libstdcxx do not build libstdc++-v3 directory
+ --disable-staticlib disable static linking of libstdc++ and libgcc
--enable-liboffloadmic=ARG
build liboffloadmic [ARG={no,host,target}]
--enable-static-libjava[=ARG]
@@ -3106,6 +3108,14 @@
ENABLE_LIBSTDCXX=default
fi
+# Check whether --disable-staticlib was given.
+if test "${enable_staticlib+set}" = set; then
+ enableval=$enable_staticlib;
+ ENABLE_STATICLIB=$enableval;
+else
+ ENABLE_STATICLIB=yes;
+fi
+
if test "${ENABLE_LIBSTDCXX}" = "no" ; then
noconfigdirs="$noconfigdirs target-libstdc++-v3"
fi
@@ -5109,9 +5119,11 @@
fi
fi
-# Check whether -static-libstdc++ -static-libgcc is supported.
+
have_static_libs=no
-if test "$GCC" = yes; then
+# If enable_staticlib is set for configuration, check whether -static-libstdc++ -static-libgcc is supported.
+if test "$ENABLE_STATICLIB" = yes; then
+ if test "$GCC" = yes; then
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
@@ -5150,7 +5162,7 @@
LDFLAGS="$saved_LDFLAGS"
fi
-
+fi
@@ -5903,6 +5915,9 @@
# trust that they are doing what they want.
if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then
stage1_ldflags="-static-libstdc++ -static-libgcc"
+ else
+ # If static lib is disabled.
+ stage1_ldflags=""
fi
fi
@@ -5937,8 +5952,10 @@
# In stages 2 and 3, default to linking libstdc++ and libgcc
# statically. But if the user explicitly specified the libraries to
# use, trust that they are doing what they want.
- if test "$poststage1_libs" = ""; then
+ if test "$poststage1_libs" = "" -a $ENABLE_STATICLIB = yes; then
poststage1_ldflags="-static-libstdc++ -static-libgcc"
+ else
+ poststage1_ldflags=""
fi
fi