main/python3: upgrade to 3.6.2, optimize build, cleanup#1775
main/python3: upgrade to 3.6.2, optimize build, cleanup#1775scadu wants to merge 2 commits intoalpinelinux:masterfrom
Conversation
|
I can confirm this solves our chroot build/host type issue. The optimisations are indeed a very good idea, but see docker-library/python#160. When I applied this to our aforementioned PowerPC builder, I had some very noteworthy results:
At this point I was having major Gentoo flashbacks and gave up. 😉 Maybe --enable-optimizations is not stable on PowerPC or maybe it is incompatible with GCC 6.3.0. Not sure how to tell, and not sure I want to spend the machine cycles and wall time on debugging it at this time. But do feel free to try and figure it out, if you want to, because it is a nice thing to have. |
|
The first three "problems" are the result of enabled flags. That's how it works and it's explained in linked docker-library issue.
If it comes to the last one: I'm afraid I have no access to any ppc machine, and even so debugging this would be a magic. We could omit those flags on ppc till we figure it out. Thanks.
…On June 27, 2017 10:10:24 AM GMT+02:00, "A. Wilcox" ***@***.***> wrote:
I can confirm this solves our chroot build/host type issue.
The optimisations are indeed a very good idea, but see
docker-library/python#160. When I applied this to our aforementioned
PowerPC builder, I had some very noteworthy results:
1. The build process took over two hours. Of course, it is a
dual-processor 1.8 GHz Power4, so it is not exactly a shiny new build
cluster.
2. When `abuild` hit the package phase, `make clean` was run by
Python's build system, and the entire thing started over again. I
started the build at 20:58 and by 01:15, it was just wrapping up.
3. Unfortunately while making the apk files, the chroot ran out of disk
space. No worries, I thought; just increase the size of the volume and
run `abuild rootpkg` again. Of course, that started the build over
again, since Python did `make clean` again...
4. And then this happened:
```
/tmp/ccObloFK.ltrans4.ltrans.o: In function
`_GLOBAL__sub_I_65535_0_pgen.c':
<artificial>:(.text.startup+0x24): undefined reference to `__gcov_init'
/usr/lib/gcc/powerpc-foxkit-linux-musl/6.3.0/../../../../powerpc-foxkit-linux-musl/bin/ld:
BFD (GNU Binutils) 2.28 assertion fail elf32-ppc.c:8923
/usr/lib/gcc/powerpc-foxkit-linux-musl/6.3.0/../../../../powerpc-foxkit-linux-musl/bin/ld:
BFD (GNU Binutils) 2.28 assertion fail elf32-ppc.c:8923
/tmp/ccObloFK.ltrans5.ltrans.o:/home/awilcox/aports/main/python3/src/Python-3.6.1/Parser/pgen.c:254:
more undefined references follow
collect2: error: ld returned 1 exit status
make: *** [Makefile:813: Parser/pgen] Error 1
>>> ERROR: python3*: package failed
>>> ERROR: python3: rootpkg failed
```
At this point I was having major Gentoo flashbacks and gave up. :wink:
Maybe --enable-optimizations is not stable on PowerPC or maybe it is
incompatible with GCC 6.3.0. Not sure how to tell, and not sure I want
to spend the machine cycles and wall time on debugging it at this time.
But do feel free to try and figure out, if you want, because it is a
good thing to do.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
#1775 (comment)
|
|
Maybe we should apply |
|
LTO works fine on PowerPC. Can't speak for any other architecture, bootstrapping takes a while. |
| --with-system-expat \ | ||
| --with-system-ffi \ | ||
| --with-threads \ | ||
| --with-ensurepip=install \ |
There was a problem hiding this comment.
There was a problem hiding this comment.
Looks like I forgot to remove this line once I finished playing with APKBUILD.
There was a problem hiding this comment.
i think the entire commit can be squashed with the previous
|
3.6.2 build with |
| --build=$CBUILD \ | ||
| --host=$CHOST \ | ||
| --prefix=/usr \ | ||
| --disable-rpath \ |
There was a problem hiding this comment.
why was --disable-rpath removed?
There was a problem hiding this comment.
Shouldn't be included in the commit. Restored.
| --with-system-expat \ | ||
| --with-system-ffi \ | ||
| --with-threads \ | ||
| --with-ensurepip=install \ |
There was a problem hiding this comment.
i think the entire commit can be squashed with the previous
| --with-ensurepip=install \ | ||
|
|
||
|
|
||
| make EXTRA_CFLAGS="$CFLAGS" |
There was a problem hiding this comment.
I think the commit should be squashed with the previous (git rebase -i and set this to fixup)
| pkgver=3.6.1 | ||
| pkgver=3.6.2 | ||
| _basever="${pkgver%.*}" | ||
| pkgrel=5 |
There was a problem hiding this comment.
we should set pkgrel=0 when we bump pkgver
ed1b7af to
250b89a
Compare
|
Following tests failed for me and @awilfox Quoting @awilfox
Probably the rest of tests failed due to musl too since it passes on glibc-based distro (e.g. Debian Jessie). There is no distro to compare since Void do not use optimization and they are still on 3.5. |
a1da938 to
204198c
Compare
|
|
||
| ./configure \ | ||
| --prefix=/usr \ | ||
| --prefix=/usr |
There was a problem hiding this comment.
You probably don't want to remove the line continuation here.
|
Merged in fe86583 by @fabled. Thanks for your contribution! (This pull request has been closed automatically by GitHub PR Closer. If you think that it’s not resolved yet, please add a comment.) |
|
I had to remove optimizations due to failure on x86 (probably also aarch64). See commit 3778f5b. |
Spitted into two commits since scadu@dcf6247 which fixes issue reported by @awilfox on IRC:
The second commit scadu@6c482bd actually enables optimization options somehow missed during previous builds.
Travis test will fail here. Unfortunately it requires more time, however the boost is noticeably: 30% speed boost in some parts of the stdlib -- I think it's worth it.