Building Parsec dedup workload with parsecmgmt fails - linux

I am trying to build Parsec_3.0 dedup workload on skylake server with gcc (Debian 6.3.0-18+deb9u1) 6.3.0. I managed to build streamcluster and canneal successfully without issues, however with dedup I get the error, when using same command: parsecmgmt -a build -p dedup
ERROR:
installing man1/smime.1
smime.pod around line 272: Expected text after =item, not a number
same with lines: 276, 280, 285, 289
POD document had syntax errors at /usr/bin/pod2man line 70.
make: *** [install_docs] Error 255
Makefile:680: recipe for target 'install_docs' failed
[PARSEC] Error: env PATH=/usr/bin:/home/akhorguani/parsec/parsec-3.0/bin:/usr/lo
cal/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/sbin:/opt/dell/srvadmin/b
in:/usr/local/cuda/bin:/grid5000/code/bin:/home/akhorguani/parsec/parsec-3.0/bin
/usr/bin/make install failed.
In /usr/bin/pod2man line 70 is " print " $files[1]\n" if $verbose; ". But it's predefined file from the host machine so I don't think it would contain errors, most likely I might need to change something in parsec files.
So maybe anyone had faced the same problem and can help to fix it?

As jww mentioned, the error is due to some syntax errors on POD files from the SSL library that parsec uses. I had the same error and managed to build by replacing all instances of =item followed by a number with =item C<Number> in the POD files.
The files you need to modify are on the following folders:
$ folder-where-you-installed-parsec/pkgs/libs/ssl/src/doc/apps
$ folder-where-you-installed-parsec/pkgs/libs/ssl/src/doc/ssl
You can see the changes you need to do in this github gist.
I did the changes by hand but you can probably make a script that reads the files and fixes it for you.
I believe that the issue is platform specific because my colleague built it without any problems with Manjaro linux, while I'm using Ubuntu 18.04.

Eduardo's answer worked for me!
It seems the gist is out of date as ome of pod files have changed in the newer PARSEC version.
sed -i.bak 's/item \([0-9]\+\)/item C<\1>/g' *
The script above carries out needed transformation. Run it from apps and ssl folders

Related

Installation error: editing Linux compile file

I am trying to install a hydrodynamic simulation software on Ubuntu, but I get an error similar to the error mentioned in their documentation. The documentation has a recommended solution to this error, something that I am not aware of how to fix.
Any help is greatly appreciated. Thanks!
As part of the installation, the system must compile some code to work on that machine. The line that starts with "gcc" is a compiler command. You will need to find the "x.sys.Linux.compile" file and add the -fPIC flag to the command that -presumably- is already in that file.
I would use the command
find . | grep x.sys.Linux.compile
to find it and then use vim to modify it, adding that -fPIC flag
Then, retry the installation

Why can't I fix the cygwin1.dll mismatch issue?

I'm trying to execute a .sh script (that wasn't written by me) and I get the following error:
0 [main] echo (5320) C:\Program Files\Git\usr\bin\echo.exe: *** fatal error - cygheap base mismatch detected - 0x180343408/0x180317408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version. The most recent version should
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution. Rebooting is also suggested if you
are unable to find another cygwin DLL.
I tried to follow the instructions in the error but I only have one cygwin1.dll file.
So I tried to execute the following command in a git bash shell:
/c/cygwin/bin/man
and I get:
0 [main] man (11952) C:\cygwin\bin\man.exe: *** fatal error - cygheap
base mismatch detected - 0x180317408/0x180343408. This problem is
probably due to using incompatible versions of the cygwin DLL. Search
for cygwin1.dll using the Windows Start->Find/Search facility and
delete all but the most recent version. The most recent version
should reside in x:\cygwin\bin, where 'x' is the drive on which you have installed the cygwin distribution. Rebooting is also suggested
I already tried to disable ASRL options in the exploit protection panel (as suggested by somebody) and reboot but that didn't fix the problem.
If I write
which -a cygwin1.dll
I get:
/c/cygwin/bin/cygwin1.dll
/c/cygwin/bin/cygwin1.dll
It looks like I have two cygwin1.dll but actually I only have one..
I have been searching for a possible solution since days but nothing seems to work for me.
Any suggestion?
While the error message is mentioning cygwin1.dll, it is misleading as the Git for Windows is using MSYS and the file was renamed msys-2.0.dll
Unfortunately the MSYS team forgot to change the error messages when they imported and modified the Cygwin source:
I encountered the same problem while trying to build a certain C/C++ project from source in the Git Bash Terminal.
Based on the previous answers by #Harry and #matzeri it seems that Git Bash is what is causing this problem. To resolve it I had to disable ASLR for all executables in my Cygwin install folder (Usuall C:\cygwin64) using the command
Get-Item -Path "C:\cygwin64\bin\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages }
I restarted the computer and then switched to using Cygwin Terminal and compiled from there.
NB: Cygwin Terminal comes by default with Cygwin installation
Find all the msys-2.0.dll's on your machine and add the suffix .bkp to them.
Wherever you found them at, copy "C:\Program Files\Git\usr\bin\msys-2.0.dll" to those locations.
Notes:
If you were to copy from C:\msys64\usr\bin\msys-2.0.dll to all other locations, then you lose that nice additional text at the end that shows the branch you're on (master)
Same goes if you just decide to delete all the extra dlls and just add C:\msys64\usr\bin to your path, there must be a dependencies it looks for relative to the directory it normally resides.
Because apparently I skimmed the selected answer and missed the part about msys-2.0.dll, I had to figure this out myself. For future reference:
Run listdlls -r -v -d msys-2.0.dll
Check Base, Path, and Version info for discrepancies.

