From: Subject: Static Linking Date: Mon, 8 Apr 2002 10:20:25 +0200 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0000_01C1DEE6.FFBD87A0"; type="text/html" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C1DEE6.FFBD87A0 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.cs.wisc.edu/~thomas/X/static-linking.html Static Linking
3D"University

Static Linking X11R6.3

3DWiscinfo
Wiscinfo
3D"CS
CS=20 Home

CSL

The X11R6.3 environment in the CS department includes a facility for = building=20 statically linked applications. The advantage of doing this is that = applications=20 built in this way do not depend on the presence of dynamic X libraries = to run.=20 The down side is that statically linked applications are generally much = larger=20 than dynamically linked applications.

All the standard X libraries have been built as both archives and = dynamic=20 libraries. There is also imake support for both vendor compilers and = gcc.


Linking by hand with the archives

The following examples all = show a=20 hypothetical application foo, linked with static versions of = the=20 X11 and Xext libraries and dynamic versions of=20 Xt and SM (the system libraries c,=20 socket, nsl, etc. are always linked dynamically. = Also, if=20 you link all the X libraries statically, you don't need to include the = -R path).=20

Building with an Imakefile

The macros used below are=20 not part of the standard X11R6.3 distribution. They are = local=20 hacks only, and will be no-ops at any other site. If you want the = additional=20 Imakefile code to define the $(LDSTATICFLAGS) and=20 $(LDDYNAMICFLAGS) macros, check out the site= .def=20 code that defines them.

When defining LOCAL_LIBRARIES, surround the libraries you = want=20 linked dynamically with the macros $(LDSTATICFLAGS) and=20 $(LDDYNAMICFLAGS), as in:

LOCAL_LIBRARIES =3D =
$(LDSTATICFLAGS) $(XMULIB) $(XTOOLLIB) $(XLIB) \
$(XAUTHLIB) $(XDMCPLIB) $(RPCLIB) $(UWLIBS) $(LDDYNAMICFLAGS) =
$(DLLIBRARY)
Then=20 reference $(LOCAL_LIBRARIES) in the = ComplexProgramTarget_1=20 as usual (the reference is implied in NormalProgramTarget. = imake will=20 generate the correct linker flags based on your machine architecture and = compiler.

An example use of this method can ba found in /afs/cs.wisc.edu/s/X11R6.3-1/src/xc/programs/xdm/Imakefile,=20 (our local xdm Imakefile), which builds a statically linked xdm for our=20 department.


site.def code

This is the scrap from our site.def file that = defines=20 the Imakefile macros.

# if HasGcc2
#  define StaticLinkFlags -static
#  define DynamicLinkFlags  -dynamic
# else /* Using vendor compilers - gross!) */
#  if defined (SVR4Architecture) && defined (SunArchitecture)
#   define StaticLinkFlags -B static
#   define DynamicLinkFlags  -B dynamic
#  endif /* Sun SVR4 */
#  if defined (AlphaArchitecture)
#   define StaticLinkFlags -non_shared
#   define DynamicLinkFlags -lc_r
#  endif /* Alpha */
# endif /* HasGcc2 else */


Last modified: Wed Mar 12 13:58:01 CST 1997=20
http://www.cs.wisc.edu/~thomas=20
------=_NextPart_000_0000_01C1DEE6.FFBD87A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.cs.wisc.edu/pics/csl_logo.gif R0lGODlhZAAyAMQAAP///+9aSvd7Wv/Gtf+tlO9CEO9KCPdrCP/Ga//enP+tAP/eQv/eEHOcrQBS c1KEnMbW3nOUpSFjhKW9znOUrZytvYylve/v98DAwAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA ABgALAAAAABkADIAQAX/ICaOZDkCEDRZbMua45WuVmTfeK5HEzBVEwgARizCAA2H8nG5PJTQR0UI qFqHEEdkKHFIqMbwqZp1PABdx0VsBFSUEkAEPmSHLxJKtmKJ241lTGlrfyZQFxZKFoWMJQkLCwwK BwKFgXhKhI0imA4pUBCboiRODYkQFH4ml4OjJQBPSj0UUGZgrioVFA8PEr6/DxZCGGVCvVhLnZqu YSiptdBQX2nR1dZwEhEWF3WvE9TX4VCLRCixURBNVeVvXhPc3cwVdQCIoPGiAIlKn4ebWZ8qXHBA YR2JK1fEsMrkap8FAKCYFflW4QGFHqMWqnEV690SfBKLABhAkkyELyBL/2hcJqqMp4HJQjaCxcQM ni0jVsokdc5BA24QLPQU92WoOGwXCTnxsgairE5Hr5Frc+Fb1AckIMyB9qtr16NfaEFjsvNgEig/ 9Rkdi2EC0yFWa/nixetXNQlLrQWBwzJjFBS1KPQtkiSUlyH7vNiNdkbhx1bMxMZJPCxfLzw1KzML hIbhKJhq3B4uSxOCBAsUcPo103njqDT9GpctgWjIAAYMDhBgxBmyKNjtKMwuMuCAgkkGdqeE0duz KNFnOi4ffsLGrgkWpzd3vVqNS4zUm0n44akBXpWPnY+qhxaAWJvTGzkJNqWJfRntmrA+SWj74IzU NFDPUHNFQMGBB1ag4P+CU9STwn3wIGQFBBVB0QMsDkxATHpmIOjhhyAiGAogBGoThDrcpBihhFfc h08TKehCzTwxpHFaPSzmyOIfKDTQyzVY0VbBSeBEZc0XLknwU3gHxVWLRaa40ICGIrTjhTbprGgF hDpuOcEE5kGh2mw+yDUPChUVuQQGmJxRB5i+GCmXaVwBIcdHpJ3lhRBOSuNVHm1pAVcU9XWZIgrp oLngN2mc4Rsz+kBRkGhwCBYfmxI0xg8WQnnFSwQNAMGNY6w9ul6jZVp46SsEYbiGEvXZlwKFuzCx qn8SgTYPNZoxwt9lvKxqB66ugJbOOMK2kUcWFnzzH28cPssGhhl2QmX/SGjo4YAFPiZbBLHPfRRL BcO5N94DPo7ZCLibbOURU0yapkcVJA3grQjsNgKcEsIxKYJtCwAgyQEDWBKtK4e0M5W/GCAgyXEH BGBwqerpyw9nDP9LQAEGGCBAFduwkS8jYj0UUcbeXCcBjd8e/Bkd+wSJ8kEG9oEdWcy5nE/M1Mo2 8wkrv4HKeehRzJ1l4tLx80FZXJDKfPGMPFMscViJM2lWlENLVRlmca3UM1k5izTXSrTWYoqI0IUM PuGrc67naGjlEg3euwkKXZxHSyhg5wPVA3yudRTgaiqWKV1xPkklJhq6RK2c1Sz8SmJKRJBoPV8y qLmoF2zu+YIPHlRVQRoPYeAeXz58qfrqrLf+5YhtYHfNn9vSSdSfX0Fj+StzG477712RyyOaEfSi ZlU7JI9DahSwEESiYnT+I+TQWBACADs= ------=_NextPart_000_0000_01C1DEE6.FFBD87A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.cs.wisc.edu/bullets/50wisc.gif R0lGODlhMgAyAPQAAP///52am6Klpa6trbm6us3Ky9XW1uXY3ubn5+/v7/f399+guLuInNRxk65i fp1ugYxTaJ83XYotT3oaOpYNPncHLbYkV7pJcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA AAAALAAAAAAyADIAAAX+ICCOZFkqSpIgLKIqZizPJpqkqtoePAvTwBhqSMytWDyD8vALOonDm3GX NBQKCCdtOIJBcS7EQXxQXgsJba0rQgFQh8LikEOWzVfCQc1+t9sHCwwNhAyGc3Z4eQZqbk2AhAsN FxYWFw2GDg1Yd2cFBAQFWo8iCYKFFxSqqxEODA6uc1ZnoAOiQI4jkoOUFJWrwBStsA4Ls5+1ezNc IgaRDZXRv8GrErCtocgEAwNpQm4ACIOT0Rfm5tIW1KoXDu2hoAQCBN9uBYTQFg1zPP2BCwAFGcp0 IUKrBxEY1BoQ4BaJFCgQXBrEIKBFQpQqGdx4jpiDBx/jDRAw4MQNG+T+LF0C6C/guIGwzBmUQDPC gFoCBARgNOLFkEn75owgowzHgnbFyhQYCBKCwm0jAwjo8uIGgmeXRhyYtKANiwKpKDAwk0pCwQgP oEYNoMxIxEpgLSh7w/UNkqvCCpgZoIpBhAoBoOYMELiUkRvmJFpocsDcAgViDPBgkPeKAQISKBB4 IFYw4QAlw7l4IbEBgkr/eFRaANYcgwOUExJbkHmAgwmBR+r8bHW0Dn0HLC2otG81ZVUOYAtzoEoC g8wMHgDeNvgznTFhEgRvEPzC8WLqKq5yYCA2cwrOI0yIXuGBbsK7DbRokcCAhbGWGiA/bmh8+eWr +FUBe+7ltBthnMz+l0AB9xlAwSXs8HccBeSZR0EFYv0VgHQQrCUVgv60wOAmDwokCXoKDcRabNE9 8ICAG1bQ4Wc06uHPGAVQQGIE8rHAXxVWcCaBLXlIABiHOiX5mR6S+VNAQgVIEEEB/fCnxDGUDRkP Zke2d+CHDd3RDwJPMpDjlHfwJ0dFVwh5Uy1GuuglfDRiodcScbQS5ZRXqhmBMKxJ51w8AhgZ4wNf fobGnVdG6UCUEjAqoSrtFSDoUwQwMEGXiNK5GxOeXBnBBU9SYIxek17owGYVSDAPNwFMgBsEc9Io VRqenGFQqdkspcqLF7bHqpawyhoArZ0qCVozoT5nFjtncEYhAxX+VAsBAbRO4N5ItLa6KQS2EkZP OL3K4ZE78ERQ04YuRkeBrBCQFABNENQLQbJgzvUJLTTV1I6LAD8QwEAtunivwRD0O4Grtg7QxGXw gHVvQZlduOm7GMuq8abVVqAxTdru9ulDWxYQAHoHBQywvSzfezDCCcdLJ2ikHPBmph13vKms/fab MMga52xtojyVsA2cOgvMWc4Ly8p0vUbmjO+yMSDADSh/VTvBm/MOPVjUEkilE8cegwmaNzEYkBOr WoPGTbeIMiBVtviSjRuNc8lgsk5Rt6cb3CJn+9nYHcuMoBMmf/iABPHmJJ2MgZedpHQLC7ybQ0Ek buDg805guABNECxstuUMHc6H2pynPrOtSR4oQNF8WE2j6+EqWzvafLRRwJe0m/3hgbaQkrvuiSbq u1QFCD88CQvKE27toSi/vBAIWLElKHohID0NIQAAIf4zUmVkdWNlZCA1MiUgQCB3d3cucmFzcGJl cnJ5aGlsbC5jb20vZ2lmd2l6YXJkLmh0bWwAADs= ------=_NextPart_000_0000_01C1DEE6.FFBD87A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.cs.wisc.edu/bullets/80red_url.gif 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 aHRtbAAAOw== ------=_NextPart_000_0000_01C1DEE6.FFBD87A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.cs.wisc.edu/bullets/50csl.gif R0lGODlhMgAyAPQAAP///52cnKKlpa2trba1s7u9v8LHyc7OztbW1t3e3ujn5+7v7/f394myw3mb q4ONkWN9jkxufzZZbCBOYgs6U8l0T8deAtakGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA AAAALAAAAAAyADIAAAX+ICCOZFkyS7oorLIwZizPJoOi6qokfOLSwJltSMzpeIgDQgELOm0A4i3X 2iUQyUPCSYN6o7ZXysXqYQ8Hw6HJJTXf4CG1Zc4aCor2COqOT1V0SHZ3CG18USIwUjhjZYKDBQQH XIp9b4uNjmdpdwUDhUCHe3sLCQUNqKkNBAatSmetBZEDeUJsDKYLUQYQEb6/vhISE8TFEQIOrJ0E AwNsJ1AJDsMQNg0ODQYJpbKpDt/gEQ8QFBQRywMCBTEoAAsRExHf66i7qA69EcPFExL5vhAmQLhD gFmASdAWQIBwDV6BBA0AQMy2LYoCTgQcPHAAb0K5CAEJzBoQwJkbFAv+IUgA6aBUAwbZoiQwcA3C N0lm0BQgR+7BSAEPQIl4gU9CSzYLGiTF1SoWPngOHikRYC7eLAECSrppADXOCAMMDCTdkqiMGixZ 0FDVJ8FTswBwazFQ0KvaDT5JaWor20MqpwEUVk4omC5rAAOJCPh6EebFCIg0G2wpVWdTmgME+gVs lg5uAAIi6LZlpILENXDa+qJFw8lAZoETmmH1LMBGgoWkc/C5DVLeo7RNXRMjJ9sw3AS4GM6lskIF igK/ol6x3DoSsQgUBHQOYPiAAgMRCmSqEug7hAdqJAFvKouABHMUuBuHK3YaHvJV+vJohYDAhQqS oMFee+9h94BhxuH+MY0B+OnnYAL+XWBBBQLG0p578B3oGXcBKNiWFQ+qhgWEFpRYwYAXYmhgVvM9 ZF+IIq5WQAU07jRQJ5EwUyAFGsKVFXoQRkAAjNOhldYBBRzQwEIPiFQQYR4Z6OOGDIIXFQJXFGnk kRUaME5KAxCWTpTxzQfXAQuAF4EWW67GGmvBGSBASiAJwMyY8cRHm2fIIQCVlptwGWcBBgzwDwTa kXTdBFPSBgMCHLXF5ZtdWihLAQL0pk9JD1AQD6PGZQWaRGpKoAalrQ166ZPj/IJop/0wKh9QDyCU pgPXGTDIoF6eF+adAgij0gMSPNDpMBLMRiyPtQDQygPwrOTAALz+yqISP8SsFEBAAax07HDDeCrB ACSYAp0/5XgKkrGEyZKOsfDC20+wCwXmkbjZChVFJND1EwwxgQXUz0pMtrpPsZ2epy5b1wlgQgID RLKsvympJMzFGANkLHYRwPVeuv7Ape9XYUr8sS+e+gsMSAv54lE8PlosDoejmrAAZ0+SFIDB+2Cb rTDisOgjVgjqIoMCieLczJ3bxWvsrPOZGQBZMxwwa2GFEc0hglJLfaYTBQw922wbls1h2Qh6ts4T Vpu9p9BmCm02YnokkHajbt+9J3dU66EAAQ/gvfXZaBNOQLN6JCLnhl0PvuGBayTOzuKME543WJJ3 gYAnj7sdMQIOz2TexUWrikSod6E7EQIAIf4zUmVkdWNlZCA1MCUgQCB3d3cucmFzcGJlcnJ5aGls bC5jb20vZ2lmd2l6YXJkLmh0bWwAADs= ------=_NextPart_000_0000_01C1DEE6.FFBD87A0--