New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
perl-5.29.6 fails to build on Android 8.1 (Oreo) under Termux app environment #16821
Comments
From rich+perl@hyphen-dash-hyphen.infoThe CCTools app mentioned in README.android isn't currently available in The 4 build errors encountered when trying to "make minitest" are for In file included from ./perl.h:5288: The Android C library has an apparently dummy definition for 'nl_item': <langinfo.h> nl_langinfo/nl_langinfo_l functions entered Android's libc in And the libandroid-support package (installed by default) attempts to I'm new to troubleshooting the build process - and building on Android - so (kwh did suggest trying to build without locales (IIRC) on IRC before Any suggestions gratefully received. Summary of my perl5 (revision 5 version 29 subversion 6) configuration: Platform: Environment: LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib |
From @jkeenanOn Mon, 21 Jan 2019 01:32:25 GMT, rich+perl@hyphen-dash-hyphen.info wrote:
Do you have any information as to whether any production version of perl (e.g., perl-5.28.0) built on this platform? If we knew that, we could at least distinguish between a regression and a "this has never been attempted before". (I suspect the latter. There were a few attempts to build on Android in 2014. Go to http://perl5.test-smoke.org/search and look for Android in the OS drop-down.) Thank you very much. -- |
The RT System itself - Status changed from 'new' to 'open' |
From @tonycozOn Sun, 20 Jan 2019 17:32:25 -0800, rich+perl@hyphen-dash-hyphen.info wrote:
It looks like something is wrong with your build environment. The libandroid-support langinfo.h uses the nl_item type: as does the bionic header: Could you please attach the complete config.sh generated by Configure? Thanks, |
From rich@hyphen-dash-hyphen.infoOn Tue, Jan 22, 2019 at 12:32 AM James E Keenan via RT
perl-5.28.1 doesn't build on this setup (Oreo + Termux) out of the box either.
I'm not aware of any successful native builds under Termux on Oreo. Native builds under CCTools for earlier versions of Android look to Thanks. |
From rich@hyphen-dash-hyphen.infoOn Tue, Jan 22, 2019 at 2:41 AM Tony Cook via RT
config.sh attached. This was generated by following the "Native Builds" instructions in export SYSROOT=/data/data/com.termux/files Thanks. |
From @tonycozOn Tue, Jan 22, 2019 at 10:26:27PM +0000, Richard Leach wrote:
...
It looks like Configure isn't finding your langinfo.h header. There's a couple of options, first, try adding the directory sh Configure -des -Dsysroot=$SYSROOT -Alibpth="/system/lib /vendor/lib" -Dusedevel -Aincpth=/whereever/it/is You may need to add the existing names too: sh Configure -des -Dsysroot=$SYSROOT -Alibpth="/system/lib /vendor/lib" -Dusedevel -Dincpth="/data/data/com.termux/files/usr/lib/clang/7.0.1/include /data/data/com.termux/files/usr/include /whereever/it/is" If langinfo.h is already in one of the those directories, check it's echo '#include <langinfo.h>' >test.c If the file is preprocessable, but adding the directory to incpth sh Configure -des -Dsysroot=$SYSROOT -Alibpth="/system/lib /vendor/lib" -Dusedevel -Di_langinfo Tony |
From rich@hyphen-dash-hyphen.infoOn Tue, Jan 22, 2019 at 10:53 PM Tony Cook <tony@develop-help.com> wrote:
No joy on either of those two, although "make minitest" got further: In file included from locale.c:48: The preprocessor check needed sh Configure -des -Dsysroot=$SYSROOT -Alibpth="/system/lib Is that enough? Or should the path be added to BOTH locincpth and incpth? Many thanks for the help so far. I'll try a full build later this week. |
From @tonycozOn Wed, Jan 23, 2019 at 01:48:32AM +0000, Richard Leach wrote:
That should be enough. Tony |
From rich@hyphen-dash-hyphen.infoOn Wed, Jan 23, 2019 at 2:29 AM Tony Cook <tony@develop-help.com> wrote:
Next problem is that although the miniperl executable does get built, ./miniperl -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh The @INC paths are missing the pwd Thanks, |
From rich@hyphen-dash-hyphen.infoOn Thu, Jan 24, 2019 at 2:33 AM Richard Leach via RT
This problem arises in write_buildcustomize.pl, where an empty string Discussion in https://rt.cpan.org/Ticket/Display.html?id=13851 Modifying the above line to fallback to Cwd::cwd(), as per the Regards, |
From rich@hyphen-dash-hyphen.info0001-If-Cwd-getcwd-returns-an-empty-string-in-write_build.patchFrom 823c3f6e4ad769c7253e1c2d24a2e8b266919ce6 Mon Sep 17 00:00:00 2001
From: Richard Leach <rich+perl@hyphen-dash-hyphen.info>
Date: Tue, 5 Feb 2019 01:40:26 +0000
Subject: [PATCH] If Cwd::getcwd() returns an empty string in
write_buildcustomize.pl - perhaps due to filesystem permissions - try
Cwd::cwd() instead.
---
write_buildcustomize.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/write_buildcustomize.pl b/write_buildcustomize.pl
index e82f931bae..9d28f5776e 100644
--- a/write_buildcustomize.pl
+++ b/write_buildcustomize.pl
@@ -59,7 +59,7 @@ unshift @INC, @toolchain;
require File::Spec::Functions;
require Cwd;
-my $cwd = Cwd::getcwd();
+my $cwd = Cwd::getcwd() || Cwd::cwd();
# lib must be last, as the toolchain modules write themselves into it
# as they build, and it's important that @INC order ensures that the partially
--
2.20.1
|
From rich+perl@hyphen-dash-hyphen.infoOn Tue, Feb 5, 2019 at 2:01 AM Richard Leach
"Modifying the above line to fallback to Cwd::cwd(), as per the That is to say, it addresses the bulk of errors seen at this stage. |
From rich@hyphen-dash-hyphen.infoOn Tue, Feb 5, 2019 at 2:01 AM Richard Leach
Now getting further in the build process with a fresh copy of blead export SYSROOT=/data/data/com.termux/files Current status is: /data/data/com.termux/files/home/PerlSource/perl4/perl/ext/B/../../miniperl I'm not sure which sys/types.h is being looked for. There's one under Any suggestions? Regards, |
From @khwilliamsonOn 4/16/19 1:43 PM, Richard Leach wrote:
Is this ticket closable? |
From rich@hyphen-dash-hyphen.infoOn Fri, Apr 19, 2019 at 7:09 PM Karl Williamson <public@khwilliamson.com> wrote:
Not quite, I'd like to be able to run "make" without any fatal errors Need some help with this failure to build B: /data/data/com.termux/files/home/PerlSource/perl4/perl/ext/B/../../miniperl |
From rich@hyphen-dash-hyphen.infoOn Fri, Apr 19, 2019 at 8:55 PM Richard Leach
This ticket is now closable. \o/ Looks like setting sysroot is unnecessary in this environment. "make" It might also be possible to revert FYI There are only a few test failures: Thanks again to all who assisted! |
@iabyn - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#133787 (status was 'resolved')
Searchable as RT133787$
The text was updated successfully, but these errors were encountered: