Closed jirutka closed 3 years ago
So, I don't have much experience with musl, but my understanding is that libstdc++ has a hard dependency on glibc. It seems there are patched versions out there to make it work, and I guess that is what alpine is using? However, I don't have a patched version to hand. I would guess that the only problem is some missing includes. Is there any chance you'd be interested in trying to figure out which includes are needed and dropping a PR?
No, libstdc++ does not have a hard dependency on glibc.
I’ve managed to hack it in the way it builds (quick & dirty patch), but it segfaults in ETACalculator::getEta()
.
(gdb) run src foo
Starting program: wcp-45ab7b81f2bc11f5f577978a974bb99838726d67/build/wcp src foo
[New LWP 27555]
[New LWP 27556]
[LWP 27555 exited] 0.00 B / ??? 8388608.00 TiB/s ETA: ???
Calculating, found: 0.00 B
Thread 3 "wcp" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 27556]
0x000055555556b91e in ETACalculator::getEta()::{lambda(unsigned long)#1}::operator()(unsigned long) const ()
(gdb) backtrace
#0 0x000055555556b91e in ETACalculator::getEta()::{lambda(unsigned long)#1}::operator()(unsigned long) const ()
#1 0x000055555556baf6 in ETACalculator::getEta() ()
#2 0x000055555555d6e9 in CopyQueue::showProgressLoop()::{lambda()#7}::operator()() const ()
#3 0x000055555555e0ab in CopyQueue::showProgressLoop() ()
#4 0x000055555556145a in CopyQueue::staticCallShowProgressLoop(void*) ()
#5 0x00007ffff7fba160 in ?? () from /lib/ld-musl-x86_64.so.1
#6 0x0000000000000000 in ?? ()
When I comment out the invocation of this method, it copies the files and exits successfully. However, I’m not sure if the cause is really in this method or just a coincidence.
You can trivially run Alpine Linux using e.g. https://github.com/alpinelinux/alpine-chroot-install.
Ah, thanks for all the effort you've put in! I belive the segfault should be fixed now as of https://github.com/wheybags/wcp/commit/fbc63458fc3a9f7dd122429b97072b3863624bde
Do I understand correctly that the segfault had actually nothing to do with musl or my hackery to get it work? o.O
Yup!
Uh, so you haven’t tested copying an empty directory before? It seems that I had a wrong expectation about the quality/maturity of this project. :(
I had, but with the configuration I had in my IDE when running tests, it didn't error. Also, from the readme:
It's probably not robust enough for daily use just yet.
Environment:
Log: