Trouble upgrading math/fftw3 on 6.4-STABLE

bf bf2006a at yahoo.com
Thu Jun 4 03:24:09 UTC 2009


This math/fftw3 change is turning into a PITA.
First that thread last month, and now again.
Maybe more people should just use packages...


Clint Olsen wrote:

>I got this message:
>
>===>    Verifying install for gfortran43 in 
>/usr/ports/lang/gcc43
>Making GCC 4.3.4.20090524 for FreeBSD 6.4  
>target=i386-portbld-freebsd6.4
>You need to increase the datasize limit to at 
>least 700000 (and set
>kern.maxdsiz="734003200" in /boot/loader.conf) to
 >build with Java
>support.
>*** Error code 1


>Ok, so I added the appropriate flag to 
>/boot/loader.conf, however I wanted
>to use sysctl to update the parameter without 
>booting.  However, even
>though the parameter is listed in /boot/defaults
>/loader.conf, sysctl won't
>accept this:

># sysctl kern.maxdsiz 734003200
>sysctl: unknown oid 'kern.maxdsiz'o

>Is there a way to change this w/o rebooting?  Am I 
>even using sysctl
>correctly?

There are different kinds of objects in
the MIB: some can only be set at boot-time, and
some can be set or changed at run-time.  The first
kind are called "loader tunables" in the manpages,
and are managed via loader.conf, or set on the
loader command line.  They cannot be changed by
sysctl.  (Sometimes, in different versions of
FreeBSD, someone will introduce new tunables,
retire others, or turn a loader tunable into
one that is changeable at run-time.  Or a custom
kernel may not even recognize some objects because
it may depend on code that has not been compiled
into the kernel.)  Many, but unfortunately not all,
of the tunables are listed in 
/boot/defaults/loader.conf or the loader(8)
manpage; likewise for the run-time changeable
objects in sysctl(8). For some you have to search
the kernel source code to find out more about them.

kern.maxdsize is a loader tunable, and must be
set as described in the lang/gcc43 message. (Don't
forget the double quotes around the value -- they're
needed in loader.conf but not in sysctl.conf.) 
Even if you could change it, you're using the wrong
syntax for the sysctl command -- you need an '=' in
between the oid and the value you want to assign.
See sysctl(8).

As others have said, if you don't want a java
compiler, DON'T build gcj -- it takes a long time,
and takes up a lot of disk space and memory, which
is why you need to tinker with the settings in the
first place. Instead, define WITHOUT_JAVA on the 
make command-line for lang/gcc43 as the others
mentioned, or set it in your environment during the
lang/gcc43 build, or add something like:

.if${.CURDIR:M*lang/gcc43*}
WITHOUT_JAVA=yes
.endif

to /etc/make.conf.  And if you really want to save
time, network traffic, and disk space, and you don't need to use math/fftw3 with Fortran programs, then build math/fftw3 WITHOUT_FORTRAN, by changing
math/fftw3's FORTRAN option to 'off' via 'make
config'. Then you won't have to install lang/gcc43,
with or without gcj.

b.


      


More information about the freebsd-ports mailing list