HNHacker News
TopNewBestAskShowJobs

mbeddedartistry

29 karma · joined August 22, 2022

submissionscomments
mbeddedartistry··on Wendell Berry has died
You have never heard of him before now, but feel confident in boiling down his large body of writing and laying judgment on the quality of his thought?
mbeddedartistry··on Psilocybin Effective as Antidepressant
I’m confused. Are you saying that the studies being done and showing positive results should just be ignored? Why are these studies viewed as wishful thinking?
mbeddedartistry··on Woodworking as an escape from the absurdity of software
As a one man software consultant, I just want to point out that you are working with clients, in their systems, on their problems. You provide advice, they make the decisions they deem best for their company.

You get to choose the problem spaces and teams, which is a degree of autonomy. But it is not quite so free as “making your own decisions and not answering to anybody.”

mbeddedartistry··on Psilocybin Effective as Antidepressant
Johns Hopkins did two doses and a 12 month follow up.

https://journals.sagepub.com/doi/10.1177/02698811211073759

mbeddedartistry··on A general overview of what happens before main() (2019)
What, exactly, is wrong?

The point I am making is that crt0.o usually comes from libc, even if it is linked separately.

I suspect that the loader expects the ELF entry point to be an address in the application, not a dynamically linked library, which is why crt0.o must be statically linked.

mbeddedartistry··on A general overview of what happens before main() (2019)
It says "usually". It varies! But, in general, the libc implementations I have looked at handle this. This includes Newlib, glibc (they call it start.s), picolibc, musl (crt1), and my own libc.

The presence in your binary only means that crt0.o was statically linked (may be an expectation of the loader on your system). If you linked against a static libc, you would also see those symbols as part of the binary.

mbeddedartistry··on A general overview of what happens before main() (2019)
Hey John,

Thanks for commenting. I had read your article via another comment here. I had not thought about the syscall approach before, because as you note Apple does not (well, did not previously) guarantee syscall stability.

mbeddedartistry··on A general overview of what happens before main() (2019)
TIL! I hadn't come across this change of heart yet.
mbeddedartistry··on A general overview of what happens before main() (2019)
Thanks. It is a clever approach. But at best all I can do is amend the original statement to "only dynamically linked applications are supported". Apple does not guarantee syscall stability (as is evident by Go's big break, and eventual move to libSystem).
mbeddedartistry··on A general overview of what happens before main() (2019)
Please provide a source for a statically linked application on MacOS, Intel or otherwise. When I wrote this article, Apple's own documentation said it was not supported. libSystem is also only provided as a dynamic library.