# install perl5-26



## bagas (Oct 27, 2018)

Hello.
my system.

```
# uname -rms
FreeBSD 11.2-RELEASE-p4 amd64
```
I try to change pearl5-24 to pearl5-26
Delete all dependencies.
pkg_deinstall -rR perl5
I put perl5-26
root@FIL_ELI:/usr/ports/lang/perl5.26 # make install clean
error.
How to be in this case.

```
freemint           openbsd           utekv  
genix           opus               uwin  
gnu               os2               vos  
gnukfreebsd           os390  
Which of these apply, if any? [freebsd]

Some users have reported that Configure halts when testing for
the O_NONBLOCK symbol with a syntax error.  This is apparently a
sh error.  Rerunning Configure with ksh apparently fixes the
problem.  Try
    ksh Configure [your options]

Operating system name? [freebsd]
Operating system version? [11.2-release-p4]
Installation prefix to use? (~name ok) [/usr/local]
AFS does not seem to be running...
What installation prefix should I use for installing files? (~name ok)
[/usr/local]
Getting the current patchlevel...
Build a threading Perl? [y]
Use which C compiler? [cc]
Checking for GNU cc in disguise and/or its version number...
Now, how can we feed standard input to your C preprocessor...
Directories to use for library searches?
[/usr/lib /usr/local/lib /usr/lib/clang/6.0.0/lib /usr/lib]
What is the file extension used for shared libraries? [so]
Make shared library basenames unique? [n]
Build Perl for SOCKS? [n]
Try to use long doubles if available? [n]
Checking for optional libraries...
What libraries to use? [-lpthread -lgdbm -lm -lcrypt -lutil]
What optimizer/debugger flag should be used?
[-O2 -pipe -fstack-protector -fno-strict-aliasing ]
Any additional cc flags?
[-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include]
Let me guess what the preprocessor flags are...
Any additional ld flags (NOT including libraries)?
[-pthread -Wl,-E  -fstack-protector-strong -L/usr/local/lib]
Checking your choice of C compiler and flags for coherency...
Computing filename position in cpp output for #include directives...
<stdlib.h> found.
Checking to see how big your integers are...
Checking to see if you have long long...
Checking to see how big your long longs are...
<inttypes.h> found.
Checking to see if you have int64_t...
Checking which 64-bit integer type we could use...
We could use 'long' for 64-bit integers.
Try to use maximal 64-bit support, if available? [y]
Checking if your C library has broken 64-bit functions...
Checking for GNU C Library...
Shall I use /usr/bin/nm to extract C symbols from the libraries? [n]
Checking for C++...
Checking to see how big your double precision numbers are...
<float.h> found.
Checking to see if you have long double...
ldexpl() found.
Checking to see how big your long doubles are...
Checking the kind of long doubles you have...
You have x86 80-bit little endian long doubles.
What is your architecture name [amd64-freebsd]
Add the Perl API version to your archname? [n]
Threads selected.
...setting architecture name to amd64-freebsd-thread.
Multiplicity selected.
...setting architecture name to amd64-freebsd-thread-multi.
This architecture is naturally 64-bit, not changing architecture name.
Pathname where the public executables will reside? (~name ok)
[/usr/local/bin]
Use relocatable @INC? [n]
Pathname where the private library files will reside? (~name ok)
[/usr/local/lib/perl5/5.26]
Where do you want to put the public architecture-dependent libraries? (~name ok)
[/usr/local/lib/perl5/5.26/mach]
Other username to test security of setuid scripts with? [none]
I'll assume setuid scripts are *not* secure.
Does your kernel have *secure* setuid scripts? [n]
Installation prefix to use for add-on modules and utilities? (~name ok)
[/usr/local]
Pathname for the site-specific library files? (~name ok)
[/usr/local/lib/perl5/site_perl]
List of earlier versions to include in @INC? [none]
<malloc/malloc.h> NOT found.
<malloc.h> NOT found.
Checking to see how big your pointers are...
Do you wish to wrap malloc calls to protect against potential overflows? [y]
Do you wish to attempt to use the malloc that comes with perl5? [n]
Your system wants malloc to return 'void *', it would seem.
Your system uses void free(), it would seem.
Pathname for the site-specific architecture-dependent library files? (~name ok)
[/usr/local/lib/perl5/site_perl/mach/5.26]
Do you want to configure vendor-specific add-on directories? [n]
Colon-separated list of additional directories for perl to search? [none]
Checking out function prototypes...
Support DTrace if available? [y]
Where is the dtrace executable? (~name ok) [/usr/sbin/dtrace]

*** Configure:  Fatal Error:  /usr/sbin/dtrace doesn't support -h flag
***
*** Your installed dtrace doesn't support the -h switch to compile a D
*** program into a C header. Can't continue.

===>  Script "Configure" failed unexpectedly.
Please report the problem to mat@FreeBSD.org [maintainer] and attach the
"/usr/ports/lang/perl5.26/work/perl-5.26.2/config.log" including the output
of the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. a
/usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/lang/perl5.26
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/perl5.26
root@FIL_ELI:/usr/ports/lang/perl5.26 #
```


----------



## bagas (Oct 27, 2018)

while switched back to perl 5-24


----------



## bagas (Oct 27, 2018)

This bug is already extending from 2018-04-06
Couldn't it have been fixed in such a period of time?
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227312
As I understand it, you need to enable debugging in the kernel, but for what I do not understand.

```
#makeoptions    DEBUG=-g                # Build kernel with gdb(1) debug symbols
```
It is problematic, I have disabled this item on all servers.
I do not want to rebuild the kernel.


----------



## Nyantastic (Oct 27, 2018)

If I install Perl from scratch it gives [n] as the default for DTrace:


```
Perl can be built to support DTrace on platforms that support it.
DTrace is a diagnosis and performance analysis tool from Sun.

If this doesn't make any sense to you, just accept the default.
Support DTrace if available? [n]
```
Perhaps you could just type "n" here. Is there a reason you need DTrace?

Incidentally, I never use the "system perl" or even touch it, I install Perl into a user directory. Here are instructions:

https://www.lemoda.net/perl/unix-install/index.html


----------



## bagas (Oct 27, 2018)

Nyantastic said:


> If I install Perl from scratch it gives [n] as the default for DTrace:
> 
> 
> ```
> ...


This is not an option.


----------



## Nyantastic (Oct 27, 2018)

bagas said:


> This is not an option.


In your first post you give this:

```
Support DTrace if available? [y]
```
I apologise in advance but I won't make further responses.


----------



## trev (Oct 28, 2018)

bagas said:


> This bug is already extending from 2018-04-06
> Couldn't it have been fixed in such a period of time?
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227312
> [...]
> I do not want to rebuild the kernel.



The current workaround is detailed in that bug report in comment 4. To use it, you will have to rebuild the kernel. You do not have to use the new kernel, but you do have to build it.


----------



## bagas (Oct 28, 2018)

trev said:


> The current workaround is detailed in that bug report in comment 4. To use it, you will have to rebuild the kernel. You do not have to use the new kernel, but you do have to build it.


I have 100 servers, I have to rebuild every kernel because of the bug that exists for more than a year ?!
This is not right!


----------



## trev (Oct 28, 2018)

If you do not need Perl 5.26, then do not upgrade to it on 100 servers.
If you do need Perl 5.26, then use the workaround - you may or may not need to compile kernels on 100 servers if the required modules can be copied between servers.


----------



## SirDice (Oct 29, 2018)

If you're going to use the default settings any way why don't you simply install the package and be done?

`pkg install perl5.26`


----------



## bagas (Oct 29, 2018)

SirDice said:


> If you're going to use the default settings any way why don't you simply install the package and be done?
> 
> `pkg install perl5.26`


Do you recommend installing perl5 from the package?
And in the future does not wake up problems that the perl5 is installed from the package, and everything else from the ports (sources).


----------



## SirDice (Oct 29, 2018)

I suggest using packages only. Or, if you really need to deviate from the defaults, set up your own repository.


----------



## _martin (Oct 18, 2022)

While older thread it seems it's still valid. I hit this issue now on my 12.3-RELEASE while I was doing upgrade from `perl5-5.32.1_1` to `perl5-5.32.1_3`. I can live without dtrace probes in perl. Make sure you do a `make clean && make config` on that port and deselect the dtrace probes.
I was not in mood to trace why it fails now and didn't before.


----------

