From: Alan W. I. <Ala...@gm...> - 2018-09-24 06:48:07
|
On 2018-03-22 19:12-0700 Alan W. Irwin wrote: > To those here with knowledge of Mac OS X linking: > > According to <http://www.manpages.info/macosx/ld.1.html> there exists > the following ld options: > > " > -single_module When building a dynamic library build the library so that it > contains only one module. > > -multi_module > When building a dynamic library build the library so that it contains > one module for each object file linked in. This is the default. > " > > We currently use -single_module for linking on this platform > (see CMAKE_USER_MAKE_RULES_OVERRIDE in the top-level CMakeLists.txt > file). > > However that override was imposed 12 (!) years ago to address a > linking issue that I suspect no longer exists. For example, a google > search for the terms <cmake "-single_module"> found nothing relevant > beyond the CMake mailing-list discussion I generated about this issue > back then. > > So unless I hear from Mac OS X experts here that there is some > important reason for using the -single_module option for linking > dynamic libraries on modern Mac OS X, I plan (on Sunday to give you a > couple of days to respond) to drop this override completely to conform > to how other CMake-based build systems configure linking of dynamic > libraries on Mac OS X. >From the "better late than never" department, I have indeed now (commit d6a762704) removed this override that is specific to Mac OS X "on Sunday", but frankly I forgot all about this until reminded of it today by my ToDo list so it is a large number of Sundays later than I anticipated in the above post! N.B. This fundamental linking change for Mac OS X platforms needs to be comprehensively tested on Mac OS X. So I need a volunteer (with lots of free disk space that is temporarily consumed by the test until deletion of many plot files at the end of the test) to do that. Just run scripts/comprhensive_test.sh --help to see what is possible with that script. However, be warned that if you specify no options the default is *all* components of the comprehensive test are run. This means, for example, that you will be doing a lot of babysitting as you work through the interactive components of the test so at minimum for a first try you will likely want to constrain the test with the --do_test_interactive no script option to make the test into something that can quietly be run in the background with little interaction needed from you. Also, note the test generates a report tarball with all the details of the test whether it succeeds or not. So please send me that report tarball regardless of results since in case of failures that tarball helps me to analyze the reason for the failures, and in case of success that tarball helps me to assemble a report of your comprehensive test success for our wiki. Alan __________________________ Alan W. Irwin Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |