Blame view

buildroot/buildroot-2016.08.1/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch 3.64 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
  From 4ac038d30ec71b3f223ac7c91613856dd82b6347 Mon Sep 17 00:00:00 2001
  From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  Date: Wed, 23 Dec 2015 11:29:04 +0100
  Subject: [PATCH] Change the install location of _sysconfigdata.py
  
  The _sysconfigdata.py module contains definitions that are needed when
  building Python modules. In cross-compilation mode, when building
  Python extensions for the target, we need to use the _sysconfigdata.py
  of the target Python while executing the host Python.
  
  However until now, the _sysconfigdata.py module was installed in
  build/lib.<arch>-<version> directory, together with a number of
  architecture-specific shared objects, which cannot be used with the
  host Python.
  
  To solve this problem, this patch moves _sysconfigdata.py to a
  separate location, build/sysconfigdata.<arch>-<version>/, and only
  this directory gets added to the PYTHONPATH of the host Python
  interpreter when building Python modules for the target.
  
  Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  ---
   Makefile.pre.in | 12 ++++++++++--
   configure.ac    |  2 +-
   2 files changed, 11 insertions(+), 3 deletions(-)
  
  diff --git a/Makefile.pre.in b/Makefile.pre.in
  index 823def3..4d2a061 100644
  --- a/Makefile.pre.in
  +++ b/Makefile.pre.in
  @@ -585,6 +585,9 @@ pybuilddir.txt: $(BUILDPYTHON)
   		rm -f ./pybuilddir.txt ; \
   		exit 1 ; \
   	fi
  +	echo `cat pybuilddir.txt`/sysconfigdata > pysysconfigdatadir.txt
  +	mkdir -p `cat pysysconfigdatadir.txt`
  +	cp `cat pybuilddir.txt`/_sysconfigdata.py `cat pysysconfigdatadir.txt`
   
   # Build the shared modules
   # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
  @@ -1235,7 +1238,7 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
   		else	true; \
   		fi; \
   	done
  -	@for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \
  +	@for i in $(srcdir)/Lib/*.py ; \
   	do \
   		if test -x $$i; then \
   			$(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
  @@ -1245,6 +1248,11 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
   			echo $(INSTALL_DATA) $$i $(LIBDEST); \
   		fi; \
   	done
  +	$(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
  +		$(DESTDIR)$(LIBDEST)
  +	mkdir -p $(DESTDIR)$(LIBDEST)/sysconfigdata
  +	$(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
  +		$(DESTDIR)$(LIBDEST)/sysconfigdata
   	@for d in $(LIBSUBDIRS); \
   	do \
   		a=$(srcdir)/Lib/$$d; \
  @@ -1580,7 +1588,7 @@ clean: pycremoval
   	find build -name 'fficonfig.h' -exec rm -f {} ';' || true
   	find build -name '*.py' -exec rm -f {} ';' || true
   	find build -name '*.py[co]' -exec rm -f {} ';' || true
  -	-rm -f pybuilddir.txt
  +	-rm -f pybuilddir.txt pysysconfigdatadir.txt
   	-rm -f Lib/lib2to3/*Grammar*.pickle
   	-rm -f Programs/_testembed Programs/_freeze_importlib
   	-rm -rf build
  diff --git a/configure.ac b/configure.ac
  index 694293e..76b70a0 100644
  --- a/configure.ac
  +++ b/configure.ac
  @@ -70,7 +70,7 @@ if test "$cross_compiling" = yes; then
   	    AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
   	fi
           AC_MSG_RESULT($interp)
  -	PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
  +	PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pysysconfigdatadir.txt && echo $(abs_builddir)/`cat pysysconfigdatadir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
       fi
   elif test "$cross_compiling" = maybe; then
       AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
  -- 
  2.6.4