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