-
Notifications
You must be signed in to change notification settings - Fork 514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unbundle htslib #1586
base: master
Are you sure you want to change the base?
Unbundle htslib #1586
Conversation
@alexdobin any chance of getting this merged? |
Hi David, this is a great fix and long overdue. |
I only tested it in Gentoo with the default options, and it worked fine there. |
By default, BAM is not output and thus htslib is not used. |
@alexdobin do you have some example data I could test it on? |
@SoapGentoo I'm happy to help test this and help merge into STAR if possible |
@mjsteinbaugh I just didnt get around to testing the runtime, could you try it with input data and diff the output? It should be identical |
@SoapGentoo Yeah I can try applying these changes as a patch to the source code, will try it out and get back to you. Thanks for this! |
For reference, there's a patch in bioconda that serves to unbundle htslib: |
yup, I just find mine more concise and cleaner 😉 |
* $(LDFLAGS) needs to come very early in the linker line, since its arguments only affect trailing object files.
acbbbbc
to
2f8416c
Compare
@SoapGentoo This is building for me on Ubuntu 22 with GCC. I'm also trying to get this to work with clang 15 on macOS Sonoma, to no avail. It seems like there needs to be some different compiler settings. Would it be possible to help test on macOS and add support for clang? My current build script is here, for reference: |
what issues are you seeing? |
Here's what I'm seeing on macOS Sonoma x86_64; Xcode CLT 15.0.0.0.1.1694021235; clang 15:
|
you need to show me the compile line |
make args:
And stdout and stderr logs are attached: |
the
In general, I don't believe there should be static targets in a makefile, since static linking requires intricate toolchain knowledge and trying to make it work for all cases is a lost cause. Also the zlib and htslib in both cases are not from Macports but self-compiled (in order to disable the xz-utils dep). |
Where's Update: |
I'm using GCC from Macports, since you can't link libc++ statically, only libstdc++. You can use clang too, but you will always have a dependency on libc++, which means you need to compile it on an oldest version of macOS that you want to support. |
With clang, I keep hitting the missing header issue:
Not sure how to fix this easily |
Not using |
Hi @alexdobin
in Gentoo, we unbundle libraries as a general principle. The htslib with STAR is very old, and using the htslib we provide helps users get the benefit of more recent htslib releases. All the changes here maintain the default workflow, so your workflow should not be impacted, we can just provide
SYSTEM_HTSLIB=1
tomake
when building STAR downstream to avoid bundling htslib.