How to include additional directories when configuring makefiles

I'm trying to compile geany-plugins-1.28. The debugger plugin (the only one I need) gives the error:
debug.c:53:21: fatal error: vte/vte.h: No such file or directory
#include <vte/vte.h>
Clearly it needs to know where this file is located to compile. I found the vte.h file in the src directory of the main program geany-1.28. When running
sudo ./configure cflags=-I/home/pi/Desktop/geany-1.28/src
I get the same error about the missing header later trying to compile the debugger plugin.
I ran
./configure --help
to get all the flag options. The output is here
How do I get this to configure correctly so that it compiles. I need to compile the debugger version 1.28 myself because apt only installs 1.24 which I think has a bug because it crashes when I run my code with the error:
close failed in file object destructor:
sys.execpthook is missing
lost sys.stderr
CFLAGS is case-sensitive environment variable, so you should set it before running configure, not try to pass it as a command line argument. This variant:
$ export CFLAGS=-I/home/pi/Desktop/geany-1.28/src
$ ./configure
leaves CFLAGS set for current shell until you leave it. While this:
$ CFLAGS=-I/home/pi/Desktop/geany-1.28/src ./configure
sets variable only for current command, i.e. configure.
Some other issues:
You do not need sudo to configure and make. It is also unnecessary for make install if you set PREFIX to a path you have privileges to write to.
Does plugin's build system also builds all it's dependencies? If not, you may face linker errors a bit later.
Update:
I have tried to build debugger plugin and got rid of your error. It seems that vte.h coming with Geany is it's intrinsic, while the plugin requires full-featured file from the library. So I just installed vte and vte-devel from repos. Nevertheless, I got some other unrelated errors coming from Glib. I will not continue my attempts to build all this right now. Hope my effort will be helpful at least a little.
As in this answer stated, vte.h is not the file you are looking for. Install libvte(-dev) package on your system and rerun configure.
Just for the record: vte.h on Geany is a dummy to allow Geany to kind of dynamical enable vte or disable it depending on vte is installed on the system or not.

How to compile (minimal static) Node.js (v0.12.1 and v0.12.2) on the RaspberryPi (ARM6) using Raspbian

How to compile Node.js v0.12.1 (and the most recent version, v0.12.2) on the RaspberryPi (ARM6) platform using Raspbian? If I download the source package from the Node.js website (Node.js v0.12.1 or Node.js v0.12.2) and run the ./configure script I'm getting this two errors:
compilation fails with error messages on src/node.cc when I pass the --without-ssl option
compilation is successfull, but when I execute ./node in the out/Release directory I get the error of Illegal instruction
So how to do it right?
Besides: compiling a minimal static file. Researching the web does not lead to much information on this topic. So I tried it out by myself using this configuration command:
./configure --without-npm --without-ssl --without-snapshot --fully-static
The --fully-static option is self explaining and the other options are documented. Please note, that you need to patch src/node.cc if you are using --without-ssl.
Resulting file sizes:
./configure --without-npm --without-snapshot --fully-static around 13 MB (or 13565532 bytes)
with --without-ssl around 10 MB (10403783 bytes)
If someone has ideas to reduce the resulting file size further I would be glad to read them in the comments.
Info: if you are only interested in the solutions, you can omit text which is not written bold.
It took me some days to figure out the problem(s) when compiling Node.js on the RaspberryPi. This might be related to the fact that it takes several hours to compile Node.js on the RaspberryPi. There are two major problems:
1.) The compiling might not fail, but the resulting executeable will complain Illegal instruction if executed. The reason for that is fairly simple: the binary is not compiled exactly for the the right ARM processor of the RaspberryPi and uses some CPU instruction not existing. This problem arises, because of a change of the properties in the file /proc/cpuinfo on Raspbian.
My /proc/cpuinfo file (using 2014-09-09-wheezy-raspbian) looks like:
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 2.00
Features : half thumb fastmult vfp edsp java tls
...
In earlier versions the property Processor contained the string ARMv6-compatible processor rev 7 (v6l). In the file deps/v8/src/base/cpu.cc at line 380+ the Processor field is extracted. But this field contains now only a 0 and will lead to a wrong ARM architecture (v7l is assumed) assumption of the compiler and result in invalid instructions.
To fix this problem: simply go to the Gist I created here and get a fixed cpu.cc file. Replace the old file with this file. It simply reads out the model name field to get the right information.
2.) If you are using --without-ssl you will get the compiler error that SSL2_ENABLE = true; and SSL3_ENABLE = true; not exist. I don't know exactly the source of the error since the two variables SSL2_ENABLE and SSL3_ENABLE are only used in lines 3000 and 3002 in src/node.cc. Furthermore the configuration script options --enable-ssl2 and --enable-ssl3 are not existing (see in src/node.cc lines 2999 and 3001).
To fix this problem: download the node.cc file from my Gist and replace the old file with this file. Or comment out lines 3000 and 3002 by your self.
Another information: cloning the GIT repo of joynet/node will result in even more errors since some files have includes which are not satisfied yet (April 2nd of 2015). So in future times you might consider using the "older" versions v0.12.1 and v0.12.2, because they work. I've only worked with v0.12.1 since v0.12.2 was released today.
I hope this desert of text helps you.

make: *** [install] Error 1

I have a problem with installing old software developed in 1995 for Linux.
My operating system is Cent Os. and I got some errors as below when I tried to follow the program instruction. I still do not know what the problems are....
sometimes the clock skew error messages show up but frequently it does not come up.
Waiting for expert's help
igrf]$ make
make: Warning: File igrf' has modification time 98 s in the future
make:igrf' is up to date.
make: warning: Clock skew detected. Your build may be incomplete.
igrf]$ make install
make: Warning: File igrf' has modification time 94 s in the future
install -c /home/hj/master/mag/bin -m 755 ./igrf
install: omitting directory/home/hj/master/mag/bin'
make: * [install] Error 1
Thanks!!
I installed the old version of libpcap-1.0.0 on Ubuntu 18.04 from the source, but this was not successful, as it does not fit my version of Ubuntu and gives a make error: *** [install] Error 1.
Instead this tar.gz archive i used the usual command in the terminal:
sudo apt install libpcap-dev # the problem is solved
It is possible that there is incompatibility of archives to new versions of Ubuntu.
It is also possible to find missing dependencies, check this:
IMPORTANT: There is enough information about this error; please do not post anything unless there is a specific review!
make install --touch
What can i do to help find dependencies. All of these workarounds are specific to one configuration or another. Therefore, it makes sense to track other issues as a separate bug instead of continuing to use one bug report for each issue. To make sure we focus on bugs that affect testers, Q_A_ asks reporters to feel free to post fixes and commits. The answer was very focused on the lack of specific dependencies. It will automatically collect and attach updated debug information to your report. Please add them for the feisty to help muffle the compilation issue. Maybe even backport fixes for the dapper and edgy ones?
Initially when compiling mongoose i used the helper:
make --touch
и был вывод:
touch vc98
touch vc2017
touch mingw
touch mingw++
touch linux
touch fuzzer
touch fuzz
Then i installed the missing dependencies:
sudo apt install fuzz libfuzzer-10-dev ocaml-mingw-w64-x86-64 vc-dev
...and still not all, then i had to use install (using reportdependencies the current behavior is unexpected and unsatisfactory):
I have output for mongoose:
touch linux-libs
touch install
Reportdependencies doesn't handle this very well.
In this case, linux-libs (install is omitted) points to some missing libraries. And this:
sudo apt install liblinux-pid-perl
I had an equivalent problem in the past. It is tied to the timestamps of (some) files. You should try to use the command "touch" on the concerned files. This will update the time stamps of those files.
I hope this will make the trick.

Resources