View previous topic :: View next topic |
Author |
Message |
bioinfornatics
Joined: 22 Jun 2010 Posts: 90
|
Posted: Wed Jan 18, 2012 6:58 pm Post subject: dynamic linking |
|
|
hi,
why with ldd i did not see the dynamic link to phobos or druntime ?
Code: | # ldd /usr/lib64/libgtkd.so.1.5.1
linux-vdso.so.1 => (0x00007fff58fff000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8b948d7000)
/lib64/ld-linux-x86-64.so.2 (0x000000317a000000) |
it seem -lphobos2-ldc -ldruntime-ldc do not works with gcc
with ldc it is good:
Code: | ldc2 -shared -L-lphobos2-ldc -L-ldruntime-ldc -L-lm -L-ldl -L-lrt src/atk/Image.pic.o src/atk/Action.pic.o src/atk/Hypertext.pic.o src/atk/Table.pic.o src/atk/Relation.pic.o src/atk/ValueAtk.pic.o src/atk/NoOpObjectFactory.pic.o src/atk/Selection.pic.o src/atk/GObjectAccessible.pic.o src/atk/EditableText.pic.o src/atk/NoOpObject.pic.o src/atk/Component.pic.o src/atk/Registry.pic.o src/atk/Text.pic.o src/atk/Util.pic.o src/atk/Document.pic.o src/atk/Hyperlink.pic.o src/atk/State.pic.o src/atk/ObjectFactory.pic.o src/atk/StreamableContent.pic.o src/atk/ObjectAtk.pic.o src/atk/RelationSet.pic.o src/atk/StateSet.pic.o src/gio/IOModule.pic.o src/gio/ThemedIcon.pic.o src/gio/EmblemedIcon.pic.o src/gio/FileMonitor.pic.o src/gio/Emblem.pic.o src/gio/Cancellable.pic.o src/gio/ConverterOutputStream.pic.o src/gio/Icon.pic.o src/gio/Credentials.pic.o src/gio/Socket.pic.o src/gio/FileInfo.pic.o src/gio/SeekableT.pic.o src/gio/IOStream.pic.o src/gio/IconT.pic.o src/gio/OutputStream.pic.o src/gio/SrvTarget.pic.o src/gio/AppInfoT.pic.o src/gio/ProxyResolverIF.pic.o src/gio/SocketConnectableIF.pic.o src/gio/DataOutputStream.pic.o src/gio/SocketConnectableT.pic.o src/gio/SeekableIF.pic.o src/gio/FileAttributeInfoList.pic.o src/gio/ProxyIF.pic.o src/gio/UnixMountPoint.pic.o src/gio/ProxyResolverT.pic.o src/gio/ProxyAddress.pic.o src/gio/Drive.pic.o src/gio/UnixMountMonitor.pic.o src/gio/MountT.pic.o src/gio/SocketControlMessage.pic.o src/gio/Converter.pic.o src/gio/UnixFDMessage.pic.o src/gio/FileDescriptorBasedT.pic.o src/gio/FileIOStream.pic.o src/gio/NetworkService.pic.o src/gio/MountIF.pic.o src/gio/IOSchedulerJob.pic.o src/gio/FileAttributeMatcher.pic.o src/gio/MemoryOutputStream.pic.o src/gio/ContentType.pic.o src/gio/InetAddress.pic.o src/gio/SocketAddressEnumerator.pic.o src/gio/UnixMountEntry.pic.o src/gio/UnixInputStream.pic.o src/gio/DriveT.pic.o src/gio/DataInputStream.pic.o src/gio/SocketService.pic.o src/gio/LoadableIconT.pic.o src/gio/UnixConnection.pic.o src/gio/SocketConnection.pic.o src/gio/FileOutputStream.pic.o src/gio/AsyncResultT.pic.o src/gio/UnixFDList.pic.o src/gio/ConverterT.pic.o src/gio/Settings.pic.o src/gio/ProxyT.pic.o src/gio/InitableT.pic.o src/gio/AsyncInitableIF.pic.o src/gio/SocketClient.pic.o src/gio/SimplePermission.pic.o src/gio/MemoryInputStream.pic.o src/gio/SettingsBackend.pic.o src/gio/InitableIF.pic.o src/gio/AsyncResultIF.pic.o src/gio/VolumeT.pic.o src/gio/Vfs.pic.o src/gio/Resolver.pic.o src/gio/DBusProxy.pic.o src/gio/BufferedOutputStream.pic.o src/gio/DBusConnection.pic.o src/gio/DBusMethodInvocation.pic.o src/gio/DBusError.pic.o src/gio/DBusMessage.pic.o src/gio/File.pic.o src/gio/InetSocketAddress.pic.o src/gio/IOExtensionPoint.pic.o src/gio/ZlibCompressor.pic.o src/gio/TcpConnection.pic.o src/gio/ErrorGIO.pic.o src/gio/MountOperation.pic.o src/gio/FileDescriptorBasedIF.pic.o src/gio/SocketConnectable.pic.o src/gio/UnixCredentialsMessage.pic.o src/gio/IOExtension.pic.o src/gio/ThreadedSocketService.pic.o src/gio/Volume.pic.o src/gio/IconIF.pic.o src/gio/AppInfo.pic.o src/gio/Mount.pic.o src/gio/NetworkAddress.pic.o src/gio/UnixSocketAddress.pic.o src/gio/DBusUtilities.pic.o src/gio/AppLaunchContext.pic.o src/gio/SocketAddress.pic.o src/gio/FileIcon.pic.o src/gio/FilenameCompleter.pic.o src/gio/Permission.pic.o src/gio/FilterOutputStream.pic.o src/gio/AppInfoIF.pic.o src/gio/ConverterInputStream.pic.o src/gio/DesktopAppInfo.pic.o src/gio/VolumeMonitor.pic.o src/gio/InputStream.pic.o src/gio/UnixOutputStream.pic.o src/gio/DBusAuthObserver.pic.o src/gio/VolumeIF.pic.o src/gio/FilterInputStream.pic.o src/gio/DBusNames.pic.o src/gio/DBusServer.pic.o src/gio/ZlibDecompressor.pic.o src/gio/ProxyResolver.pic.o src/gio/DriveIF.pic.o src/gio/FileInputStream.pic.o src/gio/BufferedInputStream.pic.o src/gio/FileEnumerator.pic.o src/gio/ConverterIF.pic.o src/gio/SocketListener.pic.o src/gio/AsyncInitableT.pic.o src/gio/SimpleAsyncResult.pic.o src/gio/LoadableIconIF.pic.o src/gio/Proxy.pic.o src/gio/CharsetConverter.pic.o src/gdk/Pixmap.pic.o src/gdk/Selection.pic.o src/gdk/Window.pic.o src/gdk/ImageGdk.pic.o src/gdk/X11.pic.o src/gdk/RGB.pic.o src/gdk/Keymap.pic.o src/gdk/EventStruct.pic.o src/gdk/Display.pic.o src/gdk/Visual.pic.o src/gdk/Keysyms.pic.o src/gdk/Pixbuf.pic.o src/gdk/DragContext.pic.o src/gdk/Cursor.pic.o src/gdk/Screen.pic.o src/gdk/Rectangle.pic.o src/gdk/DisplayManager.pic.o src/gdk/AppLaunchContext.pic.o src/gdk/Colormap.pic.o src/gdk/GC.pic.o src/gdk/GdkCairo.pic.o src/gdk/Gdk.pic.o src/gdk/Device.pic.o src/gdk/RgbCmap.pic.o src/gdk/Drawable.pic.o src/gdk/Event.pic.o src/gdk/Threads.pic.o src/gdk/Testing.pic.o src/gdk/Bitmap.pic.o src/gdk/Font.pic.o src/gdk/Region.pic.o src/gdk/Input.pic.o src/gdk/Color.pic.o src/cairo/FontOption.pic.o src/cairo/Types.pic.o src/cairo/PdfSurface.pic.o src/cairo/ScaledFont.pic.o src/cairo/Pattern.pic.o src/cairo/Matrix.pic.o src/cairo/UserFontFace.pic.o src/cairo/Surface.pic.o src/cairo/Version.pic.o src/cairo/Context.pic.o src/cairo/PostScriptSurface.pic.o src/cairo/RecordingSurface.pic.o src/cairo/FontFace.pic.o src/cairo/Status.pic.o src/cairo/ImageSurface.pic.o src/cairo/SvgSurface.pic.o src/cairo/Device.pic.o src/cairo/Region.pic.o src/gtk/RcStyle.pic.o src/gtk/ToolItemGroup.pic.o src/gtk/Box.pic.o src/gtk/CellRendererPixbuf.pic.o src/gtk/TreeModelFilter.pic.o src/gtk/HRuler.pic.o src/gtk/CellEditableT.pic.o src/gtk/CellRendererSpin.pic.o src/gtk/MainWindow.pic.o src/gtk/IconSize.pic.o src/gtk/PrintOperation.pic.o src/gtk/IconSet.pic.o src/gtk/TreeModel.pic.o src/gtk/RecentChooserIF.pic.o src/gtk/Viewport.pic.o src/gtk/Selections.pic.o src/gtk/AccelGroup.pic.o src/gtk/Border.pic.o src/gtk/Version.pic.o src/gtk/PageSetupUnixDialog.pic.o src/gtk/TreeModelSort.pic.o src/gtk/Invisible.pic.o src/gtk/RecentManager.pic.o src/gtk/PrintSettings.pic.o src/gtk/TreeIterError.pic.o src/gtk/ColorSelection.pic.o src/gtk/Idle.pic.o src/gtk/GammaCurve.pic.o src/gtk/PrintOperationPreviewIF.pic.o src/gtk/AccelLabel.pic.o src/gtk/DragAndDrop.pic.o src/gtk/FileSelection.pic.o src/gtk/Scale.pic.o src/gtk/RecentChooserWidget.pic.o src/gtk/PrintJob.pic.o src/gtk/OffscreenWindow.pic.o src/gtk/TextChildAnchor.pic.o src/gtk/Separator.pic.o src/gtk/Testing.pic.o src/gtk/StandardEnumerations.pic.o src/gtk/VSeparator.pic.o src/gtk/IMContextSimple.pic.o src/gtk/FileChooserWidget.pic.o src/gtk/Spinner.pic.o src/gtk/TreeView.pic.o src/gtk/ItemFactory.pic.o src/gtk/TreeDragSourceT.pic.o src/gtk/HandleBox.pic.o src/gtk/PageSetup.pic.o src/gtk/IconTheme.pic.o src/gtk/SpinButton.pic.o src/gtk/RadioAction.pic.o src/gtk/Layout.pic.o src/gtk/RecentFilter.pic.o src/gtk/AboutDialog.pic.o src/gtk/LinkButton.pic.o src/gtk/TreeSortableT.pic.o src/gtk/Tooltips.pic.o src/gtk/IconView.pic.o src/gtk/UIManager.pic.o src/gtk/RadioMenuItem.pic.o src/gtk/ActionGroup.pic.o src/gtk/ToggleButton.pic.o src/gtk/Signals.pic.o src/gtk/TreeSelection.pic.o src/gtk/EditableIF.pic.o src/gtk/VScale.pic.o src/gtk/Statusbar.pic.o src/gtk/EntryBuffer.pic.o src/gtk/Bin.pic.o src/gtk/ButtonBox.pic.o src/gtk/ToolItem.pic.o src/gtk/FileChooserDialog.pic.o src/gtk/Menu.pic.o src/gtk/Range.pic.o src/gtk/StockItem.pic.o src/gtk/CellView.pic.o src/gtk/ToolButton.pic.o src/gtk/Progress.pic.o src/gtk/TearoffMenuItem.pic.o src/gtk/InputDialog.pic.o src/gtk/TreeDragDestT.pic.o src/gtk/AccelMap.pic.o src/gtk/BindingSet.pic.o src/gtk/ObjectGtk.pic.o src/gtk/OrientableT.pic.o src/gtk/RecentChooserT.pic.o src/gtk/ComboBox.pic.o src/gtk/TreeModelT.pic.o src/gtk/Curve.pic.o src/gtk/Widget.pic.o src/gtk/PrintUnixDialog.pic.o src/gtk/HScrollbar.pic.o src/gtk/MenuItem.pic.o src/gtk/ToggleToolButton.pic.o src/gtk/Toolbar.pic.o src/gtk/VRuler.pic.o src/gtk/HBox.pic.o src/gtk/TargetList.pic.o src/gtk/TreeNode.pic.o src/gtk/HPaned.pic.o src/gtk/CellLayoutIF.pic.o src/gtk/Builder.pic.o src/gtk/EditableT.pic.o src/gtk/Accessible.pic.o src/gtk/PaperSize.pic.o src/gtk/Fixed.pic.o src/gtk/Ruler.pic.o src/gtk/TreeSortableIF.pic.o src/gtk/CellEditableIF.pic.o src/gtk/CellRendererText.pic.o src/gtk/Style.pic.o src/gtk/CellRendererCombo.pic.o src/gtk/Misc.pic.o src/gtk/IMMulticontext.pic.o src/gtk/TextIter.pic.o src/gtk/VBox.pic.o src/gtk/WindowGroup.pic.o src/gtk/DrawingArea.pic.o src/gtk/TextView.pic.o src/gtk/FileChooserIF.pic.o src/gtk/EventBox.pic.o src/gtk/RecentInfo.pic.o src/gtk/Printer.pic.o src/gtk/GCs.pic.o src/gtk/CellRendererSpinner.pic.o src/gtk/Table.pic.o src/gtk/Label.pic.o src/gtk/Arrow.pic.o src/gtk/ScrolledWindow.pic.o src/gtk/SeparatorMenuItem.pic.o src/gtk/TreeViewColumn.pic.o src/gtk/RadioToolButton.pic.o src/gtk/TreePath.pic.o src/gtk/InfoBar.pic.o src/gtk/ScaleButton.pic.o src/gtk/Dialog.pic.o src/gtk/RadioButton.pic.o src/gtk/CheckButton.pic.o src/gtk/Scrollbar.pic.o src/gtk/MenuBar.pic.o src/gtk/IMContext.pic.o src/gtk/Image.pic.o src/gtk/TextTag.pic.o src/gtk/Action.pic.o src/gtk/TreeIter.pic.o src/gtk/PrintOperationPreviewT.pic.o src/gtk/FileChooserT.pic.o src/gtk/VButtonBox.pic.o src/gtk/Socket.pic.o src/gtk/SizeGroup.pic.o src/gtk/MenuToolButton.pic.o src/gtk/TreeDragSourceIF.pic.o src/gtk/Timeout.pic.o src/gtk/Assistant.pic.o src/gtk/IconFactory.pic.o src/gtk/Tooltip.pic.o src/gtk/Settings.pic.o src/gtk/CellLayoutT.pic.o src/gtk/RecentChooserDialog.pic.o src/gtk/Button.pic.o src/gtk/TextBuffer.pic.o src/gtk/Frame.pic.o src/gtk/CellRendererProgress.pic.o src/gtk/ToolShellT.pic.o src/gtk/ToggleAction.pic.o src/gtk/TextMark.pic.o src/gtk/VolumeButton.pic.o src/gtk/Container.pic.o src/gtk/StatusIcon.pic.o src/gtk/IconInfo.pic.o src/gtk/HSeparator.pic.o src/gtk/CellRenderer.pic.o src/gtk/BuildableT.pic.o src/gtk/Adjustment.pic.o src/gtk/TextAttributes.pic.o src/gtk/RecentChooserMenu.pic.o src/gtk/MessageDialog.pic.o src/gtk/TextTagTable.pic.o src/gtk/Item.pic.o src/gtk/ProgressBar.pic.o src/gtk/VScrollbar.pic.o src/gtk/BuildableIF.pic.o src/gtk/Expander.pic.o src/gtk/FontButton.pic.o src/gtk/SeparatorToolItem.pic.o src/gtk/MenuShell.pic.o src/gtk/Calendar.pic.o src/gtk/ListStore.pic.o src/gtk/Plug.pic.o src/gtk/Notebook.pic.o src/gtk/HScale.pic.o src/gtk/FileChooserButton.pic.o src/gtk/TreeModelIF.pic.o src/gtk/Paned.pic.o src/gtk/FontSelection.pic.o src/gtk/ComboBoxEntry.pic.o src/gtk/ColorSelectionDialog.pic.o src/gtk/EntryCompletion.pic.o src/gtk/Alignment.pic.o src/gtk/Window.pic.o src/gtk/CellRendererToggle.pic.o src/gtk/TreeStore.pic.o src/gtk/Entry.pic.o src/gtk/ToolShellIF.pic.o src/gtk/PrintContext.pic.o src/gtk/ActivatableT.pic.o src/gtk/CellEditable.pic.o src/gtk/Clipboard.pic.o src/gtk/ImageMenuItem.pic.o src/gtk/FontSelectionDialog.pic.o src/gtk/HButtonBox.pic.o src/gtk/RecentAction.pic.o src/gtk/TreeDragDestIF.pic.o src/gtk/PopupBox.pic.o src/gtk/OrientableIF.pic.o src/gtk/Types.pic.o src/gtk/ActivatableIF.pic.o src/gtk/CellRendererAccel.pic.o src/gtk/IconSource.pic.o src/gtk/ColorButton.pic.o src/gtk/ToolPalette.pic.o src/gtk/Main.pic.o src/gtk/CheckMenuItem.pic.o src/gtk/MountOperation.pic.o src/gtk/TreeRowReference.pic.o src/gtk/AspectFrame.pic.o src/gtk/FileFilter.pic.o src/gtk/VPaned.pic.o src/pango/PgGlyphString.pic.o src/pango/PgEngineLang.pic.o src/pango/PgGlyphItemIter.pic.o src/pango/PgFontFamily.pic.o src/pango/PgCoverage.pic.o src/pango/PgVersion.pic.o src/pango/PgAttribute.pic.o src/pango/PgFont.pic.o src/pango/PgFontMap.pic.o src/pango/PgAttributeList.pic.o src/pango/PgContext.pic.o src/pango/PgFontDescription.pic.o src/pango/PgFontFace.pic.o src/pango/PgItem.pic.o src/pango/PgTabArray.pic.o src/pango/PgGlyphItem.pic.o src/pango/PgLayoutLine.pic.o src/pango/PgEngine.pic.o src/pango/PgCairoFontMap.pic.o src/pango/PgFontsetSimple.pic.o src/pango/PgMatrix.pic.o src/pango/PgEngineShape.pic.o src/pango/PgAttributeIterator.pic.o src/pango/PgColor.pic.o src/pango/PgFontset.pic.o src/pango/PgLayoutIter.pic.o src/pango/PgScriptIter.pic.o src/pango/PgCairo.pic.o src/pango/PgMiscellaneous.pic.o src/pango/PgRenderer.pic.o src/pango/PgLayout.pic.o src/pango/PgScript.pic.o src/pango/PgLanguage.pic.o src/pango/PgVertical.pic.o src/pango/PgFontMetrics.pic.o src/glade/Glade.pic.o src/gobject/Enums.pic.o src/gobject/Flags.pic.o src/gobject/CClosure.pic.o src/gobject/Type.pic.o src/gobject/Closure.pic.o src/gobject/ParamSpec.pic.o src/gobject/TypeModule.pic.o src/gobject/Binding.pic.o src/gobject/TypePlugin.pic.o src/gobject/ObjectG.pic.o src/gobject/Boxed.pic.o src/gobject/ParamSpecPool.pic.o src/gobject/Value.pic.o src/gobject/ValueArray.pic.o src/gobject/Signals.pic.o src/gtkc/gdkpixbuf.pic.o src/gtkc/gobjecttypes.pic.o src/gtkc/paths.pic.o src/gtkc/gthread.pic.o src/gtkc/glib.pic.o src/gtkc/cairo.pic.o src/gtkc/giotypes.pic.o src/gtkc/atk.pic.o src/gtkc/gtktypes.pic.o src/gtkc/gthreadtypes.pic.o src/gtkc/gtk.pic.o src/gtkc/Loader.pic.o src/gtkc/all.pic.o src/gtkc/cairotypes.pic.o src/gtkc/pangotypes.pic.o src/gtkc/gdk.pic.o src/gtkc/glade.pic.o src/gtkc/glibtypes.pic.o src/gtkc/atktypes.pic.o src/gtkc/pango.pic.o src/gtkc/gladetypes.pic.o src/gtkc/gobject.pic.o src/gtkc/gio.pic.o src/gtkc/gdktypes.pic.o src/gtkc/gdkpixbuftypes.pic.o src/gdkpixbuf/PixbufAnimationIter.pic.o src/gdkpixbuf/PixbufSimpleAnimation.pic.o src/gdkpixbuf/PixbufAnimation.pic.o src/gdkpixbuf/PixbufFormat.pic.o src/gdkpixbuf/PixbufLoader.pic.o src/gdkpixbuf/Pixdata.pic.o src/gthread/Thread.pic.o src/gthread/Private.pic.o src/gthread/RWLock.pic.o src/gthread/Mutex.pic.o src/gthread/StaticMutex.pic.o src/gthread/StaticRecMutex.pic.o src/gthread/StaticPrivate.pic.o src/gthread/Cond.pic.o src/glib/ArrayG.pic.o src/glib/MessageLog.pic.o src/glib/GLib.pic.o src/glib/KeyFile.pic.o src/glib/HashTable.pic.o src/glib/ThreadPool.pic.o src/glib/Tuples.pic.o src/glib/TrashStack.pic.o src/glib/VariantType.pic.o src/glib/OptionGroup.pic.o src/glib/ListSG.pic.o src/glib/MappedFile.pic.o src/glib/SequenceIter.pic.o src/glib/Unicode.pic.o src/glib/Idle.pic.o src/glib/Cache.pic.o src/glib/ListG.pic.o src/glib/Base64.pic.o src/glib/MatchInfo.pic.o src/glib/ByteArray.pic.o src/glib/MainLoop.pic.o src/glib/IOChannel.pic.o src/glib/DateTime.pic.o src/glib/VariantIter.pic.o src/glib/QueueG.pic.o src/glib/Pattern.pic.o src/glib/ConstructionException.pic.o src/glib/OptionContext.pic.o src/glib/StringG.pic.o src/glib/Module.pic.o src/glib/DataList.pic.o src/glib/StringCompletion.pic.o src/glib/Node.pic.o src/glib/Atomic.pic.o src/glib/Hostname.pic.o src/glib/BookmarkFile.pic.o src/glib/Regex.pic.o src/glib/HashTableIter.pic.o src/glib/Child.pic.o src/glib/GException.pic.o src/glib/PtrArray.pic.o src/glib/Variant.pic.o src/glib/TimeZone.pic.o src/glib/Checksum.pic.o src/glib/RandG.pic.o src/glib/TimeVal.pic.o src/glib/Util.pic.o src/glib/Memory.pic.o src/glib/BBTree.pic.o src/glib/URI.pic.o src/glib/Date.pic.o src/glib/FileUtils.pic.o src/glib/Messages.pic.o src/glib/Source.pic.o src/glib/MemorySlice.pic.o src/glib/Directory.pic.o src/glib/SimpleXML.pic.o src/glib/VariantBuilder.pic.o src/glib/Str.pic.o src/glib/CharacterSet.pic.o src/glib/MemoryChunk.pic.o src/glib/Internationalization.pic.o src/glib/MainContext.pic.o src/glib/AsyncQueue.pic.o src/glib/WindowsUtils.pic.o src/glib/Sequence.pic.o src/glib/StringGChunk.pic.o src/glib/ErrorG.pic.o src/glib/Timer.pic.o src/glib/Spawn.pic.o src/glib/ScannerG.pic.o src/glib/Quark.pic.o src/glib/ShellUtils.pic.o src/glib/Dataset.pic.o src/glib/Timeout.pic.o src/glib/Allocator.pic.o src/glib/Relation.pic.o -of test.so |
Code: | $ ldd libsrc/atk/Image.pic.so
linux-vdso.so.1 => (0x00007fffd33ff000)
libphobos2-ldc.so => /usr/lib64/libphobos2-ldc.so (0x00007f9b137a8000)
libdruntime-ldc.so => /usr/lib/libdruntime-ldc.so (0x00007f9b13504000)
libm.so.6 => /lib64/libm.so.6 (0x00007f9b1327f000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9b1307b000)
librt.so.1 => /lib64/librt.so.1 (0x00007f9b12e73000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9b12c56000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9b128a0000)
/lib64/ld-linux-x86-64.so.2 (0x000000317a000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9b1268b000)
|
|
|
Back to top |
|
|
bioinfornatics
Joined: 22 Jun 2010 Posts: 90
|
Posted: Thu Jan 19, 2012 11:31 am Post subject: |
|
|
I think we could use now -shared flag both ldc and dmd have it
Code: | $(DC) -shared $(output)$@.$(SO_VERSION) $^ |
instead of
Code: | $(CC) -shared -Wl,-soname,$@.$(SO_VERSION) -o $@.$(SO_VERSION) $^ |
In more instead use:
it is more flexible way to use
and invoke: $(output)$@ |
|
Back to top |
|
|
bioinfornatics
Joined: 22 Jun 2010 Posts: 90
|
Posted: Thu Jan 19, 2012 11:45 am Post subject: |
|
|
suggest this:
Code: | diff -up gtkd/GNUmakefile.diff2 gtkd/GNUmakefile
--- gtkd/GNUmakefile.diff2 2012-01-19 18:37:58.323640248 +0100
+++ gtkd/GNUmakefile 2012-01-19 18:39:44.863679795 +0100
@@ -25,11 +25,11 @@ endif
ifeq ("$(DC)","gdc")
DCFLAGS=-O2
LINKERFLAG=-Xlinker
- output=-o $@
+ output=-o
else
DCFLAGS=-O
LINKERFLAG=-L
- output=-of$@
+ output=-of
endif
ifneq (,$(findstring ldc,$(DC)))
@@ -162,27 +162,27 @@ $(LIBNAME_GSTREAMERD): $(LIBNAME_GTKD) $
#######################################################################
# When we get a shared standard lib use:
-# $(DC) $(LINKERFLAG)-shared $^ $(output)
+# $(DC) $(LINKERFLAG)-shared $^ $(output)$@
$(SONAME_GTKD): IMPORTS=-Isrc
$(SONAME_GTKD): $(PICOBJECTS_GTKD)
- $(CC) -shared -Wl,-soname,$@.$(SO_VERSION) -o $@.$(SO_VERSION) $^
+ $(DC) -shared $(output)$@.$(SO_VERSION) $^
$(SONAME_GTKDGL): IMPORTS=-Isrc -Isrcgl
$(SONAME_GTKDGL): $(PICOBJECTS_GTKDGL)
- $(CC) -shared -Wl,-soname,$@.$(SO_VERSION) -o $@.$(SO_VERSION) $^
+ $(DC) -shared $(output)$@.$(SO_VERSION) $^
$(SONAME_GTKDSV): IMPORTS=-Isrc -Isrcsv
$(SONAME_GTKDSV): $(PICOBJECTS_GTKDSV)
- $(CC) -shared -Wl,-soname,$@.$(SO_VERSION) -o $@.$(SO_VERSION) $^
+ $(DC) -shared $(output)$@.$(SO_VERSION) $^
$(SONAME_GTKDGDA): IMPORTS=-Isrc -Isrcgda
$(SONAME_GTKDGDA): $(PICOBJECTS_GTKDGDA)
- $(CC) -shared -Wl,-soname,$@.$(SO_VERSION) -o $@.$(SO_VERSION) $^
+ $(DC) -shared $(output)$@.$(SO_VERSION) $^
$(SONAME_GTKDGSTREAMERD): IMPORTS=-Isrc -Isrcgstreamer
$(SONAME_GTKDGSTREAMERD): $(PICOBJECTS_GTKDGSTREAMERD)
- $(CC) -shared -Wl,-soname,$@.$(SO_VERSION) -o $@.$(SO_VERSION) $^
+ $(DC) -shared $(output)$@.$(SO_VERSION) $^
#######################################################################
@@ -194,16 +194,16 @@ shared: LDFLAGS+= $(LINKERFLAG)-rpath=./
$(BINNAME_DEMO): IMPORTS=-Isrc -Idemos/gtkD/TestWindow
$(BINNAME_DEMO): $(LIBNAME_GTKD) $(OBJECTS_DEMO)
- $(DC) $(OBJECTS_DEMO) $(output) $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd $(LDFLAGS)
+ $(DC) $(OBJECTS_DEMO) $(output)$@ $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd $(LDFLAGS)
#######################################################################
%.o : %.d
- $(DC) $(DCFLAGS) $(IMPORTS) -c $< $(output)
+ $(DC) $(DCFLAGS) $(IMPORTS) -c $< $(output)$@
%.pic.o : %.d
ifneq (,$(findstring ldc,$(DC)))
- $(DC) $(DCFLAGS) $(FPIC) $(IMPORTS) -c $< $(output)
+ $(DC) $(DCFLAGS) $(FPIC) $(IMPORTS) -c $< $(output)$@
else
$(error shared not suported with $(DC))
endif |
yum can to, do these thing:
Code: | if gdc
shared=$(CC) -shared -Wl,-soname,$@.$(SO_VERSION) $(output)$@.$(SO_VERSION) $^
else
shared=$(DC) -shared $(output)$@.$(SO_VERSION) $^ |
Note it seem gdc have too the -shared flag so this should works everywhere
Code: | $(DC) -shared $(output)$@.$(SO_VERSION) $^ |
|
|
Back to top |
|
|
Mike Wey
Joined: 07 May 2007 Posts: 428
|
Posted: Sat Jan 21, 2012 9:09 am Post subject: |
|
|
I'll look into it. also see ticket #112 |
|
Back to top |
|
|
Mike Wey
Joined: 07 May 2007 Posts: 428
|
Posted: Sun Jan 22, 2012 10:29 am Post subject: |
|
|
Using:
Code: | $(DC) -shared $(output)$@.$(SO_VERSION) $^ |
with ldc2 the resulting library is named liblibgtkd.so.1.5.1.so because ldc doesn't recognize it as a library name.
I've also been reading about naming conventions for shared libraries.
And from what i gather the soname should only include the major version number.
That would lead to a setup like this:
libgtkd.so -> libgtkd.so.1.5.1 (Used when linking.)
libgtkd.so.1 -> libgtkd.so.1.5.1 (Used by the application.)
libgtkd.so.1.5.1 (The actual library.)
This does mean the major version can't make braking changes. For gtkd it might be better to use libgtkd.so.1.5 as the soname. Allowing the user to install a bugfix release of gtkd without recompiling the application.
One problem with this and with using the complete version number is that different compiler versions aren't very compatible, so a application build with 2.057 and a library build with 2.058 will not work. And the application has to be rebuild anyway? |
|
Back to top |
|
|
Mike Wey
Joined: 07 May 2007 Posts: 428
|
Posted: Mon Jan 30, 2012 4:16 pm Post subject: |
|
|
Changed in svn r923. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|