Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
April 11, 2010 [Issue 4080] New: Patch for building dynamic libraries on Mac OS X | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=4080 Summary: Patch for building dynamic libraries on Mac OS X Product: D Version: future Platform: x86 OS/Version: Mac OS X Status: NEW Severity: normal Priority: P2 Component: druntime AssignedTo: sean@invisibleduck.org ReportedBy: doob@me.com --- Comment #0 from Jacob Carlborg <doob@me.com> 2010-04-11 05:48:49 PDT --- Created an attachment (id=606) Adds the "-dylib" flag These three patches adds support for building dynamic libraries on Mac OS X. The patch for DMD adds the "-dylib" flag to the compiler. Building with this flag enabled will produce a dynamic library. The patch for druntime makes the necessary changes to build dynamic libraries. The D main function is now weakly linked, all of the module constructors of all the loaded images (executables, dynamic libraries) are run. The C main function is slightly modified to use the rt_init and rt_term functions. Two C functions are also added the will initialize and terminate the runtime if no D main function is available, i.e. a D plugin linked with a C application. The patch for phobos is just some modifications to the make file. To build druntime and phobos as dynamic libraries add "dynamic", i.e. "make -f osx.mak dynamic". A note about dynamic libraries on Mac OS X: Every dynamic library has an install name on Mac OS X which is the path to where an executable should look for the library when loading it. The build script sets this to "@rpath/<libname>.dylib", where <libname> is "libdruntime" or "libphobos2". @rpath is a relative path which the user can set when compiling an executable like this: "dmd -L-rpath -L/path/to/library/". When the executable then is loaded it will search for the library in "/path/to/library/<libname>.dylib". -rpath can be set multiple times. The user can also change the install name with the tool "install_name_tool" without needing to recompile. A change to the dmd.conf file is also needed. With this change the user doesn't have to set the @rpath every time when compiling. "libdruntime" must also be linked. DFLAGS=-I%@P%/../src/phobos -I%@P%/../src/druntime/import -L-L%@P%/../lib -L-rpath -L%@P%/../lib -L%@P%/../lib/libdruntime.dylib -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
April 11, 2010 [Issue 4080] Patch for building dynamic libraries on Mac OS X | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | http://d.puremagic.com/issues/show_bug.cgi?id=4080 --- Comment #1 from Jacob Carlborg <doob@me.com> 2010-04-11 05:49:32 PDT --- Created an attachment (id=607) Adds support for building dynamic libraries -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
April 11, 2010 [Issue 4080] Patch for building dynamic libraries on Mac OS X | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | http://d.puremagic.com/issues/show_bug.cgi?id=4080 --- Comment #2 from Jacob Carlborg <doob@me.com> 2010-04-11 05:50:13 PDT --- Created an attachment (id=608) Adds support for building dynamic libraries -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
April 11, 2010 [Issue 4080] Patch for building dynamic libraries on Mac OS X | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | http://d.puremagic.com/issues/show_bug.cgi?id=4080 --- Comment #3 from Jacob Carlborg <doob@me.com> 2010-04-11 05:52:34 PDT --- BTW the make files probably needs some cleaning up, make files are not my strong side. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
June 24, 2010 [Issue 4080] Patch for building dynamic libraries on Mac OS X | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | http://d.puremagic.com/issues/show_bug.cgi?id=4080 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com --- Comment #4 from Walter Bright <bugzilla@digitalmars.com> 2010-06-24 14:29:00 PDT --- dmd portion: http://www.dsource.org/projects/dmd/changeset/559 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
August 26, 2010 [Issue 4080] Patch for building dynamic libraries on Mac OS X | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | http://d.puremagic.com/issues/show_bug.cgi?id=4080 --- Comment #5 from Walter Bright <bugzilla@digitalmars.com> 2010-08-26 14:21:48 PDT --- http://www.dsource.org/projects/dmd/changeset/372 I changed the location of the new files to be more consistent with druntime's existing conventions: Adding src\core\sys\osx\mach\dyld.d Adding src\core\sys\osx\mach\getsect.d Adding src\core\sys\osx\mach\loader.d Adding src\rt\dylib_fixes.c Adding src\rt\image.d -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation