This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, This defect is marked for GDB-8.0 branching. I have sent the patches earlier and got some review comments, changed the patch accordingly and sent again, but didn't get any feedback. I have uploaded the patch to the defect 21187 as well on bugzilla. Defect: https://sourceware.org/bugzilla/show_bug.cgi?id=21187 Consider this mail as reminder and I am attaching the proposed patch once again. Thanks and Regards, Nitish K Mishra On Tue, Mar 7, 2017 at 5:41 PM, Nitish Kumar Mishra <mishra.nitish.88@gmail.com> wrote: > Hello, > > This patch is for the defect 21187 ( > https://sourceware.org/bugzilla/show_bug.cgi?id=21187 ). I am > attaching the patch to configure.ac file in which I have > provided a configure option "--disable-staticlib" to link libstdc++ > and libgcc library to GCC dynamically. > > > ==== Motivation for the change ==== > > When linked statically with libstdc++ and libgcc on AIX platform, GDB > is facing broken exception handling issues. > Following is the error output when GDB is linked statically with > mentioned libraries: (GDB-7.12.1, built with GCC-6.2, 64 bit mode, AIX > platform): > > # ./gdb > GNU gdb (GDB) 7.12.1 > Copyright (C) 2017 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "powerpc64-ibm-aix7.2.0.0". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>. > Find the GDB manual and other documentation resources online at: > <http://www.gnu.org/software/gdb/documentation/>. > For help, type "help". > Type "apropos word" to search for commands related to "word". > (gdb) kill > terminate called after throwing an instance of 'gdb_exception_RETURN_MASK_ERROR' > IOT/Abort trap (core dumped) > > > ==== Testing ==== > > I have manually built and tested GDB-7.12.1 with this patch on AIX-7.2 > and Ubuntu-16.04 with GCC-6.2 and GCC-4.8.5. On both operating system > GDB is working fine > with the patch. > > Output on AIX-7.2: > > # ./gdb > GNU gdb (GDB) 7.12.1 > Copyright (C) 2017 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "powerpc64-ibm-aix7.2.0.0". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>. > Find the GDB manual and other documentation resources online at: > <http://www.gnu.org/software/gdb/documentation/>. > For help, type "help". > Type "apropos word" to search for commands related to "word". > (gdb) kill > The program is not being run. > > > > ==== Context ==== > > The issue came in picture in November and have discussed here: > https://sourceware.org/ml/gdb/2017-02/msg00047.html > I have tested the issue on GDB-7.12.1 built with GCC-4.8.5, both 32 > and 64 bit object mode on AIX platform. The 64 bit mode does NOT have > this issue, but 32 bit mode has broken exception handling. > The issue is same with GDB-7.12.1 built with GCC-6.2, 64 bit mode on > AIX platform. GCC is not able to handle the exceptions properly and > GDB is leading to core dump. > On Ubuntu-16.04, and other platforms, there is no such issue. I > believe this issue is specifically for AIX. > > Please find the attachment for patch and ChangeLog. > > > Thanks and Regards, > Nitish K Mishra
Attachment:
ChangeLog.txt
Description: Text document
diff --git a/configure.ac b/configure.ac index 3ec86c1..c400251 100644 --- a/configure.ac +++ b/configure.ac @@ -471,6 +471,13 @@ ENABLE_LIBSTDCXX=default) noconfigdirs="$noconfigdirs target-libstdc++-v3" fi] +AC_ARG_ENABLE(staticlib, +AS_HELP_STRING([--disable-staticlib], + [do not link libstdc++ and libgcc library statically, default is static linking]), +ENABLE_STATICLIB=$enableval, +ENABLE_STATICLIB=yes) + + # If this is accelerator compiler and its target is intelmic we enable # target liboffloadmic by default. If this is compiler with offloading # for intelmic we enable host liboffloadmic by default. Otherwise @@ -1406,9 +1413,10 @@ if test -z "$LD"; then fi fi -# Check whether -static-libstdc++ -static-libgcc is supported. +# If ENABLE_STATICLIB is set for configuration, check whether -static-libstdc++ -static-libgcc is supported have_static_libs=no -if test "$GCC" = yes; then +if test "$ENABLE_STATICLIB" = yes; then + if test "$GCC" = yes; then saved_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc" @@ -1424,6 +1432,7 @@ int main() {}], AC_LANG_POP(C++) LDFLAGS="$saved_LDFLAGS" + fi fi ACX_PROG_GNAT @@ -1741,6 +1750,9 @@ AC_ARG_WITH(stage1-ldflags, # 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]) AC_SUBST(stage1_ldflags) @@ -1768,8 +1780,11 @@ AC_ARG_WITH(boot-ldflags, # 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 "$have_static_libs" = yes; then poststage1_ldflags="-static-libstdc++ -static-libgcc" + else + # If static library linking is disabled. + poststage1_ldflags="" fi]) AC_SUBST(poststage1_ldflags)
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |