Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
58844495
Commit
58844495
authored
Jun 30, 2012
by
doko@ubuntu.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Issue #3754: Use readelf instead of ldd for the cross build readline check
parent
f2967c73
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
135 additions
and
6 deletions
+135
-6
Makefile.pre.in
Makefile.pre.in
+1
-0
configure
configure
+111
-0
configure.ac
configure.ac
+10
-0
setup.py
setup.py
+13
-6
No files found.
Makefile.pre.in
View file @
58844495
...
...
@@ -34,6 +34,7 @@ MAINCC= @MAINCC@
LINKCC
=
@LINKCC@
AR
=
@AR@
RANLIB
=
@RANLIB@
READELF
=
@READELF@
SOABI
=
@SOABI@
LDVERSION
=
@LDVERSION@
HGVERSION
=
@HGVERSION@
...
...
configure
View file @
58844495
...
...
@@ -646,6 +646,8 @@ INSTALL_SCRIPT
INSTALL_PROGRAM
HAS_PYTHON
DISABLE_ASDLGEN
ac_ct_READELF
READELF
ARFLAGS
ac_ct_AR
AR
...
...
@@ -5742,6 +5744,115 @@ then
ARFLAGS
=
"rc"
fi
if
test
-n
"
$ac_tool_prefix
"
;
then
for
ac_prog
in
readelf
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set
dummy
$ac_tool_prefix$ac_prog
;
ac_word
=
$2
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: checking for
$ac_word
"
>
&5
$as_echo_n
"checking for
$ac_word
... "
>
&6
;
}
if
${
ac_cv_prog_READELF
+
:
}
false
;
then
:
$as_echo_n
"(cached) "
>
&6
else
if
test
-n
"
$READELF
"
;
then
ac_cv_prog_READELF
=
"
$READELF
"
# Let the user override the test.
else
as_save_IFS
=
$IFS
;
IFS
=
$PATH_SEPARATOR
for
as_dir
in
$PATH
do
IFS
=
$as_save_IFS
test
-z
"
$as_dir
"
&&
as_dir
=
.
for
ac_exec_ext
in
''
$ac_executable_extensions
;
do
if
{
test
-f
"
$as_dir
/
$ac_word$ac_exec_ext
"
&&
$as_test_x
"
$as_dir
/
$ac_word$ac_exec_ext
"
;
}
;
then
ac_cv_prog_READELF
=
"
$ac_tool_prefix$ac_prog
"
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: found
$as_dir
/
$ac_word$ac_exec_ext
"
>
&5
break
2
fi
done
done
IFS
=
$as_save_IFS
fi
fi
READELF
=
$ac_cv_prog_READELF
if
test
-n
"
$READELF
"
;
then
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: result:
$READELF
"
>
&5
$as_echo
"
$READELF
"
>
&6
;
}
else
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: result: no"
>
&5
$as_echo
"no"
>
&6
;
}
fi
test
-n
"
$READELF
"
&&
break
done
fi
if
test
-z
"
$READELF
"
;
then
ac_ct_READELF
=
$READELF
for
ac_prog
in
readelf
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set
dummy
$ac_prog
;
ac_word
=
$2
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: checking for
$ac_word
"
>
&5
$as_echo_n
"checking for
$ac_word
... "
>
&6
;
}
if
${
ac_cv_prog_ac_ct_READELF
+
:
}
false
;
then
:
$as_echo_n
"(cached) "
>
&6
else
if
test
-n
"
$ac_ct_READELF
"
;
then
ac_cv_prog_ac_ct_READELF
=
"
$ac_ct_READELF
"
# Let the user override the test.
else
as_save_IFS
=
$IFS
;
IFS
=
$PATH_SEPARATOR
for
as_dir
in
$PATH
do
IFS
=
$as_save_IFS
test
-z
"
$as_dir
"
&&
as_dir
=
.
for
ac_exec_ext
in
''
$ac_executable_extensions
;
do
if
{
test
-f
"
$as_dir
/
$ac_word$ac_exec_ext
"
&&
$as_test_x
"
$as_dir
/
$ac_word$ac_exec_ext
"
;
}
;
then
ac_cv_prog_ac_ct_READELF
=
"
$ac_prog
"
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: found
$as_dir
/
$ac_word$ac_exec_ext
"
>
&5
break
2
fi
done
done
IFS
=
$as_save_IFS
fi
fi
ac_ct_READELF
=
$ac_cv_prog_ac_ct_READELF
if
test
-n
"
$ac_ct_READELF
"
;
then
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: result:
$ac_ct_READELF
"
>
&5
$as_echo
"
$ac_ct_READELF
"
>
&6
;
}
else
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: result: no"
>
&5
$as_echo
"no"
>
&6
;
}
fi
test
-n
"
$ac_ct_READELF
"
&&
break
done
if
test
"x
$ac_ct_READELF
"
=
x
;
then
READELF
=
":"
else
case
$cross_compiling
:
$ac_tool_warned
in
yes
:
)
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: WARNING: using cross tools not prefixed with host triplet"
>
&5
$as_echo
"
$as_me
: WARNING: using cross tools not prefixed with host triplet"
>
&2
;
}
ac_tool_warned
=
yes
;;
esac
READELF
=
$ac_ct_READELF
fi
fi
if
test
"
$cross_compiling
"
=
yes
;
then
case
"
$READELF
"
in
readelf|:
)
as_fn_error
$?
"readelf for the host is required for cross builds"
"
$LINENO
"
5
;;
esac
fi
DISABLE_ASDLGEN
=
""
# Extract the first word of "python", so it can be a program name with args.
...
...
configure.ac
View file @
58844495
...
...
@@ -926,6 +926,16 @@ then
ARFLAGS="rc"
fi
AC_CHECK_TOOLS([READELF], [readelf], [:])
if test "$cross_compiling" = yes; then
case "$READELF" in
readelf|:)
AC_MSG_ERROR([readelf for the host is required for cross builds])
;;
esac
fi
AC_SUBST(READELF)
AC_SUBST(DISABLE_ASDLGEN)
DISABLE_ASDLGEN=""
AC_CHECK_PROG(HAS_PYTHON, python, found, not-found)
...
...
setup.py
View file @
58844495
...
...
@@ -590,13 +590,20 @@ class PyBuildExt(build_ext):
do_readline
=
self
.
compiler
.
find_library_file
(
lib_dirs
,
'readline'
)
readline_termcap_library
=
""
curses_library
=
""
# Determine if readline is already linked against curses or tinfo.
if
do_readline
and
find_executable
(
'ldd'
):
# Cannot use os.popen here in py3k.
tmpfile
=
os
.
path
.
join
(
self
.
build_temp
,
'readline_termcap_lib'
)
if
not
os
.
path
.
exists
(
self
.
build_temp
):
os
.
makedirs
(
self
.
build_temp
)
# Determine if readline is already linked against curses or tinfo.
if
do_readline
:
if
cross_compiling
:
ret
=
os
.
system
(
"%s -d %s | grep '(NEEDED)' > %s"
\
%
(
sysconfig
.
get_config_var
(
'READELF'
),
do_readline
,
tmpfile
))
elif
find_executable
(
'ldd'
):
ret
=
os
.
system
(
"ldd %s > %s"
%
(
do_readline
,
tmpfile
))
else
:
ret
=
256
if
ret
>>
8
==
0
:
with
open
(
tmpfile
)
as
fp
:
for
ln
in
fp
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment