| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] |
| ID | Project | Category | View Status | Date Submitted | Last Update |
| 0005105 | OCaml | OCaml general | public | 2010-07-16 20:01 | 2010-07-28 15:15 |
|
| Reporter | cookedm | |
| Assigned To | | |
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | |
| Platform | | OS | | OS Version | |
| Product Version | 3.12.0+beta1 or 3.12.0+rc1 | |
| Target Version | | Fixed in Version | 3.12.0+dev | |
|
| Summary | 0005105: Regression: changes to disable natdynlink for 32-bit OSX also disable using shared libraries |
| Description | 3.11 on 32-bit OSX could use shared libraries perfectly well (e.g., programs compiled with ocamlc did not need the runtime+libraries linked with them). I understand why natdynlink has been disabled for 3.12.0+beta1, but those changes in the `configure` script have also disabled using shared libraries.
After patching `configure` to allow shared libraries and disallow natdynlink with the attached patch, I have found no problems. As long as the libraries don't contain non-PIC code (like that generated by ocamlopt :), there shouldn't be any. This is with a Core Duo Macbook with 10.6 (which is 32-bit only).
[In particular, note that linking with shared libraries doesn't need the "-read_only_relocs suppress" that natdynlink requires (and is no longer supported by Apple's ld).] |
| Tags | No tags attached. |
|
| Attached Files | allow-shared-libraries-32bit-osx.patch [^] (970 bytes) 2010-07-16 20:01 [Show Content] [Hide Content]Index: configure
===================================================================
--- configure (revision 10626)
+++ configure (working copy)
@@ -574,14 +574,11 @@
mksharedlibrpath="-rpath "
shared_libraries_supported=true;;
i[3456]86-*-darwin10.*)
- if test $arch64 == true; then
- mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress"
- bytecccompopts="$dl_defs $bytecccompopts"
- dl_needs_underscore=false
- shared_libraries_supported=true
- else
- shared_libraries_supported=false
- fi;;
+ mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress"
+ bytecccompopts="$dl_defs $bytecccompopts"
+ dl_needs_underscore=false
+ shared_libraries_supported=true
+ ;;
i[3456]86-*-darwin*)
mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress -read_only_relocs suppress"
bytecccompopts="$dl_defs $bytecccompopts"
|
|