Julia language on DragonflyBSD

Michael Neumann mneumann at ntecs.de
Tue Apr 8 07:13:41 PDT 2025


On Tue, Apr 08, 2025 at 06:42:17AM -0700, Sayed Mohammad Badiezadegan wrote:
> Thank you Michael.
> 
> I did your advice, and now I have the attached screenshot Warnings & Errors.
> 
> Should I change any other variables? or...

The problem now is in deps/blastrampoline.mk. This fetches and
compiles https://github.com/JuliaLinearAlgebra/libblastrampoline.git
as you can see in line 5 of deps/blastrampoline.mk.

What I do:

	git clone https://github.com/JuliaLinearAlgebra/libblastrampoline.git
	cd libblastrampoline/src
	gmake

This gives me the following error:

	libblastrampoline/src % gmake
	cc -o build/libblastrampoline.o -g -O2 -std=gnu99 -fPIC -DLIBRARY_EXPORTS -D_GNU_SOURCE -DARCH_x86_64 -DF2C_AUTODETECTION -DCBLAS_DIVERGENCE_AUTODETECTION -DCOMPLEX_RETSTYLE_AUTODETECTION -c libblastrampoline.c
	libblastrampoline.c: In function 'init':
	libblastrampoline.c:514:23: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'?
		 char curr_lib[PATH_MAX];
			       ^~~~~~~~
			       RAND_MAX
	libblastrampoline.c:514:23: note: each undeclared identifier is reported only once for each function it appears in


Look at src/libblastrampoline_internal.h. There you'll find

	#if defined(_OS_FREEBSD_) || defined(_OS_OPENBSD_)
	...

You need to patch the following files:

	diff --git a/src/libblastrampoline.h b/src/libblastrampoline.h
	index 250e82b..1ca4739 100644
	--- a/src/libblastrampoline.h
	+++ b/src/libblastrampoline.h
	@@ -7,6 +7,8 @@ extern "C" {
	 // This shamelessly stolen from https://github.com/JuliaLang/julia/blob/master/src/support/platform.h
	 #if defined(__FreeBSD__)
	 #define _OS_FREEBSD_
	+#elif defined(__DragonFly__)
	+#define _OS_DRAGONFLY_
	 #elif defined(__OpenBSD__)
	 #define _OS_OPENBSD_
	 #elif defined(__linux__)
	diff --git a/src/libblastrampoline_internal.h b/src/libblastrampoline_internal.h
	index e6ca762..a431ede 100644
	--- a/src/libblastrampoline_internal.h
	+++ b/src/libblastrampoline_internal.h
	@@ -25,7 +25,7 @@
	 #include <dlfcn.h>
	 #endif
	 
	-#if defined(_OS_FREEBSD_) || defined(_OS_OPENBSD_)
	+#if defined(_OS_FREEBSD_) || defined(_OS_OPENBSD_) || defined(_OS_DRAGONFLY_)
	 #include <stddef.h>

Then it compiles fine. Feel free to submit a Pull request (PR) to
JuliaLinearAlgebra/libblastrampoline.git with above changes.

Regards,

  Michael

> 
> Thank you so much.
> 
> On Tue, Apr 8, 2025 at 2:32 AM Michael Neumann <mneumann at ntecs.de> wrote:
> 
> > On Mon, Apr 07, 2025 at 06:10:59PM -0700, Sayed Mohammad Badiezadegan
> > wrote:
> > > Hi everybody,
> > >
> > > I tried to install Julia on my DragonflyBSD, which was installed by the
> > > DragonflyBSD 2025-04-07 snapshot.
> > >
> > > I installed GCC13, GIT, OpenBLAS, and SuiteSparse, but I still got this
> > > error when I run the following:
> > >
> > > *root@:/julia # gmake -j 4/bin/sh: {python|python3|python2} not found:
> > not
> > > found/bin/sh: {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not found/bin/sh:
> >
> > Do you have python installed?
> >
> >
> > https://github.com/JuliaLang/julia/blob/ec424d47ff8414a3666dce40d5977aabb509da0f/Make.inc#L167
> >
> > Try "which python" on your system. Or "which python3". This should help:
> >
> >         sudo pkg ins python3
> >
> > > {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not found/bin/sh:
> > > {python|python3|python2} not found: not foundgmake: not: No such file or
> > > directory/bin/sh: not: not found/julia/Make.inc:1375:
> > normalize_triplet.py
> > > appears to be non-functional (used python interpreter "not found"), so
> > > BinaryBuilder disabled/bin/sh: not: not found/julia/Make.inc:1445: ***
> > > "Attempting to build OpenBLAS or SuiteSparse without a functioning
> > fortran
> > > compiler!".  Stop.root@:/julia #*
> >
> > Also, quite often, on Linux systems "/bin/sh" is actually bash. Try
> > setting environment variable "export SHELL=/usr/local/bin/bash" before
> > running gmake, and of course install bash (sudo pkg ins bash).
> >
> > Also try looking for files starting with "#!/bin/sh" so called shebang.
> > If those scripts expect "bash" you need to change it to
> > "#!/usr/local/bin/bash".
> >
> > Hope this helps to make more progress.
> >
> > Regards,
> >
> >   Michael
> >
> > >
> > > What should I do? Thank you.
> >
> > --
> > Michael Neumann
> > NTECS Consulting
> > www.ntecs.de
> >



-- 
Michael Neumann
NTECS Consulting
www.ntecs.de


More information about the Users mailing list