-
Notifications
You must be signed in to change notification settings - Fork 857
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 not detected (AC_MSG_ERROR) #12399
Comments
I think the error is related to the What is your environment and which versions of |
I'm trying to cross compile to Android, I have already compiled openmix, libevent, hwloc, and prrte. |
I have seen this kind of thing happen when Autoconf, Automake, and Libtool are not installed into the same $prefix.
Are you building / installing AC, AM, and LT by hand, perchance? Or are these distro-installed AC, AM, and LT packages?
…________________________________
From: hipersayanX ***@***.***>
Sent: Monday, March 11, 2024 10:54 AM
To: open-mpi/ompi ***@***.***>
Cc: Subscribed ***@***.***>
Subject: Re: [open-mpi/ompi] Perl not detected (AC_MSG_ERROR) (Issue #12399)
uname -a
Linux localhost.localdomain 6.6.21-1-lts #1 SMP PREEMPT_DYNAMIC Wed, 06 Mar 2024 16:59:55 +0000 x86_64 GNU/Linux
cat /etc/*release*
DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Arch Linux"
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
libtool (GNU libtool) 2.4.7.4-1ec8f-dirty
autoconf (GNU Autoconf) 2.72
automake (GNU automake) 1.16.5
I'm trying to cross compile to Android, I have already compiled openmix, libevent, hwloc, and prrte.
I was taking the sources from https://www.open-mpi.org/software/ompi/ (and it was compiling fine with many patches), but the automated builds<Martchus/PKGBUILDs#175 (comment)> does not seems to be taking the URL, so I have decided to take the sources from here.
—
Reply to this email directly, view it on GitHub<#12399 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AAEWWZERLRCYNEQHI5L263LYXXASTAVCNFSM6AAAAABEQNE2O2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBYGYZTIMJQGM>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Yes, distro installed. |
I will have a look. |
AC_MSG_WARN and AC_MSG_CHECKING also failing, right now I'm try commenting the conflictive code just for the purpose of bypassing the build, but this is not the right way to do the things for sure. As explained before:
This was the build script that I was using, and it was compiling more or less fine (applying many patches), but the URL seems to be failing on @Martchus side, see android-aarch64-openmpi log. |
Where are those macros defined? |
IIRC I faced a similar issue and the root cause was an undefined macro that has no obvious link with the error message (!). I ended up doing a bisection like thing by removing some content from configure.ac until I found the offending line. |
@ggouaillardet the problem is that the code in configure.ac is a tangle, and I barely understand what's going on there 😆 |
Those macros are defined in Autoconf. When you get error messages like this, it is almost always due to a faulty installation of AC, AM, and/or LT (or they are not integrated properly into each other, such as being installed into different $prefixes, and/or some other way of not having their data / plugin directories not shared with each other properly).
…________________________________
From: hipersayanX ***@***.***>
Sent: Monday, March 11, 2024 11:57 AM
To: open-mpi/ompi ***@***.***>
Cc: Jeff Squyres (jsquyres) ***@***.***>; Mention ***@***.***>
Subject: Re: [open-mpi/ompi] Perl not detected (AC_MSG_ERROR) (Issue #12399)
@ggouaillardet<https://github.com/ggouaillardet> the problem is that the code in configure.ac is a tangle, and I barely understand what's going on there 😆
I tried greping the missing macros, but it does not seems to be defined inside the project.
—
Reply to this email directly, view it on GitHub<#12399 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AAEWWZEJKSYMN4RXZUZTTLDYXXIAHAVCNFSM6AAAAABEQNE2O2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBYG44DGOBTGY>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
these are the installed files by each package:
|
You should probably test out a trivial AC/AM/LT package on your system (i.e., something significantly simpler than Open MPI), and make sure that AC/AM/LT are working. Additionally, can you send the full output from |
Here is the full log: https://gist.github.com/hipersayanX/8303ecc94451cb8fd931b433737c7ec6 |
Thanks for the full log. It didn't appear to show any additional errors.
|
Minimal example and output https://gist.github.com/hipersayanX/6865095414bd7add4c5bc7d03bb8c0cf It seems to be working fine. Also:
Is this really necessary for this? because I don't think it much related to this the problem. |
Can you add Libtool into that minimal example? AC+AM is not quite the same thing as AC+AM+LT. I'm not saying that Open MPI isn't at fault, but it would be surprising since this isn't failing anywhere else. Hence, more detail from you would be good. E.g., data that is related to this problem is the version of Open MPI that you're using, how you're obtaining it, the git hashes if you're obtaining from git, ... etc. Please provide all relevant information, otherwise, it's difficult to help you. |
I took the example from here, I don't have experience using AC+AM+LT, so I can't provide a better test because I don't know how to use it.
I'm downloading this one: https://github.com/open-mpi/ompi/releases/tag/v5.0.2 |
FWIW, you should not use the tarballs from GitHub but instead download the official ones from www.open-mpi.org. |
Tried, same result
Yeah, at the end I have reverted back the script, but still think its weird why its not working in my system. Also tried executing in bash (I was using zsh), same result. Also tried executing the failing command
same result, I don't know what could be the problem 😕 |
Here is a simple
and then
That strongly suggests the issue is specific to your environment. |
@hipersayanX Try this example: #!/bin/bash
set -euxo pipefail
rm -rf example-1
mkdir -p example-1
cd example-1
cat << EOF > configure.ac
AC_INIT([hello], [1.0])
AC_CONFIG_SRCDIR([hello.c])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AM_PROG_AR
LT_INIT
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF
cat << EOF > Makefile.am
bin_PROGRAMS = hello
hello_SOURCES = main.c
hello_LDADD = libhello.la
lib_LTLIBRARIES = libhello.la
libhello_la_SOURCES = hello.c
EOF
cat << EOF > main.c
void hello(void);
int main(int argc, char** argv) {
hello();
return 0;
}
EOF
cat <<EOF > hello.c
#include <stdio.h>
void hello(void) {
printf("Hello, world!\n");
}
EOF
autoreconf --verbose --install --force
./configure
make
./hello
make distcheck |
@ggouaillardet not the same source, try with:
|
It seems to be working fine.
|
Tarballs from GitHub are automatically generated and should not be used. |
In particular, the problem with the GitHub tarballs is that they are missing the submodules used by OMPI. This always leads to the macro errors you report. I've had identical reports at times on my projects, and invariably it turns out that they used the GitHub tarball instead of the official one. You really need to avoid the GitHub tarballs. |
I think @rhc54 hit the nail on the head:
I forgot about the issue of those tarballs not including the Git submodules. That will definitely be a problem. When I download https://github.com/open-mpi/ompi/archive/refs/tags/v5.0.2.tar.gz and run autogen.pl on it, I get:
It's because the Use a properly-bootstrapped, official release tarball, and it should work: https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.2.tar.bz2 |
I just filed #12402 to update the docs to explicitly mention that GitHub.com-generated tarballs are not official releases and will not build properly. |
Well after trying the cloning and initializing the submodules, I have found that config/oac was missing, and autogen.pl successfully passed 😄 |
Yeah I know, but sometimes the official mirror can be blocked (talking in general), and you need to download from another one.
And how about providing the full source package through github releases? many projects do that. |
Your better bet in those circumstances is to use a Git clone and just initialize the submodules prior to building. Using GitHub tarballs is almost always a recipe for trouble.
I do that on my projects, but the negative is that it can cause confusion when people see both mine and the GitHub tarballs both posted there. Sadly, GitHub does not provide a way to disable theirs. |
@jsquyres Perhaps another solution to help identify the problem is to have |
+1 on what @rhc54 said about Github releases. The lengthier explanation is that we were releasing on www.open-mpi.org long before we hosted Open MPI on github.com, and have just kinda kept on doing that. We did also use Github releases for a while, but had both problems that Ralph cited: people would download the Github tarball (and ignore the tarball that we attached to the release), and/or would ask about the difference between the www.open-mpi.org release and the github release. Soooo... we just kinda stopped doing the github releases and kept putting them on www.open-mpi.org The www.open-mpi.org releases actually go through AWS's CDN (via download.open-mpi.org) -- have you ever had a problem with it being blocked for you? @rhc54 I guess we could check in |
Yeah, oddly enough. If I simply download a GitHub tarball and run
So the check for submodule doesn't cause us to exit, even though it reports the error. Not sure how/why that happens, but it clearly happened to this user too. |
I've updated the docs, and made the Git submodule checks stronger in Closing this issue. |
When executing:
I got this error:
Pointing to these lines
But Perl is actually installed:
How can I fix it?
The text was updated successfully, but these errors were encountered: