Compiling via Perl Packager including libraries? - perl

I recently compiled a perl script using "pp" (Perl Packager) on an x86 linux box running Manjaro. I had someone test it on their x86 Debian 10 box, but it wouldn't run.
He said that since Libperl.so has a dependence on glibc v2.29. Since his OS release only allows up to a v2.28, that it's preventing it from executing.
Is there a way for me to compile my script with my version of the libraries so it will run on any x86 linux machine?
I ran the following command to compile my code:
pp -o oag1025 oag1025.pl
I tried using some of the options outlined here, but I couldn't get anywhere:
http://perl.mines-albi.fr/perl5.8.5/site_perl/5.8.5/pp.html

Related

C++ wxWidgets: cross compilation from Raspberry Pi 3

I have a C++ application that uses WxWidgets. It compiles perfectly with g++ on my computer.
However I need to run the application on a Raspberry Pi 3. Compiling directly on Raspi takes almost an hour.
So I want to do a cross compilation: compile it on my computer and copy the executable to raspberry.
I tried to follow a tutorial, however the generated file is an "x86-64" file:
http://yasriady.blogspot.com/2015/10/how-to-build-wxwidgets-for-raspberry-pi.html
My computer:
Ubuntu 20.04.2 LTS;
g++ 9.3.0;
wxWidgets v3.1.5.0;
build flags for my computer: CC_FLAGS=-std=c++17 -w -c -rdynamic -W wx-config --cxxflags --libs --gl-libs geos-config --cflags -lgeos -lglut -lGLU -lGL -lm -lGLEW .
Should I re-install wxWidgets for arm? I'm new to cross-compilation
Thank you so much
I already have wxWidgets installed and compiling for x86. Afterwards, I installed wxWidgets for arm-linux following the tutorial.
When I run "make for the examples from the samples folder, the generated file is for x86.
Maybe "make" is compiling using the x86 compiler, not the newly installed arm compiler.
You should be able to cross-compile for RPi without any problems, double check that you've specified the correct --host option and didn't get any errors from configure (if you did, look at config.log to see why).

How can I get Ada GNAT gcc 7.3 for Solaris 11?

We have a Solaris 11 system with gcc 7.3, we need to install the Ada package. On Linux gcc 7 came with the Ada/GNAT as part of the gcc install:
apt install gcc
I visited AdaCore looks like Solaris (SPARC) is not longer on the list. I need to use Ada95 and we want the same compiler on both Linux and Solaris in any case.
pkg install gcc
Only installed various C++ commands and Fortran.
pkg install gcc-ada
And variants like gcc7ada, found nothing to install.
If must, we can rebuild the Ada component of GCC 7, however I haven't found a clear cood-book style "How To ..."for that (yet).
Hopefully you can point me to these items in order of preference to help us get back-on-track.
Solaris 11 gcc-ada package for gcc7/Solaris 11 spark, and the package repository.
An 'alternative' package repository were I can retrieve the GCC Ada tooling.
Pre-build GCC 7 Ada module that we can copy to the right places.
Ready-rolled Build Ada/GNAT project for Solaris and how to download and get start building.
Instructions to download and build gcc-ada with gcc 7 on Solaris (or Unix).
From th epast few days searching about on Gnu Compiler Collection, Oracle, the package manager searches, google and so forth ... It really seems like there's next to no support for CGG Ada on Solaris these days.
I very interested in other solutions beyond that list. For instance, has anyone cross-compiled from Linux to Solaris? Would that work with GDB on the Solaris machine anyway?
Looking forward to your suggestions.
I've successfully built gcc 7.50 (x86_64 native with i386 cross-compiler) with GNAT on OpenIndiana (Hipster 2020/10) using the following procedure.
Download the bootstrap compiler from Dragonlace at http://downloads.dragonlace.net/src/ada-bootstrap.x86_64.solaris.511.tar.bz2
Get the illumos gcc 7.5.0 source from https://github.com/illumos/gcc/tree/il-7_5_0
Put the bootstrap compiler's bin directory at the front of $PATH, replace /usr/bin/gcc /usr/bin/cpp /usr/bin/g++ with symlinks to their counterparts in the bootstrap compiler directory (see note below re g++ and c++)
Make sure you've got gnu-binutils and gmake; then run contrib/download_prerequisites
Configure with
--enable-languages='c ada c++' --build=x86_64-aux-solaris2.11 --enable-threads=posix --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-nls --disable-shared --disable-lto --disable-libstdcxx-pch --enable-multilib --with-gnu-as --with-as=/usr/bin/gas --without-gnu-ld --with-ld=/usr/bin/ld
gmake and then gmake install
NOTES:
This setup should be close enough to Solaris 11 to work. If it doesn't, try using the regular gcc 7.5.0 release rather than the illumos-modified branch.
If you get stuck at a linking stage, try using a gcc ld, but you should definitely try to use the Solaris ld first. The gnu as (gas) makes the build go much more smoothly. I didn't have any problems, but if you get stuck at the end of stage 1 or the beginning of stage 2, try setting $CONFIG_SHELL=/usr/bin/ksh -- I think it has been fixed, but at least with older gcc releases one needed to specify ksh because the built-in sh had some non-POSIX peculiarities that didn't work with some of the components' makefiles
I couldn't get one of the support libs for gnat to compile easily without building gcc c++ and using g++ with a full bootstrap. You might be able to figure it out, but the path of least resistance is likely to build gcc c++ and put the g++ symlink in /usr/bin, which is where the makefile wanted to find it.
Please note that I don't know much about Solaris, but a quick search on Google gave me the website OpenCSW. This website provides the packages gcc4ada and gcc5ada.
It appears that gcc5ada is build using a makefile (as found here, in particular notice line 424). A similar makefile exists for gcc7ada (as found here, in particular notice line 426). However, while it seems that the package "gcc7ada" can be created with the latter makefile, it is not published on the OpenCSW.org website (website is no longer updated?).
You could try to install gcc5ada first and then use this old GCC/GNAT compiler as a bootstrapper for compiling the required version (using the GCC 7 makefile).

