Skip to content

Commit

Permalink
[libjulia] adapt to master changes, refactoring (#6962)
Browse files Browse the repository at this point in the history
- bump nightly version
- take care of generated symbol versioning file
- also simplify LLVMLINK setting
  • Loading branch information
benlorenz authored Jun 30, 2023
1 parent f4464e3 commit 9dd2690
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 23 deletions.
2 changes: 1 addition & 1 deletion L/libjulia/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ function Pkg.Types.is_stdlib(uuid::Base.UUID, julia_version::VersionNumber)
return false
end

jllversion=v"1.10.2"
jllversion=v"1.10.3"
build_julia(ARGS, v"1.6.3"; jllversion)
build_julia(ARGS, v"1.7.0"; jllversion)
build_julia(ARGS, v"1.8.2"; jllversion)
Expand Down
53 changes: 31 additions & 22 deletions L/libjulia/common.jl
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version)

if version == v"1.10.0-DEV"
sources = [
GitSource("https://github.com/JuliaLang/julia.git", "950154010cb112120885b9b01e2ef7387ced72c4"),
GitSource("https://github.com/JuliaLang/julia.git", "0e8af1c1620cbf5304c8a7cabbc5475ec48a78ec"),
DirectorySource("./bundled"),
]
else
Expand Down Expand Up @@ -132,38 +132,42 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version)
# a HostDependency, now that we have those
LLVM_CXXFLAGS="-I${prefix}/include -fno-exceptions -fno-rtti -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -std=c++14"
if [[ "${version}" == 1.6.* ]]; then
LLVMVERMAJOR=11
elif [[ "${version}" == 1.7.* ]]; then
LLVMVERMAJOR=12
elif [[ "${version}" == 1.8.* ]]; then
LLVMVERMAJOR=13
elif [[ "${version}" == 1.9.* ]]; then
LLVMVERMAJOR=14
elif [[ "${version}" == 1.10.* ]]; then
LLVMVERMAJOR=15
else
echo "Error, LLVM version not specified"
exit 1
fi
# so far this holds for all versions:
LLVMVERMINOR=0
# needed for the julia.expmap symbol versioning file
# starting from julia 1.10
LLVMSYMVER="JL_LLVM_${LLVMVERMAJOR}.${LLVMVERMINOR}"
LLVM_LDFLAGS="-L${prefix}/lib"
LDFLAGS="-L${prefix}/lib"
CFLAGS="-I${prefix}/include"
if [[ "${target}" == *mingw* ]]; then
if [[ "${version}" == 1.8.* ]]; then
LLVMLINK="-L${prefix}/bin -lLLVM-13jl"
elif [[ "${version}" == 1.9.* ]]; then
LLVMLINK="-L${prefix}/bin -lLLVM-14jl"
elif [[ "${version}" == 1.10.* ]]; then
LLVMLINK="-L${prefix}/bin -lLLVM-15jl"
else
if [[ "${version}" == 1.[0-7].* ]]; then
LLVMLINK="-L${prefix}/bin -lLLVM"
else
LLVMLINK="-L${prefix}/bin -lLLVM-${LLVMVERMAJOR}jl"
fi
LLVM_LDFLAGS="-L${prefix}/bin"
LDFLAGS="-L${prefix}/bin"
elif [[ "${target}" == *apple* ]]; then
LLVMLINK="-L${prefix}/lib -lLLVM"
else
if [[ "${version}" == 1.6.* ]]; then
LLVMLINK="-L${prefix}/lib -lLLVM-11jl"
elif [[ "${version}" == 1.7.* ]]; then
LLVMLINK="-L${prefix}/lib -lLLVM-12jl"
elif [[ "${version}" == 1.8.* ]]; then
LLVMLINK="-L${prefix}/lib -lLLVM-13jl"
elif [[ "${version}" == 1.9.* ]]; then
LLVMLINK="-L${prefix}/lib -lLLVM-14jl"
elif [[ "${version}" == 1.10.* ]]; then
LLVMLINK="-L${prefix}/lib -lLLVM-15jl"
else
echo "Error, LLVM version not specified"
exit 1
fi
LLVMLINK="-L${prefix}/lib -lLLVM-${LLVMVERMAJOR}jl"
fi
# enable extglob for BB_TRIPLET_LIBGFORTRAN_CXXABI
Expand Down Expand Up @@ -203,6 +207,7 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version)
override CG_LLVMLINK=${LLVMLINK} # For Julia >= 1.8
override LLVM_CXXFLAGS=${LLVM_CXXFLAGS}
override LLVM_LDFLAGS=${LLVM_LDFLAGS}
override LLVM_SHLIB_SYMBOL_VERSION=${LLVMSYMVER}
# just nop this
override LLVM_CONFIG_HOST=true
Expand Down Expand Up @@ -252,6 +257,10 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version)
cp /opt/*-w64-mingw32/*-w64-mingw32/sys-root/bin/libwinpthread-1.dll /opt/*-w64-mingw32/*-mingw32/sys-root/lib/
fi
# this file is generated starting from julia 1.10
# even for platforms without symbol versioning the file is needed to build the host flisp
test -f src/julia.expmap || make -C src ./julia.expmap
# first build flisp, as we need that for compilation; instruct the build system
# to build it for the cross compilation host architecture, not the final target
make BUILDING_HOST_TOOLS=1 NO_GIT=1 -j${nproc} VERBOSE=1 -C src/flisp host/flisp
Expand Down

0 comments on commit 9dd2690

Please sign in to comment.