Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: 傅继晗 <fjhhz1997@gmail.com>
To: gdb-patches <gdb-patches@sourceware.org>
Cc: Christian Biesinger <cbiesinger@google.com>
Subject: Re: [PATCH] Modify python-config.py or replace it with official one to support python3
Date: Wed, 22 Jan 2020 02:16:00 -0000	[thread overview]
Message-ID: <CAPwS6qO0bebT3oz-haEEdQ=z8sNheEysbaberg-3xktcGofbvA@mail.gmail.com> (raw)
In-Reply-To: <CAPwS6qMXSq_Od2ZZVFSb7uWsL7pPkODQ0A+JsPPKRaSGGMisAA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 9449 bytes --]

fix some typo.

--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -834,29 +834,35 @@ else
     esac
   esac

+  python_config=
   if test "${python_prog}" != missing; then
+    AC_CHECK_FILE([${python_prog}-config],[python_config="${python_prog}-config"],[python_config="${python_prog}
${srcdir}/python/python-config.py"])
     # We have a python program to use, but it may be too old.
     # Don't flag an error for --with-python=auto (the default).
     have_python_config=yes
-    python_includes=`${python_prog} ${srcdir}/python/python-config.py
--includes`
+    python_includes=`${python_config} --includes`
     if test $? != 0; then
       have_python_config=failed
       if test "${with_python}" != auto; then
-        AC_ERROR(failure running python-config --includes)
+        AC_ERROR(failure running ${python_config} --includes)
       fi
     fi
-    python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
+# For python 3.8+ there must be a "--embed" flag to show lib version.
+    python_libs=`${python_config} --ldflags --embed`
     if test $? != 0; then
-      have_python_config=failed
-      if test "${with_python}" != auto; then
-        AC_ERROR(failure running python-config --ldflags)
+      python_libs=`${python_config} --ldflags`
+      if test $? != 0; then
+        have_python_config=failed
+        if test "${with_python}" != auto; then
+          AC_ERROR(failure running ${python_config} --ldflags)
+        fi
       fi
     fi
-    python_prefix=`${python_prog} ${srcdir}/python/python-config.py
--exec-prefix`
+    python_prefix=`${python_config} --exec-prefix`
     if test $? != 0; then
       have_python_config=failed
       if test "${with_python}" != auto; then
-        AC_ERROR(failure running python-config --exec-prefix)
+        AC_ERROR(failure running ${python_config} --exec-prefix)
       fi
     fi
   else


傅继晗 <fjhhz1997@gmail.com> 于2020年1月22日周三 上午9:56写道:
>
> now I improve the patch to be compatible with python2.7 python 3.7 and
> python3.8+
>
>
> index gdb/configure.ac
> ============================
>
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -834,29 +834,35 @@ else
>      esac
>    esac
>
> +  python_config=
>    if test "${python_prog}" != missing; then
> +    AC_CHECK_FILE([${python_prog}-config],[python_config="${python_prog}-config"],[python_config="${python_prog}
> ${srcdir}/python/python-config.py"])
>      # We have a python program to use, but it may be too old.
>      # Don't flag an error for --with-python=auto (the default).
>      have_python_config=yes
> -    python_includes=`${python_prog} ${srcdir}/python/python-config.py
> --includes`
> +    python_includes=`${python_config} --includes`
>      if test $? != 0; then
>        have_python_config=failed
>        if test "${with_python}" != auto; then
> -        AC_ERROR(failure running python-config --includes)
> +        AC_ERROR(failure running ${python-config} --includes)
>        fi
>      fi
> -    python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
> +# For python 3.8+ there must be a "--embed" flag to show lib version.
> +    python_libs=`${python_config} --ldflags --embed`
>      if test $? != 0; then
> -      have_python_config=failed
> -      if test "${with_python}" != auto; then
> -        AC_ERROR(failure running python-config --ldflags)
> +      python_libs=`${python_config} --ldflags`
> +      if test $? != 0; then
> +        have_python_config=failed
> +        if test "${with_python}" != auto; then
> +          AC_ERROR(failure running ${python-config} --ldflags)
> +        fi
>        fi
>      fi
> -    python_prefix=`${python_prog} ${srcdir}/python/python-config.py
> --exec-prefix`
> +    python_prefix=`${python_config} --exec-prefix`
>      if test $? != 0; then
>        have_python_config=failed
>        if test "${with_python}" != auto; then
> -        AC_ERROR(failure running python-config --exec-prefix)
> +        AC_ERROR(failure running ${python-config} --exec-prefix)
>        fi
>      fi
>    else
>
> 傅继晗 <fjhhz1997@gmail.com> 于2020年1月21日周二 下午7:41写道:
> >
> > ok.that is,and here is my patch.
> > Tested with autoconf 2.69 and python3.8.
> >
> >
> > index:gdb/configure.ac
> > ============================
> > --- a/gdb/configure.ac
> > +++ b/gdb/configure.ac
> > @@ -834,29 +834,31 @@
> >      esac
> >    esac
> >
> > +  python_config=
> >    if test "${python_prog}" != missing; then
> > +    AC_CHECK_FILE([${python_prog}-config],[python_config="${python_prog}-config
> > --embed"],[python_config="${python_prog}
> > ${srcdir}/python/python-config.py"])
> >      # We have a python program to use, but it may be too old.
> >      # Don't flag an error for --with-python=auto (the default).
> >      have_python_config=yes
> > -    python_includes=`${python_prog} ${srcdir}/python/python-config.py
> > --includes`
> > +    python_includes=`${python_config} --includes`
> >      if test $? != 0; then
> >        have_python_config=failed
> >        if test "${with_python}" != auto; then
> > -        AC_ERROR(failure running python-config --includes)
> > +        AC_ERROR(failure running ${python_config} --includes)
> >        fi
> >      fi
> > -    python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
> > +    python_libs=`${python_config} --ldflags`
> >      if test $? != 0; then
> >        have_python_config=failed
> >        if test "${with_python}" != auto; then
> > -        AC_ERROR(failure running python-config --ldflags)
> > +        AC_ERROR(failure running ${python_config} --ldflags)
> >        fi
> >      fi
> > -    python_prefix=`${python_prog} ${srcdir}/python/python-config.py
> > --exec-prefix`
> > +    python_prefix=`${python_config} --exec-prefix`
> >      if test $? != 0; then
> >        have_python_config=failed
> >        if test "${with_python}" != auto; then
> > -        AC_ERROR(failure running python-config --exec-prefix)
> > +        AC_ERROR(failure running ${python_config} --exec-prefix)
> >        fi
> >      fi
> >    else
> >
> > Christian Biesinger <cbiesinger@google.com> 于2020年1月21日周二 上午8:30写道:
> > >
> > > On Mon, Jan 20, 2020 at 8:05 AM 傅继晗 <fjhhz1997@gmail.com> wrote:
> > > >
> > > > The formal patch only works on OSX.And here is the patch to make the
> > > > crossbuild available.
> > >
> > > configure is a generated file. Please edit configure.ac instead, and
> > > run autoconf to regenerate configure. Make sure to use autoconf
> > > version 2.69.
> > >
> > > Christian
> > >
> > > > diff --git a/gdb/configure-origin b/gdb/configure
> > > > --- a/gdb/configure-origin
> > > > +++ b/gdb/configure
> > > > @@ -9858,21 +9858,21 @@ fi
> > > > # We have a python program to use, but it may be too old.
> > > > # Don't flag an error for --with-python=auto (the default).
> > > > have_python_config=yes
> > > > - python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
> > > > + python_includes=`${python_prog}-config --includes`
> > > > if test $? != 0; then
> > > > have_python_config=failed
> > > > if test "${with_python}" != auto; then
> > > > as_fn_error "failure running python-config --includes" "$LINENO" 5
> > > > fi
> > > > fi
> > > > - python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
> > > > + python_libs=`${python_prog}-config --ldflags`
> > > > if test $? != 0; then
> > > > have_python_config=failed
> > > > if test "${with_python}" != auto; then
> > > > as_fn_error "failure running python-config --ldflags" "$LINENO" 5
> > > > fi
> > > > fi
> > > > - python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
> > > > + python_prefix=`${python_prog}-config --exec-prefix`
> > > > if test $? != 0; then
> > > > have_python_config=failed
> > > > if test "${with_python}" != auto; then
> > > >
> > > >
> > > > 傅继晗 <fjhhz1997@gmail.com> 于2020年1月20日周一 下午8:02写道:
> > > > >
> > > > > By default,gdb is compiled with python2 script support on OSX. However,when compiled with arg "--with-python=/path/to/python3 " to support python3 ,some error occurred that seems python3 is not recognized.
> > > > > The reason is that the python-config.py is not the same as the official one.BTW,this issue was once referred at 20 Dec 2012 mail :https://sourceware.org/ml/gdb-patches/2012-12/msg00751.html.
> > > > > Somehow,It is not committed(maybe the maintainer forgot it due to the happy chrismas holiday).
> > > > > And here is my patch:
> > > > >
> > > > > index: b/gdb/python/python-config.py
> > > > > ===============================
> > > > > --- a/gdb/python/python-config.py
> > > > > +++ b/gdb/python/python-config.py
> > > > > @@ -72,7 +72,7 @@ for opt in opt_flags:
> > > > >                      libs.insert(0, '-L' + getvar('LIBPL'))
> > > > >                  elif os.name == 'nt':
> > > > >                      libs.insert(0, '-L' + sysconfig.PREFIX + '/libs')
> > > > > -            if getvar('LINKFORSHARED') is not None:
> > > > > +            if not getvar('PYTHONFRAMEWORK'):
> > > > >                  libs.extend(getvar('LINKFORSHARED').split())
> > > > >          print (to_unix_path(' '.join(libs)))

[-- Attachment #2: python-config.patch --]
[-- Type: application/octet-stream, Size: 1863 bytes --]

--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -834,29 +834,35 @@ else
     esac
   esac
 
+  python_config=
   if test "${python_prog}" != missing; then
+    AC_CHECK_FILE([${python_prog}-config],[python_config="${python_prog}-config"],[python_config="${python_prog} ${srcdir}/python/python-config.py"])
     # We have a python program to use, but it may be too old.
     # Don't flag an error for --with-python=auto (the default).
     have_python_config=yes
-    python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
+    python_includes=`${python_config} --includes`
     if test $? != 0; then
       have_python_config=failed
       if test "${with_python}" != auto; then
-        AC_ERROR(failure running python-config --includes)
+        AC_ERROR(failure running ${python_config} --includes)
       fi
     fi
-    python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
+# For python 3.8+ there must be a "--embed" flag to show lib version.
+    python_libs=`${python_config} --ldflags --embed`
     if test $? != 0; then
-      have_python_config=failed
-      if test "${with_python}" != auto; then
-        AC_ERROR(failure running python-config --ldflags)
+      python_libs=`${python_config} --ldflags`
+      if test $? != 0; then
+        have_python_config=failed
+        if test "${with_python}" != auto; then
+          AC_ERROR(failure running ${python_config} --ldflags)
+        fi
       fi
     fi
-    python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
+    python_prefix=`${python_config} --exec-prefix`
     if test $? != 0; then
       have_python_config=failed
       if test "${with_python}" != auto; then
-        AC_ERROR(failure running python-config --exec-prefix)
+        AC_ERROR(failure running ${python_config} --exec-prefix)
       fi
     fi
   else

  reply	other threads:[~2020-01-22  2:04 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-20 14:05 傅继晗
2020-01-20 15:05 ` 傅继晗
2020-01-21  1:31   ` Christian Biesinger via gdb-patches
     [not found]     ` <CAPwS6qOtjH-g88iy7DmUoMyUO1F7O+vZQWoWNZfzZoVkSJ=qtQ@mail.gmail.com>
2020-01-22  2:04       ` 傅继晗
2020-01-22  2:16         ` 傅继晗 [this message]
2020-01-22  6:12           ` 傅继晗

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPwS6qO0bebT3oz-haEEdQ=z8sNheEysbaberg-3xktcGofbvA@mail.gmail.com' \
    --to=fjhhz1997@gmail.com \
    --cc=cbiesinger@google.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox