Define a macro for OpenMPI 1.3 - autoconf

I am trying out very old version of OpenMPI 1.3.
I could run autogen.sh to generate configure. But while running make I have following error:
In file included from event.c:37:0:
../../opal/event/compat/sys/_time.h:47:8: error: redefinition of 'struct timeval'
struct timeval {
^
In file included from /usr/include/x86_64-linux-gnu/sys/select.h:45:0,
from /usr/include/x86_64-linux-gnu/sys/types.h:219,
from /usr/include/stdlib.h:314,
from ../../opal/include/opal_config_bottom.h:372,
from ../../opal/include/opal_config.h:1341,
from event.c:28:
/usr/include/x86_64-linux-gnu/bits/time.h:30:8: note: originally defined here
struct timeval
^
In file included from event.c:37:0:
../../opal/event/compat/sys/_time.h:55:8: error: redefinition of 'struct timespec'
struct timespec {
^
In file included from /usr/include/x86_64-linux-gnu/sys/select.h:43:0,
from /usr/include/x86_64-linux-gnu/sys/types.h:219,
from /usr/include/stdlib.h:314,
from ../../opal/include/opal_config_bottom.h:372,
from ../../opal/include/opal_config.h:1341,
from event.c:28:
/usr/include/time.h:120:8: note: originally defined here
struct timespec
^
I check the file which includes the header _time.h with ack. For instance the file opal/event/event.c includes that header. It has the following lines:
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#else
#include <sys/_time.h>
#endif
So it looks like I need to define the macro HAVE_SYS_TIME_H throughout the whole project to migrate the issue. How to do that?
UPDATE: I just notice that sys/time.h exits in /usr/include/linux/time.h. Does sys map to linux dir?
PS: Running autoreconf -i has the following error:
$ autoreconf -i
aclocal: error: acinclude.m4:111: file 'config/mca_no_configure_components.m4' does not exist
autoreconf: aclocal failed with exit status: 1
I created some missing files and reran autoreconf -i, I then got following error:
$ autoreconf -i
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
sh: 1: config/ompi_get_version.sh: not found
configure.ac:934: error: Could not find project list - rerun autogen.sh without -l
config/ompi_mca.m4:37: OMPI_MCA is expanded from...
configure.ac:934: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal: error: echo failed with exit status: 1
autoreconf: aclocal failed with exit status: 1
So I think autogen.sh is a must.
PS2: I tried ./configure CPPFLAGS=-I/usr/include/ CFLAGS=-I/usr/include/. The redefinition error remains.

Related

llvm/Support/TargetRegistry.h: No such file or directory

I have this error when I make project in WSL(Ubuntu 20.04). And I have installed LLVM and Clang.Hou should I do?
Kconfig Makefile README.md build configs include resource scripts src tools
why#YOGA:~/ics2021/nemu$ make
+ CXX src/utils/disasm.cc
src/utils/disasm.cc:5:10: fatal error: llvm/Support/TargetRegistry.h: No such file or directory
5 | #include "llvm/Support/TargetRegistry.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/why/ics2021/nemu/scripts/build.mk:40: /home/why/ics2021/nemu/build/obj-riscv32-nemu-interpreter/src/utils/disasm.o] Error 1```
Actually, It's part of the NJU ICS Course project, and the right path should be #include "llvm/MC/TargetRegistry.h". For llvm-11, the file is in "llvm/Support/TargetRegistry.h". But for llvm-14, it's in "llvm/MC/TargetRegistry.h". You should check where the TargetRegistry.h is. For me with Ubuntu, the file is at /usr/include/llvm/MC/.
to continue the pa0, just install llvm11 by apt-get install llvm-11 then follow the PA0 Guide to change the nemu/src/utils/filelist.mk

Cygwin -- installing `tcl-devel` packages does not provide header files

I have some makefile that is used to compile a program. During compilation I get an error:
In file included from kernel/driver.cc:20:
./kernel/yosys.h:81:12: fatal error: tcl.h: No such file or directory
81 | # include <tcl.h>
| ^~~~~~~
compilation terminated.
make: *** [Makefile:696: kernel/driver.o] Error 1
Then I rerun Cygwin setup application and install new package tcl-devel. I restart the Cygwin terminal and try again. The same error pops up. I don't understand! Why aren't headers found?
My tcl and tcl-devel are both of version 8.6.11-1.

npm install java fatal error: 'jni.h' file not found #include <jni.h>

I am trying to install java node package:
npm install java
And I am getting following error:
CXX(target) Release/obj.target/nodejavabridge_bindings/src/java.o
In file included from ../src/java.cpp:1:
../src/java.h:7:10: fatal error: 'jni.h' file not found
#include <jni.h>
^~~~~~~
1 error generated.
I have Java home path in .bash_profile as:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8);
// /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
I am on Big Sur Mac. I did check the folder /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/include/darwin
and it does have have jni.h file.

Swift on Linux: -static-stdlib cannot find -lFoundation

I am trying to build a command line tool on linux that uses Foundation.
But I run into an error, for that I can not find a solution:
swiftc -static-stdlib Sources/main.swift Sources/array.swift Sources/check.swift
/usr/bin/ld.gold: error: cannot find -lFoundation
/tmp/main-3a78a1.o:/tmp/main-3a78a1.o:function main: error: undefined reference to '_TMV10Foundation12CharacterSet'
/tmp/main-3a78a1.o:/tmp/main-3a78a1.o:function main: error: undefined reference to '_TWPV10Foundation12CharacterSets10SetAlgebraS_'
/tmp/main-3a78a1.o:/tmp/main-3a78a1.o:function main: error: undefined reference to '_TFE10FoundationSS10componentsfT11separatedByVS_12CharacterSet_GSaSS_'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Does somebody know how to build a swift project static?

problems with libkdtree++ (kdtree)

I am a student trying to use kdtree with libkdtree++ on linux 86*64. ./configure goes smooth, though sudo make install fails
cd . && /bin/sh /home/preetigupta25/kdtree-project/nvmd-libkdtree-7bb7e83/missing --run aclocal-1.10
/home/preetigupta25/kdtree-project/nvmd-libkdtree-7bb7e83/missing: line 54: aclocal-1.10: command not found
WARNING: `aclocal-1.10' is missing on your system.
/home/preetigupta25/kdtree-project/nvmd-libkdtree-7bb7e83/missing: line 54: automake-1.10: command not found
WARNING: `automake-1.10' is missing on your system.
cd . && /bin/sh /home/preetigupta25/kdtree-project/nvmd-libkdtree-7bb7e83/missing --run autoconf
configure.ac:10: error: possibly undefined macro: AM_INIT_AUTOMAKE
make: *** [configure] Error 1
but when I run it again it gives a different problem
[preetigupta25#dhalsim nvmd-libkdtree-7bb7e83]$ sudo make install
[sudo] password for preetigupta25:
/bin/sh ./config.status --recheck
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion
./configure: line 2082: syntax error near unexpected token `-Wall'
./configure: line 2082: `AM_INIT_AUTOMAKE(-Wall -Werror)'
make: *** [config.status] Error 2
Most likely you will have a more recent automake version - 1.11 I guess.
You will have to change that in configure:
am__api_version='1.11'
You have to do it before you invoke configure the first time.

Resources