Nvm perl error after El Capitan upgrade

I upgraded to El Capitan on two laptops. For some reason on one I am having trouble installing any node versions with nvm (installed through homebrew). If I nvm install v0.12.7 this is what I get:
######################################################################## 100.0%
perl version 5.18.2 can't run /USR/BIN/shasum. Try the alternative(s):
/USR/BIN/shasum5.16 (uses perl 5.16)
/USR/BIN/shasum5.18 (uses perl 5.18)
Run "man perl" for more information about multiple version support in
Mac OS X.
Checksums do not match.
Binary download failed, trying source.
Downloading https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz...
######################################################################## 100.0%
perl version 5.18.2 can't run /USR/BIN/shasum. Try the alternative(s):
/USR/BIN/shasum5.16 (uses perl 5.16)
/USR/BIN/shasum5.18 (uses perl 5.18)
Run "man perl" for more information about multiple version support in
Mac OS X.
Checksums do not match.
I don't know what happened, but I've looked into the error message and various mentions of how to fix the Perl issue but have came up with nothing.
I had the same problem - for some reason, on my Mac I had at least 2 versions of Perl, if not 3 - 5.16, 5.18 and I think also 5.18.2.
This broke many of the Perl libraries and command line tools, some of them used by homebrew, such as shasum.
I believe this could have happened during an XCode upgrade, because this could have changed the Perl installation.
I fixed it by re-installing a new version of Perl manually. I chose the latest one and followed these instructions:
I had the same problem, no idea how it happened. I suspect it somehow happened during an XCode Update. I fixed this by re-installing Perl on my Mac manually. I used the latest version as described here:
curl -O http://www.cpan.org/src/perl-5.26.1.tar.gz
tar -xzf perl-5.26.1.tar.gz
cd perl-5.26.1
./Configure -des -Dprefix=/usr/local/
make
make test
sudo make install
See also http://search.cpan.org/~shay/perl/README.macosx

gcc required when installing Bugzilla on diskstation

I'm trying to install Bugzilla but encounter a Perl problem.
When installing required Perl modules, I get the following error message:
ERROR: Using install-module.pl requires that you install a compiler, such as gcc.
gcc 4.2.3 is installed and in the path. I'm using perl v 5.8.6 OS: Linux DiskStation 2.6.32.12
Another thread on Stackoverflow refers to PerlGcc but it seems to work on Solaris only.
How can I make Perl find gcc?
I'm guessing you're talking about this thread. Assuming that the guy talking about the version of gcc being relevant was onto something, could you check that you don't have an older version of gcc lying around somewhere higher in the path with
$ which gcc

Installing GTK2 in windows !

I am trying to install GTK in windows and use GLADE develop GUI interface. For GTK i need to install Glib, which is creating a problem for me. I am trying to do:
perl Makefile.pl
dmake
dmake test
dmake install
but I am getting stuck on the dmake step. The error I am seeing is:
--------------- dmake.exe: Error code 1, while making 'Glib.o'-------------
Is it possible to use GLADE and Glib with perl on windows? If so, am I making a mistake in building it?
I'm using gtk 2.22 in xp and 7 compiled in xp with msvisual c++ 2010 and activePerl 5.012. It was a dirty job but it works for me. I did this a few months ago and these are the notes I had written.
get msvcr100.dll and put it in system32 folder.
compile ExtUtils-Depends and ExtUtils-PkgConfig
get Glib and comment the line with unistd.h in gtk\include\font??foo (it's a linux header!)
add include stdlib.h , io.h and getopt.h in the same file. Get it from http://www.pwilson.net/sample.html
compile Cairo
compile Pango (I had some problems but since I did not pretend to use pango I just comment 3 references to gtk2perl????.xs)
compile gtk (the dirty job again: comment references to gdkcairo.xs and gdkprintcontext)
I just use a few of cairo so it works for me.
PDF creation (for exemple) will fail! If you need all the features may be you need to cross compile all this stuff in linux.