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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.