Comments (9)
Thank you for this tip. I will do this.
from tsv-utils.
BTW, DMD does not support static linking. It doesn't support the TLS model that is required, as far as I can see.
from tsv-utils.
Thanks again for raising this topic. I was wondering how broadly these pre-built binaries would work.
I'm trying the -static flag now. There's a bit to it. As you indicate, DMD does not support. And, LDC2 fails if it is used on OS X, so it's necessary to customize builds. Trying it on a Linux box, I'm getting a warning message indicating:
warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
I'm guessing this indicates there could still be issues. Do you thoughts on this? Also, can you list a specific linux distribution where the pre-built binaries I created won't work? I can try to get access to a box if I know what to try.
from tsv-utils.
macOS doesn't support static linking libc. But macOS doesn't have the same problem of binary compatibility as Linux does, only one distrubtion 😃. If you want to support older versions of you can use the environment variable MACOSX_DEPLOYMENT_TARGET=<version>
, where <version>
is the oldest version you want to support. D applications require 10.7 or later. I'm not sure if environment variables are supported in Dub. If the environment variable doesn't work you can use this Dub configuration:
"lflags-osx": ["-macosx_version_min", "10.7", "-lcrt1.o"]
An easy way to check if it properly reads the deployment target is to use version 10.6, which should give an error due to TLS is not supported.
As far as static linking on Linux. It's not possible to statically link 100% of glibc due to gethostbyname
(as you noticed), but I'm pretty sure you don't need that. Assuming you need to get the hostname, it should work. To fully statically link libc you need another version than glibc, like musl or similar. Although D doesn't support musl right now. The runtime depends on a non-standard backtrace function that only exists in glibc.
The pre-built binaries don't work on CentOS 6.
from tsv-utils.
Okay, so what you are saying is that it should fine to ignore the warning messages about gethostbyname
for Linux. Thanks for all this help. It'll probably be a day before I get back to this, but I'll post an update to this thread when I've got the binaries updated.
from tsv-utils.
Okay, so what you are saying is that it should fine to ignore the warning messages about
gethostbyname
for Linux
Yes.
from tsv-utils.
The pre-compiled binaries are now statically linked (version v1.1.10). If you get a chance to try them on CentOS 6 or other systems let me know if they work properly.
from tsv-utils.
Thanks. I'll give them a try.
from tsv-utils.
Works now. Thanks.
from tsv-utils.
Related Issues (20)
- AUR package with LTO & PGO enabled HOT 2
- How to best use the code as a library? HOT 4
- Improve tsv-pretty lookahead logic [tsv-pretty mistake in column formatting.] HOT 8
- bufferedByLine does not work with File due to @safe <> @system conflict HOT 3
- Issue with installing on Windows 10 using D / build failure HOT 28
- tsv-summarize: Slice SummarizerBase._operators when invoking std.algorithm.each
- Inconsistent newline handling on Windows HOT 2
- Status of Windows build HOT 6
- Bulding tsv-utils with LTO and PGO on Archlinux HOT 14
- Homebrew install HOT 6
- Package tsv-utils for conda(-forge)? HOT 1
- No linux release assets for v2.2.1
- -bash: ./tsv-pretty: cannot execute binary file HOT 1
- Ability to produce proper CSV files
- Sort using column names
- tsv-append: limit number of rows per file? [feature request]
- Error [tsv-filter]: Not enough fields in line. File: c.tsv, Line: 1425063 HOT 1
- ENH: Add ARM64 build assets for native functionality on M1 macs (the future) HOT 3
- Q: any API doc? how to skip empty field in csvReader?
- Updated benchmarks including qsv HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tsv-utils.