how about a 'snowleopardfixes' library port?

Ken Cunningham ken.cunningham.webuse at gmail.com
Mon Aug 22 21:50:41 PDT 2016


Snow Leopard has two missing but fairly commonly used functions, getline and strnlen.  These two functions are responsible for a number of snow leopard build failures.

It seemed that reinventing the wheel over and over for a getline replacement was getting rather tedious, port after port. I built a static library with a getline replacement in it, called it 'libsnowleopardfixes.a', put it in /opt/local/lib, and added it to the linked libraries on lnav. 

Then, it required only a single line of code to be added to the file where it fails (in this case, common_executor.cc); because lnav is c++ code, it required this version:

"extern "C" ssize_t getline(char **lineptr, size_t *n, FILE *stream);"

and to have the library added to the ldflags, and the port built and ran without trouble. 

Perhaps there is somewhere more elegant I could have put the definition, but it seemed to be required only in this one file.

This seems to be a contender for a fairly easy way to solve a lot of troubles with these missing snowleopard functions...

Ken


More information about the macports-dev mailing list