summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/libbacktrace-8602fda
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:54:23 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:54:44 +0000
commit836b47cb7e99a977c5a23b059ca1d0b5065d310e (patch)
tree1604da8f482d02effa033c94a84be42bc0c848c3 /fluent-bit/lib/libbacktrace-8602fda
parentReleasing debian version 1.44.3-2. (diff)
downloadnetdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.tar.xz
netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.zip
Merging upstream version 1.46.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/libbacktrace-8602fda')
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/.gitignore5
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/Isaac.Newton-Opticks.txt9286
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/LICENSE29
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/Makefile.am591
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/Makefile.in2544
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/README.md36
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/aclocal.m4864
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/alloc.c167
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/allocfail.c136
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/allocfail.sh104
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/atomic.c113
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/backtrace-supported.h.in66
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/backtrace.c129
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/backtrace.h189
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/btest.c501
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/compile348
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/config.guess1700
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config.h.in172
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/config.sub1885
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/enable.m438
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/lead-dot.m431
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/libtool.m47436
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/ltoptions.m4369
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/ltsugar.m4123
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/ltversion.m423
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/lt~obsolete.m498
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/multi.m468
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/override.m4117
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/unwind_ipinfo.m437
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/config/warnings.m4227
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/configure15569
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/configure.ac582
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/dwarf.c4402
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/edtest.c120
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/edtest2.c43
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/elf.c4924
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/fileline.c346
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/filenames.h52
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/filetype.awk13
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/install-debuginfo-for-buildid.sh.in65
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/install-sh501
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/instrumented_alloc.c114
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/internal.h380
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/libtool.m47436
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/ltmain.sh8636
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/ltoptions.m4369
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/ltsugar.m4123
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/ltversion.m423
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/lt~obsolete.m498
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/macho.c1355
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/missing215
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/mmap.c331
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/mmapio.c110
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/move-if-change83
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/mtest.c410
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/nounwind.c66
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/pecoff.c935
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/posix.c104
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/print.c92
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/read.c110
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/simple.c108
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/sort.c108
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/state.c72
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/stest.c137
-rwxr-xr-xfluent-bit/lib/libbacktrace-8602fda/test-driver148
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/test_format.c55
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/testlib.c234
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/testlib.h110
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/ttest.c161
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/unittest.c92
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/unknown.c65
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/xcoff.c1606
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/xztest.c508
-rw-r--r--fluent-bit/lib/libbacktrace-8602fda/ztest.c541
74 files changed, 0 insertions, 78984 deletions
diff --git a/fluent-bit/lib/libbacktrace-8602fda/.gitignore b/fluent-bit/lib/libbacktrace-8602fda/.gitignore
deleted file mode 100644
index 86a40a0e2..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-*~
-*.o
-*.lo
-*.a
-*.la
diff --git a/fluent-bit/lib/libbacktrace-8602fda/Isaac.Newton-Opticks.txt b/fluent-bit/lib/libbacktrace-8602fda/Isaac.Newton-Opticks.txt
deleted file mode 100644
index 15bb4c54d..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/Isaac.Newton-Opticks.txt
+++ /dev/null
@@ -1,9286 +0,0 @@
-Produced by Suzanne Lybarger, steve harris, Josephine
-Paolucci and the Online Distributed Proofreading Team at
-http://www.pgdp.net.
-
-
-
-
-
-
-OPTICKS:
-
-OR, A
-
-TREATISE
-
-OF THE
-
-_Reflections_, _Refractions_,
-_Inflections_ and _Colours_
-
-OF
-
-LIGHT.
-
-_The_ FOURTH EDITION, _corrected_.
-
-By Sir _ISAAC NEWTON_, Knt.
-
-LONDON:
-
-Printed for WILLIAM INNYS at the West-End of St. _Paul's_. MDCCXXX.
-
-TITLE PAGE OF THE 1730 EDITION
-
-
-
-
-SIR ISAAC NEWTON'S ADVERTISEMENTS
-
-
-
-
-Advertisement I
-
-
-_Part of the ensuing Discourse about Light was written at the Desire of
-some Gentlemen of the_ Royal-Society, _in the Year 1675, and then sent
-to their Secretary, and read at their Meetings, and the rest was added
-about twelve Years after to complete the Theory; except the third Book,
-and the last Proposition of the Second, which were since put together
-out of scatter'd Papers. To avoid being engaged in Disputes about these
-Matters, I have hitherto delayed the printing, and should still have
-delayed it, had not the Importunity of Friends prevailed upon me. If any
-other Papers writ on this Subject are got out of my Hands they are
-imperfect, and were perhaps written before I had tried all the
-Experiments here set down, and fully satisfied my self about the Laws of
-Refractions and Composition of Colours. I have here publish'd what I
-think proper to come abroad, wishing that it may not be translated into
-another Language without my Consent._
-
-_The Crowns of Colours, which sometimes appear about the Sun and Moon, I
-have endeavoured to give an Account of; but for want of sufficient
-Observations leave that Matter to be farther examined. The Subject of
-the Third Book I have also left imperfect, not having tried all the
-Experiments which I intended when I was about these Matters, nor
-repeated some of those which I did try, until I had satisfied my self
-about all their Circumstances. To communicate what I have tried, and
-leave the rest to others for farther Enquiry, is all my Design in
-publishing these Papers._
-
-_In a Letter written to Mr._ Leibnitz _in the year 1679, and published
-by Dr._ Wallis, _I mention'd a Method by which I had found some general
-Theorems about squaring Curvilinear Figures, or comparing them with the
-Conic Sections, or other the simplest Figures with which they may be
-compared. And some Years ago I lent out a Manuscript containing such
-Theorems, and having since met with some Things copied out of it, I have
-on this Occasion made it publick, prefixing to it an_ Introduction, _and
-subjoining a_ Scholium _concerning that Method. And I have joined with
-it another small Tract concerning the Curvilinear Figures of the Second
-Kind, which was also written many Years ago, and made known to some
-Friends, who have solicited the making it publick._
-
- _I. N._
-
-April 1, 1704.
-
-
-Advertisement II
-
-_In this Second Edition of these Opticks I have omitted the Mathematical
-Tracts publish'd at the End of the former Edition, as not belonging to
-the Subject. And at the End of the Third Book I have added some
-Questions. And to shew that I do not take Gravity for an essential
-Property of Bodies, I have added one Question concerning its Cause,
-chusing to propose it by way of a Question, because I am not yet
-satisfied about it for want of Experiments._
-
- _I. N._
-
-July 16, 1717.
-
-
-Advertisement to this Fourth Edition
-
-_This new Edition of Sir_ Isaac Newton's Opticks _is carefully printed
-from the Third Edition, as it was corrected by the Author's own Hand,
-and left before his Death with the Bookseller. Since Sir_ Isaac's
-Lectiones Opticæ, _which he publickly read in the University of_
-Cambridge _in the Years 1669, 1670, and 1671, are lately printed, it has
-been thought proper to make at the bottom of the Pages several Citations
-from thence, where may be found the Demonstrations, which the Author
-omitted in these_ Opticks.
-
- * * * * *
-
-Transcriber's Note: There are several greek letters used in the
-descriptions of the illustrations. They are signified by [Greek:
-letter]. Square roots are noted by the letters sqrt before the equation.
-
- * * * * *
-
-THE FIRST BOOK OF OPTICKS
-
-
-
-
-_PART I._
-
-
-My Design in this Book is not to explain the Properties of Light by
-Hypotheses, but to propose and prove them by Reason and Experiments: In
-order to which I shall premise the following Definitions and Axioms.
-
-
-
-
-_DEFINITIONS_
-
-
-DEFIN. I.
-
-_By the Rays of Light I understand its least Parts, and those as well
-Successive in the same Lines, as Contemporary in several Lines._ For it
-is manifest that Light consists of Parts, both Successive and
-Contemporary; because in the same place you may stop that which comes
-one moment, and let pass that which comes presently after; and in the
-same time you may stop it in any one place, and let it pass in any
-other. For that part of Light which is stopp'd cannot be the same with
-that which is let pass. The least Light or part of Light, which may be
-stopp'd alone without the rest of the Light, or propagated alone, or do
-or suffer any thing alone, which the rest of the Light doth not or
-suffers not, I call a Ray of Light.
-
-
-DEFIN. II.
-
-_Refrangibility of the Rays of Light, is their Disposition to be
-refracted or turned out of their Way in passing out of one transparent
-Body or Medium into another. And a greater or less Refrangibility of
-Rays, is their Disposition to be turned more or less out of their Way in
-like Incidences on the same Medium._ Mathematicians usually consider the
-Rays of Light to be Lines reaching from the luminous Body to the Body
-illuminated, and the refraction of those Rays to be the bending or
-breaking of those lines in their passing out of one Medium into another.
-And thus may Rays and Refractions be considered, if Light be propagated
-in an instant. But by an Argument taken from the Æquations of the times
-of the Eclipses of _Jupiter's Satellites_, it seems that Light is
-propagated in time, spending in its passage from the Sun to us about
-seven Minutes of time: And therefore I have chosen to define Rays and
-Refractions in such general terms as may agree to Light in both cases.
-
-
-DEFIN. III.
-
-_Reflexibility of Rays, is their Disposition to be reflected or turned
-back into the same Medium from any other Medium upon whose Surface they
-fall. And Rays are more or less reflexible, which are turned back more
-or less easily._ As if Light pass out of a Glass into Air, and by being
-inclined more and more to the common Surface of the Glass and Air,
-begins at length to be totally reflected by that Surface; those sorts of
-Rays which at like Incidences are reflected most copiously, or by
-inclining the Rays begin soonest to be totally reflected, are most
-reflexible.
-
-
-DEFIN. IV.
-
-_The Angle of Incidence is that Angle, which the Line described by the
-incident Ray contains with the Perpendicular to the reflecting or
-refracting Surface at the Point of Incidence._
-
-
-DEFIN. V.
-
-_The Angle of Reflexion or Refraction, is the Angle which the line
-described by the reflected or refracted Ray containeth with the
-Perpendicular to the reflecting or refracting Surface at the Point of
-Incidence._
-
-
-DEFIN. VI.
-
-_The Sines of Incidence, Reflexion, and Refraction, are the Sines of the
-Angles of Incidence, Reflexion, and Refraction._
-
-
-DEFIN. VII
-
-_The Light whose Rays are all alike Refrangible, I call Simple,
-Homogeneal and Similar; and that whose Rays are some more Refrangible
-than others, I call Compound, Heterogeneal and Dissimilar._ The former
-Light I call Homogeneal, not because I would affirm it so in all
-respects, but because the Rays which agree in Refrangibility, agree at
-least in all those their other Properties which I consider in the
-following Discourse.
-
-
-DEFIN. VIII.
-
-_The Colours of Homogeneal Lights, I call Primary, Homogeneal and
-Simple; and those of Heterogeneal Lights, Heterogeneal and Compound._
-For these are always compounded of the colours of Homogeneal Lights; as
-will appear in the following Discourse.
-
-
-
-
-_AXIOMS._
-
-
-AX. I.
-
-_The Angles of Reflexion and Refraction, lie in one and the same Plane
-with the Angle of Incidence._
-
-
-AX. II.
-
-_The Angle of Reflexion is equal to the Angle of Incidence._
-
-
-AX. III.
-
-_If the refracted Ray be returned directly back to the Point of
-Incidence, it shall be refracted into the Line before described by the
-incident Ray._
-
-
-AX. IV.
-
-_Refraction out of the rarer Medium into the denser, is made towards the
-Perpendicular; that is, so that the Angle of Refraction be less than the
-Angle of Incidence._
-
-
-AX. V.
-
-_The Sine of Incidence is either accurately or very nearly in a given
-Ratio to the Sine of Refraction._
-
-Whence if that Proportion be known in any one Inclination of the
-incident Ray, 'tis known in all the Inclinations, and thereby the
-Refraction in all cases of Incidence on the same refracting Body may be
-determined. Thus if the Refraction be made out of Air into Water, the
-Sine of Incidence of the red Light is to the Sine of its Refraction as 4
-to 3. If out of Air into Glass, the Sines are as 17 to 11. In Light of
-other Colours the Sines have other Proportions: but the difference is so
-little that it need seldom be considered.
-
-[Illustration: FIG. 1]
-
-Suppose therefore, that RS [in _Fig._ 1.] represents the Surface of
-stagnating Water, and that C is the point of Incidence in which any Ray
-coming in the Air from A in the Line AC is reflected or refracted, and I
-would know whither this Ray shall go after Reflexion or Refraction: I
-erect upon the Surface of the Water from the point of Incidence the
-Perpendicular CP and produce it downwards to Q, and conclude by the
-first Axiom, that the Ray after Reflexion and Refraction, shall be
-found somewhere in the Plane of the Angle of Incidence ACP produced. I
-let fall therefore upon the Perpendicular CP the Sine of Incidence AD;
-and if the reflected Ray be desired, I produce AD to B so that DB be
-equal to AD, and draw CB. For this Line CB shall be the reflected Ray;
-the Angle of Reflexion BCP and its Sine BD being equal to the Angle and
-Sine of Incidence, as they ought to be by the second Axiom, But if the
-refracted Ray be desired, I produce AD to H, so that DH may be to AD as
-the Sine of Refraction to the Sine of Incidence, that is, (if the Light
-be red) as 3 to 4; and about the Center C and in the Plane ACP with the
-Radius CA describing a Circle ABE, I draw a parallel to the
-Perpendicular CPQ, the Line HE cutting the Circumference in E, and
-joining CE, this Line CE shall be the Line of the refracted Ray. For if
-EF be let fall perpendicularly on the Line PQ, this Line EF shall be the
-Sine of Refraction of the Ray CE, the Angle of Refraction being ECQ; and
-this Sine EF is equal to DH, and consequently in Proportion to the Sine
-of Incidence AD as 3 to 4.
-
-In like manner, if there be a Prism of Glass (that is, a Glass bounded
-with two Equal and Parallel Triangular ends, and three plain and well
-polished Sides, which meet in three Parallel Lines running from the
-three Angles of one end to the three Angles of the other end) and if the
-Refraction of the Light in passing cross this Prism be desired: Let ACB
-[in _Fig._ 2.] represent a Plane cutting this Prism transversly to its
-three Parallel lines or edges there where the Light passeth through it,
-and let DE be the Ray incident upon the first side of the Prism AC where
-the Light goes into the Glass; and by putting the Proportion of the Sine
-of Incidence to the Sine of Refraction as 17 to 11 find EF the first
-refracted Ray. Then taking this Ray for the Incident Ray upon the second
-side of the Glass BC where the Light goes out, find the next refracted
-Ray FG by putting the Proportion of the Sine of Incidence to the Sine of
-Refraction as 11 to 17. For if the Sine of Incidence out of Air into
-Glass be to the Sine of Refraction as 17 to 11, the Sine of Incidence
-out of Glass into Air must on the contrary be to the Sine of Refraction
-as 11 to 17, by the third Axiom.
-
-[Illustration: FIG. 2.]
-
-Much after the same manner, if ACBD [in _Fig._ 3.] represent a Glass
-spherically convex on both sides (usually called a _Lens_, such as is a
-Burning-glass, or Spectacle-glass, or an Object-glass of a Telescope)
-and it be required to know how Light falling upon it from any lucid
-point Q shall be refracted, let QM represent a Ray falling upon any
-point M of its first spherical Surface ACB, and by erecting a
-Perpendicular to the Glass at the point M, find the first refracted Ray
-MN by the Proportion of the Sines 17 to 11. Let that Ray in going out of
-the Glass be incident upon N, and then find the second refracted Ray
-N_q_ by the Proportion of the Sines 11 to 17. And after the same manner
-may the Refraction be found when the Lens is convex on one side and
-plane or concave on the other, or concave on both sides.
-
-[Illustration: FIG. 3.]
-
-
-AX. VI.
-
-_Homogeneal Rays which flow from several Points of any Object, and fall
-perpendicularly or almost perpendicularly on any reflecting or
-refracting Plane or spherical Surface, shall afterwards diverge from so
-many other Points, or be parallel to so many other Lines, or converge to
-so many other Points, either accurately or without any sensible Error.
-And the same thing will happen, if the Rays be reflected or refracted
-successively by two or three or more Plane or Spherical Surfaces._
-
-The Point from which Rays diverge or to which they converge may be
-called their _Focus_. And the Focus of the incident Rays being given,
-that of the reflected or refracted ones may be found by finding the
-Refraction of any two Rays, as above; or more readily thus.
-
-_Cas._ 1. Let ACB [in _Fig._ 4.] be a reflecting or refracting Plane,
-and Q the Focus of the incident Rays, and Q_q_C a Perpendicular to that
-Plane. And if this Perpendicular be produced to _q_, so that _q_C be
-equal to QC, the Point _q_ shall be the Focus of the reflected Rays: Or
-if _q_C be taken on the same side of the Plane with QC, and in
-proportion to QC as the Sine of Incidence to the Sine of Refraction, the
-Point _q_ shall be the Focus of the refracted Rays.
-
-[Illustration: FIG. 4.]
-
-_Cas._ 2. Let ACB [in _Fig._ 5.] be the reflecting Surface of any Sphere
-whose Centre is E. Bisect any Radius thereof, (suppose EC) in T, and if
-in that Radius on the same side the Point T you take the Points Q and
-_q_, so that TQ, TE, and T_q_, be continual Proportionals, and the Point
-Q be the Focus of the incident Rays, the Point _q_ shall be the Focus of
-the reflected ones.
-
-[Illustration: FIG. 5.]
-
-_Cas._ 3. Let ACB [in _Fig._ 6.] be the refracting Surface of any Sphere
-whose Centre is E. In any Radius thereof EC produced both ways take ET
-and C_t_ equal to one another and severally in such Proportion to that
-Radius as the lesser of the Sines of Incidence and Refraction hath to
-the difference of those Sines. And then if in the same Line you find any
-two Points Q and _q_, so that TQ be to ET as E_t_ to _tq_, taking _tq_
-the contrary way from _t_ which TQ lieth from T, and if the Point Q be
-the Focus of any incident Rays, the Point _q_ shall be the Focus of the
-refracted ones.
-
-[Illustration: FIG. 6.]
-
-And by the same means the Focus of the Rays after two or more Reflexions
-or Refractions may be found.
-
-[Illustration: FIG. 7.]
-
-_Cas._ 4. Let ACBD [in _Fig._ 7.] be any refracting Lens, spherically
-Convex or Concave or Plane on either side, and let CD be its Axis (that
-is, the Line which cuts both its Surfaces perpendicularly, and passes
-through the Centres of the Spheres,) and in this Axis produced let F and
-_f_ be the Foci of the refracted Rays found as above, when the incident
-Rays on both sides the Lens are parallel to the same Axis; and upon the
-Diameter F_f_ bisected in E, describe a Circle. Suppose now that any
-Point Q be the Focus of any incident Rays. Draw QE cutting the said
-Circle in T and _t_, and therein take _tq_ in such proportion to _t_E as
-_t_E or TE hath to TQ. Let _tq_ lie the contrary way from _t_ which TQ
-doth from T, and _q_ shall be the Focus of the refracted Rays without
-any sensible Error, provided the Point Q be not so remote from the Axis,
-nor the Lens so broad as to make any of the Rays fall too obliquely on
-the refracting Surfaces.[A]
-
-And by the like Operations may the reflecting or refracting Surfaces be
-found when the two Foci are given, and thereby a Lens be formed, which
-shall make the Rays flow towards or from what Place you please.[B]
-
-So then the Meaning of this Axiom is, that if Rays fall upon any Plane
-or Spherical Surface or Lens, and before their Incidence flow from or
-towards any Point Q, they shall after Reflexion or Refraction flow from
-or towards the Point _q_ found by the foregoing Rules. And if the
-incident Rays flow from or towards several points Q, the reflected or
-refracted Rays shall flow from or towards so many other Points _q_
-found by the same Rules. Whether the reflected and refracted Rays flow
-from or towards the Point _q_ is easily known by the situation of that
-Point. For if that Point be on the same side of the reflecting or
-refracting Surface or Lens with the Point Q, and the incident Rays flow
-from the Point Q, the reflected flow towards the Point _q_ and the
-refracted from it; and if the incident Rays flow towards Q, the
-reflected flow from _q_, and the refracted towards it. And the contrary
-happens when _q_ is on the other side of the Surface.
-
-
-AX. VII.
-
-_Wherever the Rays which come from all the Points of any Object meet
-again in so many Points after they have been made to converge by
-Reflection or Refraction, there they will make a Picture of the Object
-upon any white Body on which they fall._
-
-So if PR [in _Fig._ 3.] represent any Object without Doors, and AB be a
-Lens placed at a hole in the Window-shut of a dark Chamber, whereby the
-Rays that come from any Point Q of that Object are made to converge and
-meet again in the Point _q_; and if a Sheet of white Paper be held at
-_q_ for the Light there to fall upon it, the Picture of that Object PR
-will appear upon the Paper in its proper shape and Colours. For as the
-Light which comes from the Point Q goes to the Point _q_, so the Light
-which comes from other Points P and R of the Object, will go to so many
-other correspondent Points _p_ and _r_ (as is manifest by the sixth
-Axiom;) so that every Point of the Object shall illuminate a
-correspondent Point of the Picture, and thereby make a Picture like the
-Object in Shape and Colour, this only excepted, that the Picture shall
-be inverted. And this is the Reason of that vulgar Experiment of casting
-the Species of Objects from abroad upon a Wall or Sheet of white Paper
-in a dark Room.
-
-In like manner, when a Man views any Object PQR, [in _Fig._ 8.] the
-Light which comes from the several Points of the Object is so refracted
-by the transparent skins and humours of the Eye, (that is, by the
-outward coat EFG, called the _Tunica Cornea_, and by the crystalline
-humour AB which is beyond the Pupil _mk_) as to converge and meet again
-in so many Points in the bottom of the Eye, and there to paint the
-Picture of the Object upon that skin (called the _Tunica Retina_) with
-which the bottom of the Eye is covered. For Anatomists, when they have
-taken off from the bottom of the Eye that outward and most thick Coat
-called the _Dura Mater_, can then see through the thinner Coats, the
-Pictures of Objects lively painted thereon. And these Pictures,
-propagated by Motion along the Fibres of the Optick Nerves into the
-Brain, are the cause of Vision. For accordingly as these Pictures are
-perfect or imperfect, the Object is seen perfectly or imperfectly. If
-the Eye be tinged with any colour (as in the Disease of the _Jaundice_)
-so as to tinge the Pictures in the bottom of the Eye with that Colour,
-then all Objects appear tinged with the same Colour. If the Humours of
-the Eye by old Age decay, so as by shrinking to make the _Cornea_ and
-Coat of the _Crystalline Humour_ grow flatter than before, the Light
-will not be refracted enough, and for want of a sufficient Refraction
-will not converge to the bottom of the Eye but to some place beyond it,
-and by consequence paint in the bottom of the Eye a confused Picture,
-and according to the Indistinctness of this Picture the Object will
-appear confused. This is the reason of the decay of sight in old Men,
-and shews why their Sight is mended by Spectacles. For those Convex
-glasses supply the defect of plumpness in the Eye, and by increasing the
-Refraction make the Rays converge sooner, so as to convene distinctly at
-the bottom of the Eye if the Glass have a due degree of convexity. And
-the contrary happens in short-sighted Men whose Eyes are too plump. For
-the Refraction being now too great, the Rays converge and convene in the
-Eyes before they come at the bottom; and therefore the Picture made in
-the bottom and the Vision caused thereby will not be distinct, unless
-the Object be brought so near the Eye as that the place where the
-converging Rays convene may be removed to the bottom, or that the
-plumpness of the Eye be taken off and the Refractions diminished by a
-Concave-glass of a due degree of Concavity, or lastly that by Age the
-Eye grow flatter till it come to a due Figure: For short-sighted Men see
-remote Objects best in Old Age, and therefore they are accounted to have
-the most lasting Eyes.
-
-[Illustration: FIG. 8.]
-
-
-AX. VIII.
-
-_An Object seen by Reflexion or Refraction, appears in that place from
-whence the Rays after their last Reflexion or Refraction diverge in
-falling on the Spectator's Eye._
-
-[Illustration: FIG. 9.]
-
-If the Object A [in FIG. 9.] be seen by Reflexion of a Looking-glass
-_mn_, it shall appear, not in its proper place A, but behind the Glass
-at _a_, from whence any Rays AB, AC, AD, which flow from one and the
-same Point of the Object, do after their Reflexion made in the Points B,
-C, D, diverge in going from the Glass to E, F, G, where they are
-incident on the Spectator's Eyes. For these Rays do make the same
-Picture in the bottom of the Eyes as if they had come from the Object
-really placed at _a_ without the Interposition of the Looking-glass; and
-all Vision is made according to the place and shape of that Picture.
-
-In like manner the Object D [in FIG. 2.] seen through a Prism, appears
-not in its proper place D, but is thence translated to some other place
-_d_ situated in the last refracted Ray FG drawn backward from F to _d_.
-
-[Illustration: FIG. 10.]
-
-And so the Object Q [in FIG. 10.] seen through the Lens AB, appears at
-the place _q_ from whence the Rays diverge in passing from the Lens to
-the Eye. Now it is to be noted, that the Image of the Object at _q_ is
-so much bigger or lesser than the Object it self at Q, as the distance
-of the Image at _q_ from the Lens AB is bigger or less than the distance
-of the Object at Q from the same Lens. And if the Object be seen through
-two or more such Convex or Concave-glasses, every Glass shall make a new
-Image, and the Object shall appear in the place of the bigness of the
-last Image. Which consideration unfolds the Theory of Microscopes and
-Telescopes. For that Theory consists in almost nothing else than the
-describing such Glasses as shall make the last Image of any Object as
-distinct and large and luminous as it can conveniently be made.
-
-I have now given in Axioms and their Explications the sum of what hath
-hitherto been treated of in Opticks. For what hath been generally
-agreed on I content my self to assume under the notion of Principles, in
-order to what I have farther to write. And this may suffice for an
-Introduction to Readers of quick Wit and good Understanding not yet
-versed in Opticks: Although those who are already acquainted with this
-Science, and have handled Glasses, will more readily apprehend what
-followeth.
-
-FOOTNOTES:
-
-[A] In our Author's _Lectiones Opticæ_, Part I. Sect. IV. Prop 29, 30,
-there is an elegant Method of determining these _Foci_; not only in
-spherical Surfaces, but likewise in any other curved Figure whatever:
-And in Prop. 32, 33, the same thing is done for any Ray lying out of the
-Axis.
-
-[B] _Ibid._ Prop. 34.
-
-
-
-
-_PROPOSITIONS._
-
-
-
-_PROP._ I. THEOR. I.
-
-_Lights which differ in Colour, differ also in Degrees of
-Refrangibility._
-
-The PROOF by Experiments.
-
-_Exper._ 1.
-
-I took a black oblong stiff Paper terminated by Parallel Sides, and with
-a Perpendicular right Line drawn cross from one Side to the other,
-distinguished it into two equal Parts. One of these parts I painted with
-a red colour and the other with a blue. The Paper was very black, and
-the Colours intense and thickly laid on, that the Phænomenon might be
-more conspicuous. This Paper I view'd through a Prism of solid Glass,
-whose two Sides through which the Light passed to the Eye were plane and
-well polished, and contained an Angle of about sixty degrees; which
-Angle I call the refracting Angle of the Prism. And whilst I view'd it,
-I held it and the Prism before a Window in such manner that the Sides of
-the Paper were parallel to the Prism, and both those Sides and the Prism
-were parallel to the Horizon, and the cross Line was also parallel to
-it: and that the Light which fell from the Window upon the Paper made an
-Angle with the Paper, equal to that Angle which was made with the same
-Paper by the Light reflected from it to the Eye. Beyond the Prism was
-the Wall of the Chamber under the Window covered over with black Cloth,
-and the Cloth was involved in Darkness that no Light might be reflected
-from thence, which in passing by the Edges of the Paper to the Eye,
-might mingle itself with the Light of the Paper, and obscure the
-Phænomenon thereof. These things being thus ordered, I found that if the
-refracting Angle of the Prism be turned upwards, so that the Paper may
-seem to be lifted upwards by the Refraction, its blue half will be
-lifted higher by the Refraction than its red half. But if the refracting
-Angle of the Prism be turned downward, so that the Paper may seem to be
-carried lower by the Refraction, its blue half will be carried something
-lower thereby than its red half. Wherefore in both Cases the Light which
-comes from the blue half of the Paper through the Prism to the Eye, does
-in like Circumstances suffer a greater Refraction than the Light which
-comes from the red half, and by consequence is more refrangible.
-
-_Illustration._ In the eleventh Figure, MN represents the Window, and DE
-the Paper terminated with parallel Sides DJ and HE, and by the
-transverse Line FG distinguished into two halfs, the one DG of an
-intensely blue Colour, the other FE of an intensely red. And BAC_cab_
-represents the Prism whose refracting Planes AB_ba_ and AC_ca_ meet in
-the Edge of the refracting Angle A_a_. This Edge A_a_ being upward, is
-parallel both to the Horizon, and to the Parallel-Edges of the Paper DJ
-and HE, and the transverse Line FG is perpendicular to the Plane of the
-Window. And _de_ represents the Image of the Paper seen by Refraction
-upwards in such manner, that the blue half DG is carried higher to _dg_
-than the red half FE is to _fe_, and therefore suffers a greater
-Refraction. If the Edge of the refracting Angle be turned downward, the
-Image of the Paper will be refracted downward; suppose to [Greek: de],
-and the blue half will be refracted lower to [Greek: dg] than the red
-half is to [Greek: pe].
-
-[Illustration: FIG. 11.]
-
-_Exper._ 2. About the aforesaid Paper, whose two halfs were painted over
-with red and blue, and which was stiff like thin Pasteboard, I lapped
-several times a slender Thred of very black Silk, in such manner that
-the several parts of the Thred might appear upon the Colours like so
-many black Lines drawn over them, or like long and slender dark Shadows
-cast upon them. I might have drawn black Lines with a Pen, but the
-Threds were smaller and better defined. This Paper thus coloured and
-lined I set against a Wall perpendicularly to the Horizon, so that one
-of the Colours might stand to the Right Hand, and the other to the Left.
-Close before the Paper, at the Confine of the Colours below, I placed a
-Candle to illuminate the Paper strongly: For the Experiment was tried in
-the Night. The Flame of the Candle reached up to the lower edge of the
-Paper, or a very little higher. Then at the distance of six Feet, and
-one or two Inches from the Paper upon the Floor I erected a Glass Lens
-four Inches and a quarter broad, which might collect the Rays coming
-from the several Points of the Paper, and make them converge towards so
-many other Points at the same distance of six Feet, and one or two
-Inches on the other side of the Lens, and so form the Image of the
-coloured Paper upon a white Paper placed there, after the same manner
-that a Lens at a Hole in a Window casts the Images of Objects abroad
-upon a Sheet of white Paper in a dark Room. The aforesaid white Paper,
-erected perpendicular to the Horizon, and to the Rays which fell upon it
-from the Lens, I moved sometimes towards the Lens, sometimes from it, to
-find the Places where the Images of the blue and red Parts of the
-coloured Paper appeared most distinct. Those Places I easily knew by the
-Images of the black Lines which I had made by winding the Silk about the
-Paper. For the Images of those fine and slender Lines (which by reason
-of their Blackness were like Shadows on the Colours) were confused and
-scarce visible, unless when the Colours on either side of each Line were
-terminated most distinctly, Noting therefore, as diligently as I could,
-the Places where the Images of the red and blue halfs of the coloured
-Paper appeared most distinct, I found that where the red half of the
-Paper appeared distinct, the blue half appeared confused, so that the
-black Lines drawn upon it could scarce be seen; and on the contrary,
-where the blue half appeared most distinct, the red half appeared
-confused, so that the black Lines upon it were scarce visible. And
-between the two Places where these Images appeared distinct there was
-the distance of an Inch and a half; the distance of the white Paper from
-the Lens, when the Image of the red half of the coloured Paper appeared
-most distinct, being greater by an Inch and an half than the distance of
-the same white Paper from the Lens, when the Image of the blue half
-appeared most distinct. In like Incidences therefore of the blue and red
-upon the Lens, the blue was refracted more by the Lens than the red, so
-as to converge sooner by an Inch and a half, and therefore is more
-refrangible.
-
-_Illustration._ In the twelfth Figure (p. 27), DE signifies the coloured
-Paper, DG the blue half, FE the red half, MN the Lens, HJ the white
-Paper in that Place where the red half with its black Lines appeared
-distinct, and _hi_ the same Paper in that Place where the blue half
-appeared distinct. The Place _hi_ was nearer to the Lens MN than the
-Place HJ by an Inch and an half.
-
-_Scholium._ The same Things succeed, notwithstanding that some of the
-Circumstances be varied; as in the first Experiment when the Prism and
-Paper are any ways inclined to the Horizon, and in both when coloured
-Lines are drawn upon very black Paper. But in the Description of these
-Experiments, I have set down such Circumstances, by which either the
-Phænomenon might be render'd more conspicuous, or a Novice might more
-easily try them, or by which I did try them only. The same Thing, I have
-often done in the following Experiments: Concerning all which, this one
-Admonition may suffice. Now from these Experiments it follows not, that
-all the Light of the blue is more refrangible than all the Light of the
-red: For both Lights are mixed of Rays differently refrangible, so that
-in the red there are some Rays not less refrangible than those of the
-blue, and in the blue there are some Rays not more refrangible than
-those of the red: But these Rays, in proportion to the whole Light, are
-but few, and serve to diminish the Event of the Experiment, but are not
-able to destroy it. For, if the red and blue Colours were more dilute
-and weak, the distance of the Images would be less than an Inch and a
-half; and if they were more intense and full, that distance would be
-greater, as will appear hereafter. These Experiments may suffice for the
-Colours of Natural Bodies. For in the Colours made by the Refraction of
-Prisms, this Proposition will appear by the Experiments which are now to
-follow in the next Proposition.
-
-
-_PROP._ II. THEOR. II.
-
-_The Light of the Sun consists of Rays differently Refrangible._
-
-The PROOF by Experiments.
-
-[Illustration: FIG. 12.]
-
-[Illustration: FIG. 13.]
-
-_Exper._ 3.
-
-In a very dark Chamber, at a round Hole, about one third Part of an Inch
-broad, made in the Shut of a Window, I placed a Glass Prism, whereby the
-Beam of the Sun's Light, which came in at that Hole, might be refracted
-upwards toward the opposite Wall of the Chamber, and there form a
-colour'd Image of the Sun. The Axis of the Prism (that is, the Line
-passing through the middle of the Prism from one end of it to the other
-end parallel to the edge of the Refracting Angle) was in this and the
-following Experiments perpendicular to the incident Rays. About this
-Axis I turned the Prism slowly, and saw the refracted Light on the Wall,
-or coloured Image of the Sun, first to descend, and then to ascend.
-Between the Descent and Ascent, when the Image seemed Stationary, I
-stopp'd the Prism, and fix'd it in that Posture, that it should be moved
-no more. For in that Posture the Refractions of the Light at the two
-Sides of the refracting Angle, that is, at the Entrance of the Rays into
-the Prism, and at their going out of it, were equal to one another.[C]
-So also in other Experiments, as often as I would have the Refractions
-on both sides the Prism to be equal to one another, I noted the Place
-where the Image of the Sun formed by the refracted Light stood still
-between its two contrary Motions, in the common Period of its Progress
-and Regress; and when the Image fell upon that Place, I made fast the
-Prism. And in this Posture, as the most convenient, it is to be
-understood that all the Prisms are placed in the following Experiments,
-unless where some other Posture is described. The Prism therefore being
-placed in this Posture, I let the refracted Light fall perpendicularly
-upon a Sheet of white Paper at the opposite Wall of the Chamber, and
-observed the Figure and Dimensions of the Solar Image formed on the
-Paper by that Light. This Image was Oblong and not Oval, but terminated
-with two Rectilinear and Parallel Sides, and two Semicircular Ends. On
-its Sides it was bounded pretty distinctly, but on its Ends very
-confusedly and indistinctly, the Light there decaying and vanishing by
-degrees. The Breadth of this Image answered to the Sun's Diameter, and
-was about two Inches and the eighth Part of an Inch, including the
-Penumbra. For the Image was eighteen Feet and an half distant from the
-Prism, and at this distance that Breadth, if diminished by the Diameter
-of the Hole in the Window-shut, that is by a quarter of an Inch,
-subtended an Angle at the Prism of about half a Degree, which is the
-Sun's apparent Diameter. But the Length of the Image was about ten
-Inches and a quarter, and the Length of the Rectilinear Sides about
-eight Inches; and the refracting Angle of the Prism, whereby so great a
-Length was made, was 64 degrees. With a less Angle the Length of the
-Image was less, the Breadth remaining the same. If the Prism was turned
-about its Axis that way which made the Rays emerge more obliquely out of
-the second refracting Surface of the Prism, the Image soon became an
-Inch or two longer, or more; and if the Prism was turned about the
-contrary way, so as to make the Rays fall more obliquely on the first
-refracting Surface, the Image soon became an Inch or two shorter. And
-therefore in trying this Experiment, I was as curious as I could be in
-placing the Prism by the above-mention'd Rule exactly in such a Posture,
-that the Refractions of the Rays at their Emergence out of the Prism
-might be equal to that at their Incidence on it. This Prism had some
-Veins running along within the Glass from one end to the other, which
-scattered some of the Sun's Light irregularly, but had no sensible
-Effect in increasing the Length of the coloured Spectrum. For I tried
-the same Experiment with other Prisms with the same Success. And
-particularly with a Prism which seemed free from such Veins, and whose
-refracting Angle was 62-1/2 Degrees, I found the Length of the Image
-9-3/4 or 10 Inches at the distance of 18-1/2 Feet from the Prism, the
-Breadth of the Hole in the Window-shut being 1/4 of an Inch, as before.
-And because it is easy to commit a Mistake in placing the Prism in its
-due Posture, I repeated the Experiment four or five Times, and always
-found the Length of the Image that which is set down above. With another
-Prism of clearer Glass and better Polish, which seemed free from Veins,
-and whose refracting Angle was 63-1/2 Degrees, the Length of this Image
-at the same distance of 18-1/2 Feet was also about 10 Inches, or 10-1/8.
-Beyond these Measures for about a 1/4 or 1/3 of an Inch at either end of
-the Spectrum the Light of the Clouds seemed to be a little tinged with
-red and violet, but so very faintly, that I suspected that Tincture
-might either wholly, or in great Measure arise from some Rays of the
-Spectrum scattered irregularly by some Inequalities in the Substance and
-Polish of the Glass, and therefore I did not include it in these
-Measures. Now the different Magnitude of the hole in the Window-shut,
-and different thickness of the Prism where the Rays passed through it,
-and different inclinations of the Prism to the Horizon, made no sensible
-changes in the length of the Image. Neither did the different matter of
-the Prisms make any: for in a Vessel made of polished Plates of Glass
-cemented together in the shape of a Prism and filled with Water, there
-is the like Success of the Experiment according to the quantity of the
-Refraction. It is farther to be observed, that the Rays went on in right
-Lines from the Prism to the Image, and therefore at their very going out
-of the Prism had all that Inclination to one another from which the
-length of the Image proceeded, that is, the Inclination of more than two
-degrees and an half. And yet according to the Laws of Opticks vulgarly
-received, they could not possibly be so much inclined to one another.[D]
-For let EG [_Fig._ 13. (p. 27)] represent the Window-shut, F the hole
-made therein through which a beam of the Sun's Light was transmitted
-into the darkened Chamber, and ABC a Triangular Imaginary Plane whereby
-the Prism is feigned to be cut transversely through the middle of the
-Light. Or if you please, let ABC represent the Prism it self, looking
-directly towards the Spectator's Eye with its nearer end: And let XY be
-the Sun, MN the Paper upon which the Solar Image or Spectrum is cast,
-and PT the Image it self whose sides towards _v_ and _w_ are Rectilinear
-and Parallel, and ends towards P and T Semicircular. YKHP and XLJT are
-two Rays, the first of which comes from the lower part of the Sun to the
-higher part of the Image, and is refracted in the Prism at K and H, and
-the latter comes from the higher part of the Sun to the lower part of
-the Image, and is refracted at L and J. Since the Refractions on both
-sides the Prism are equal to one another, that is, the Refraction at K
-equal to the Refraction at J, and the Refraction at L equal to the
-Refraction at H, so that the Refractions of the incident Rays at K and L
-taken together, are equal to the Refractions of the emergent Rays at H
-and J taken together: it follows by adding equal things to equal things,
-that the Refractions at K and H taken together, are equal to the
-Refractions at J and L taken together, and therefore the two Rays being
-equally refracted, have the same Inclination to one another after
-Refraction which they had before; that is, the Inclination of half a
-Degree answering to the Sun's Diameter. For so great was the inclination
-of the Rays to one another before Refraction. So then, the length of the
-Image PT would by the Rules of Vulgar Opticks subtend an Angle of half a
-Degree at the Prism, and by Consequence be equal to the breadth _vw_;
-and therefore the Image would be round. Thus it would be were the two
-Rays XLJT and YKHP, and all the rest which form the Image P_w_T_v_,
-alike refrangible. And therefore seeing by Experience it is found that
-the Image is not round, but about five times longer than broad, the Rays
-which going to the upper end P of the Image suffer the greatest
-Refraction, must be more refrangible than those which go to the lower
-end T, unless the Inequality of Refraction be casual.
-
-This Image or Spectrum PT was coloured, being red at its least refracted
-end T, and violet at its most refracted end P, and yellow green and
-blue in the intermediate Spaces. Which agrees with the first
-Proposition, that Lights which differ in Colour, do also differ in
-Refrangibility. The length of the Image in the foregoing Experiments, I
-measured from the faintest and outmost red at one end, to the faintest
-and outmost blue at the other end, excepting only a little Penumbra,
-whose breadth scarce exceeded a quarter of an Inch, as was said above.
-
-_Exper._ 4. In the Sun's Beam which was propagated into the Room through
-the hole in the Window-shut, at the distance of some Feet from the hole,
-I held the Prism in such a Posture, that its Axis might be perpendicular
-to that Beam. Then I looked through the Prism upon the hole, and turning
-the Prism to and fro about its Axis, to make the Image of the Hole
-ascend and descend, when between its two contrary Motions it seemed
-Stationary, I stopp'd the Prism, that the Refractions of both sides of
-the refracting Angle might be equal to each other, as in the former
-Experiment. In this situation of the Prism viewing through it the said
-Hole, I observed the length of its refracted Image to be many times
-greater than its breadth, and that the most refracted part thereof
-appeared violet, the least refracted red, the middle parts blue, green
-and yellow in order. The same thing happen'd when I removed the Prism
-out of the Sun's Light, and looked through it upon the hole shining by
-the Light of the Clouds beyond it. And yet if the Refraction were done
-regularly according to one certain Proportion of the Sines of Incidence
-and Refraction as is vulgarly supposed, the refracted Image ought to
-have appeared round.
-
-So then, by these two Experiments it appears, that in Equal Incidences
-there is a considerable inequality of Refractions. But whence this
-inequality arises, whether it be that some of the incident Rays are
-refracted more, and others less, constantly, or by chance, or that one
-and the same Ray is by Refraction disturbed, shatter'd, dilated, and as
-it were split and spread into many diverging Rays, as _Grimaldo_
-supposes, does not yet appear by these Experiments, but will appear by
-those that follow.
-
-_Exper._ 5. Considering therefore, that if in the third Experiment the
-Image of the Sun should be drawn out into an oblong Form, either by a
-Dilatation of every Ray, or by any other casual inequality of the
-Refractions, the same oblong Image would by a second Refraction made
-sideways be drawn out as much in breadth by the like Dilatation of the
-Rays, or other casual inequality of the Refractions sideways, I tried
-what would be the Effects of such a second Refraction. For this end I
-ordered all things as in the third Experiment, and then placed a second
-Prism immediately after the first in a cross Position to it, that it
-might again refract the beam of the Sun's Light which came to it through
-the first Prism. In the first Prism this beam was refracted upwards, and
-in the second sideways. And I found that by the Refraction of the second
-Prism, the breadth of the Image was not increased, but its superior
-part, which in the first Prism suffered the greater Refraction, and
-appeared violet and blue, did again in the second Prism suffer a greater
-Refraction than its inferior part, which appeared red and yellow, and
-this without any Dilatation of the Image in breadth.
-
-[Illustration: FIG. 14]
-
-_Illustration._ Let S [_Fig._ 14, 15.] represent the Sun, F the hole in
-the Window, ABC the first Prism, DH the second Prism, Y the round Image
-of the Sun made by a direct beam of Light when the Prisms are taken
-away, PT the oblong Image of the Sun made by that beam passing through
-the first Prism alone, when the second Prism is taken away, and _pt_ the
-Image made by the cross Refractions of both Prisms together. Now if the
-Rays which tend towards the several Points of the round Image Y were
-dilated and spread by the Refraction of the first Prism, so that they
-should not any longer go in single Lines to single Points, but that
-every Ray being split, shattered, and changed from a Linear Ray to a
-Superficies of Rays diverging from the Point of Refraction, and lying in
-the Plane of the Angles of Incidence and Refraction, they should go in
-those Planes to so many Lines reaching almost from one end of the Image
-PT to the other, and if that Image should thence become oblong: those
-Rays and their several parts tending towards the several Points of the
-Image PT ought to be again dilated and spread sideways by the transverse
-Refraction of the second Prism, so as to compose a four square Image,
-such as is represented at [Greek: pt]. For the better understanding of
-which, let the Image PT be distinguished into five equal parts PQK,
-KQRL, LRSM, MSVN, NVT. And by the same irregularity that the orbicular
-Light Y is by the Refraction of the first Prism dilated and drawn out
-into a long Image PT, the Light PQK which takes up a space of the same
-length and breadth with the Light Y ought to be by the Refraction of the
-second Prism dilated and drawn out into the long Image _[Greek: p]qkp_,
-and the Light KQRL into the long Image _kqrl_, and the Lights LRSM,
-MSVN, NVT, into so many other long Images _lrsm_, _msvn_, _nvt[Greek:
-t]_; and all these long Images would compose the four square Images
-_[Greek: pt]_. Thus it ought to be were every Ray dilated by Refraction,
-and spread into a triangular Superficies of Rays diverging from the
-Point of Refraction. For the second Refraction would spread the Rays one
-way as much as the first doth another, and so dilate the Image in
-breadth as much as the first doth in length. And the same thing ought to
-happen, were some rays casually refracted more than others. But the
-Event is otherwise. The Image PT was not made broader by the Refraction
-of the second Prism, but only became oblique, as 'tis represented at
-_pt_, its upper end P being by the Refraction translated to a greater
-distance than its lower end T. So then the Light which went towards the
-upper end P of the Image, was (at equal Incidences) more refracted in
-the second Prism, than the Light which tended towards the lower end T,
-that is the blue and violet, than the red and yellow; and therefore was
-more refrangible. The same Light was by the Refraction of the first
-Prism translated farther from the place Y to which it tended before
-Refraction; and therefore suffered as well in the first Prism as in the
-second a greater Refraction than the rest of the Light, and by
-consequence was more refrangible than the rest, even before its
-incidence on the first Prism.
-
-Sometimes I placed a third Prism after the second, and sometimes also a
-fourth after the third, by all which the Image might be often refracted
-sideways: but the Rays which were more refracted than the rest in the
-first Prism were also more refracted in all the rest, and that without
-any Dilatation of the Image sideways: and therefore those Rays for their
-constancy of a greater Refraction are deservedly reputed more
-refrangible.
-
-[Illustration: FIG. 15]
-
-But that the meaning of this Experiment may more clearly appear, it is
-to be considered that the Rays which are equally refrangible do fall
-upon a Circle answering to the Sun's Disque. For this was proved in the
-third Experiment. By a Circle I understand not here a perfect
-geometrical Circle, but any orbicular Figure whose length is equal to
-its breadth, and which, as to Sense, may seem circular. Let therefore AG
-[in _Fig._ 15.] represent the Circle which all the most refrangible Rays
-propagated from the whole Disque of the Sun, would illuminate and paint
-upon the opposite Wall if they were alone; EL the Circle which all the
-least refrangible Rays would in like manner illuminate and paint if they
-were alone; BH, CJ, DK, the Circles which so many intermediate sorts of
-Rays would successively paint upon the Wall, if they were singly
-propagated from the Sun in successive order, the rest being always
-intercepted; and conceive that there are other intermediate Circles
-without Number, which innumerable other intermediate sorts of Rays would
-successively paint upon the Wall if the Sun should successively emit
-every sort apart. And seeing the Sun emits all these sorts at once, they
-must all together illuminate and paint innumerable equal Circles, of all
-which, being according to their degrees of Refrangibility placed in
-order in a continual Series, that oblong Spectrum PT is composed which I
-described in the third Experiment. Now if the Sun's circular Image Y [in
-_Fig._ 15.] which is made by an unrefracted beam of Light was by any
-Dilation of the single Rays, or by any other irregularity in the
-Refraction of the first Prism, converted into the oblong Spectrum, PT:
-then ought every Circle AG, BH, CJ, &c. in that Spectrum, by the cross
-Refraction of the second Prism again dilating or otherwise scattering
-the Rays as before, to be in like manner drawn out and transformed into
-an oblong Figure, and thereby the breadth of the Image PT would be now
-as much augmented as the length of the Image Y was before by the
-Refraction of the first Prism; and thus by the Refractions of both
-Prisms together would be formed a four square Figure _p[Greek:
-p]t[Greek: t]_, as I described above. Wherefore since the breadth of the
-Spectrum PT is not increased by the Refraction sideways, it is certain
-that the Rays are not split or dilated, or otherways irregularly
-scatter'd by that Refraction, but that every Circle is by a regular and
-uniform Refraction translated entire into another Place, as the Circle
-AG by the greatest Refraction into the place _ag_, the Circle BH by a
-less Refraction into the place _bh_, the Circle CJ by a Refraction still
-less into the place _ci_, and so of the rest; by which means a new
-Spectrum _pt_ inclined to the former PT is in like manner composed of
-Circles lying in a right Line; and these Circles must be of the same
-bigness with the former, because the breadths of all the Spectrums Y, PT
-and _pt_ at equal distances from the Prisms are equal.
-
-I considered farther, that by the breadth of the hole F through which
-the Light enters into the dark Chamber, there is a Penumbra made in the
-Circuit of the Spectrum Y, and that Penumbra remains in the rectilinear
-Sides of the Spectrums PT and _pt_. I placed therefore at that hole a
-Lens or Object-glass of a Telescope which might cast the Image of the
-Sun distinctly on Y without any Penumbra at all, and found that the
-Penumbra of the rectilinear Sides of the oblong Spectrums PT and _pt_
-was also thereby taken away, so that those Sides appeared as distinctly
-defined as did the Circumference of the first Image Y. Thus it happens
-if the Glass of the Prisms be free from Veins, and their sides be
-accurately plane and well polished without those numberless Waves or
-Curles which usually arise from Sand-holes a little smoothed in
-polishing with Putty. If the Glass be only well polished and free from
-Veins, and the Sides not accurately plane, but a little Convex or
-Concave, as it frequently happens; yet may the three Spectrums Y, PT and
-_pt_ want Penumbras, but not in equal distances from the Prisms. Now
-from this want of Penumbras, I knew more certainly that every one of the
-Circles was refracted according to some most regular, uniform and
-constant Law. For if there were any irregularity in the Refraction, the
-right Lines AE and GL, which all the Circles in the Spectrum PT do
-touch, could not by that Refraction be translated into the Lines _ae_
-and _gl_ as distinct and straight as they were before, but there would
-arise in those translated Lines some Penumbra or Crookedness or
-Undulation, or other sensible Perturbation contrary to what is found by
-Experience. Whatsoever Penumbra or Perturbation should be made in the
-Circles by the cross Refraction of the second Prism, all that Penumbra
-or Perturbation would be conspicuous in the right Lines _ae_ and _gl_
-which touch those Circles. And therefore since there is no such Penumbra
-or Perturbation in those right Lines, there must be none in the
-Circles. Since the distance between those Tangents or breadth of the
-Spectrum is not increased by the Refractions, the Diameters of the
-Circles are not increased thereby. Since those Tangents continue to be
-right Lines, every Circle which in the first Prism is more or less
-refracted, is exactly in the same proportion more or less refracted in
-the second. And seeing all these things continue to succeed after the
-same manner when the Rays are again in a third Prism, and again in a
-fourth refracted sideways, it is evident that the Rays of one and the
-same Circle, as to their degree of Refrangibility, continue always
-uniform and homogeneal to one another, and that those of several Circles
-do differ in degree of Refrangibility, and that in some certain and
-constant Proportion. Which is the thing I was to prove.
-
-There is yet another Circumstance or two of this Experiment by which it
-becomes still more plain and convincing. Let the second Prism DH [in
-_Fig._ 16.] be placed not immediately after the first, but at some
-distance from it; suppose in the mid-way between it and the Wall on
-which the oblong Spectrum PT is cast, so that the Light from the first
-Prism may fall upon it in the form of an oblong Spectrum [Greek: pt]
-parallel to this second Prism, and be refracted sideways to form the
-oblong Spectrum _pt_ upon the Wall. And you will find as before, that
-this Spectrum _pt_ is inclined to that Spectrum PT, which the first
-Prism forms alone without the second; the blue ends P and _p_ being
-farther distant from one another than the red ones T and _t_, and by
-consequence that the Rays which go to the blue end [Greek: p] of the
-Image [Greek: pt], and which therefore suffer the greatest Refraction in
-the first Prism, are again in the second Prism more refracted than the
-rest.
-
-[Illustration: FIG. 16.]
-
-[Illustration: FIG. 17.]
-
-The same thing I try'd also by letting the Sun's Light into a dark Room
-through two little round holes F and [Greek: ph] [in _Fig._ 17.] made in
-the Window, and with two parallel Prisms ABC and [Greek: abg] placed at
-those holes (one at each) refracting those two beams of Light to the
-opposite Wall of the Chamber, in such manner that the two colour'd
-Images PT and MN which they there painted were joined end to end and lay
-in one straight Line, the red end T of the one touching the blue end M
-of the other. For if these two refracted Beams were again by a third
-Prism DH placed cross to the two first, refracted sideways, and the
-Spectrums thereby translated to some other part of the Wall of the
-Chamber, suppose the Spectrum PT to _pt_ and the Spectrum MN to _mn_,
-these translated Spectrums _pt_ and _mn_ would not lie in one straight
-Line with their ends contiguous as before, but be broken off from one
-another and become parallel, the blue end _m_ of the Image _mn_ being by
-a greater Refraction translated farther from its former place MT, than
-the red end _t_ of the other Image _pt_ from the same place MT; which
-puts the Proposition past Dispute. And this happens whether the third
-Prism DH be placed immediately after the two first, or at a great
-distance from them, so that the Light refracted in the two first Prisms
-be either white and circular, or coloured and oblong when it falls on
-the third.
-
-_Exper._ 6. In the middle of two thin Boards I made round holes a third
-part of an Inch in diameter, and in the Window-shut a much broader hole
-being made to let into my darkned Chamber a large Beam of the Sun's
-Light; I placed a Prism behind the Shut in that beam to refract it
-towards the opposite Wall, and close behind the Prism I fixed one of the
-Boards, in such manner that the middle of the refracted Light might pass
-through the hole made in it, and the rest be intercepted by the Board.
-Then at the distance of about twelve Feet from the first Board I fixed
-the other Board in such manner that the middle of the refracted Light
-which came through the hole in the first Board, and fell upon the
-opposite Wall, might pass through the hole in this other Board, and the
-rest being intercepted by the Board might paint upon it the coloured
-Spectrum of the Sun. And close behind this Board I fixed another Prism
-to refract the Light which came through the hole. Then I returned
-speedily to the first Prism, and by turning it slowly to and fro about
-its Axis, I caused the Image which fell upon the second Board to move up
-and down upon that Board, that all its parts might successively pass
-through the hole in that Board and fall upon the Prism behind it. And in
-the mean time, I noted the places on the opposite Wall to which that
-Light after its Refraction in the second Prism did pass; and by the
-difference of the places I found that the Light which being most
-refracted in the first Prism did go to the blue end of the Image, was
-again more refracted in the second Prism than the Light which went to
-the red end of that Image, which proves as well the first Proposition as
-the second. And this happened whether the Axis of the two Prisms were
-parallel, or inclined to one another, and to the Horizon in any given
-Angles.
-
-_Illustration._ Let F [in _Fig._ 18.] be the wide hole in the
-Window-shut, through which the Sun shines upon the first Prism ABC, and
-let the refracted Light fall upon the middle of the Board DE, and the
-middle part of that Light upon the hole G made in the middle part of
-that Board. Let this trajected part of that Light fall again upon the
-middle of the second Board _de_, and there paint such an oblong coloured
-Image of the Sun as was described in the third Experiment. By turning
-the Prism ABC slowly to and fro about its Axis, this Image will be made
-to move up and down the Board _de_, and by this means all its parts from
-one end to the other may be made to pass successively through the hole
-_g_ which is made in the middle of that Board. In the mean while another
-Prism _abc_ is to be fixed next after that hole _g_, to refract the
-trajected Light a second time. And these things being thus ordered, I
-marked the places M and N of the opposite Wall upon which the refracted
-Light fell, and found that whilst the two Boards and second Prism
-remained unmoved, those places by turning the first Prism about its Axis
-were changed perpetually. For when the lower part of the Light which
-fell upon the second Board _de_ was cast through the hole _g_, it went
-to a lower place M on the Wall and when the higher part of that Light
-was cast through the same hole _g_, it went to a higher place N on the
-Wall, and when any intermediate part of the Light was cast through that
-hole, it went to some place on the Wall between M and N. The unchanged
-Position of the holes in the Boards, made the Incidence of the Rays upon
-the second Prism to be the same in all cases. And yet in that common
-Incidence some of the Rays were more refracted, and others less. And
-those were more refracted in this Prism, which by a greater Refraction
-in the first Prism were more turned out of the way, and therefore for
-their Constancy of being more refracted are deservedly called more
-refrangible.
-
-[Illustration: FIG. 18.]
-
-[Illustration: FIG. 20.]
-
-_Exper._ 7. At two holes made near one another in my Window-shut I
-placed two Prisms, one at each, which might cast upon the opposite Wall
-(after the manner of the third Experiment) two oblong coloured Images of
-the Sun. And at a little distance from the Wall I placed a long slender
-Paper with straight and parallel edges, and ordered the Prisms and Paper
-so, that the red Colour of one Image might fall directly upon one half
-of the Paper, and the violet Colour of the other Image upon the other
-half of the same Paper; so that the Paper appeared of two Colours, red
-and violet, much after the manner of the painted Paper in the first and
-second Experiments. Then with a black Cloth I covered the Wall behind
-the Paper, that no Light might be reflected from it to disturb the
-Experiment, and viewing the Paper through a third Prism held parallel
-to it, I saw that half of it which was illuminated by the violet Light
-to be divided from the other half by a greater Refraction, especially
-when I went a good way off from the Paper. For when I viewed it too near
-at hand, the two halfs of the Paper did not appear fully divided from
-one another, but seemed contiguous at one of their Angles like the
-painted Paper in the first Experiment. Which also happened when the
-Paper was too broad.
-
-[Illustration: FIG. 19.]
-
-Sometimes instead of the Paper I used a white Thred, and this appeared
-through the Prism divided into two parallel Threds as is represented in
-the nineteenth Figure, where DG denotes the Thred illuminated with
-violet Light from D to E and with red Light from F to G, and _defg_ are
-the parts of the Thred seen by Refraction. If one half of the Thred be
-constantly illuminated with red, and the other half be illuminated with
-all the Colours successively, (which may be done by causing one of the
-Prisms to be turned about its Axis whilst the other remains unmoved)
-this other half in viewing the Thred through the Prism, will appear in
-a continual right Line with the first half when illuminated with red,
-and begin to be a little divided from it when illuminated with Orange,
-and remove farther from it when illuminated with yellow, and still
-farther when with green, and farther when with blue, and go yet farther
-off when illuminated with Indigo, and farthest when with deep violet.
-Which plainly shews, that the Lights of several Colours are more and
-more refrangible one than another, in this Order of their Colours, red,
-orange, yellow, green, blue, indigo, deep violet; and so proves as well
-the first Proposition as the second.
-
-I caused also the coloured Spectrums PT [in _Fig._ 17.] and MN made in a
-dark Chamber by the Refractions of two Prisms to lie in a Right Line end
-to end, as was described above in the fifth Experiment, and viewing them
-through a third Prism held parallel to their Length, they appeared no
-longer in a Right Line, but became broken from one another, as they are
-represented at _pt_ and _mn_, the violet end _m_ of the Spectrum _mn_
-being by a greater Refraction translated farther from its former Place
-MT than the red end _t_ of the other Spectrum _pt_.
-
-I farther caused those two Spectrums PT [in _Fig._ 20.] and MN to become
-co-incident in an inverted Order of their Colours, the red end of each
-falling on the violet end of the other, as they are represented in the
-oblong Figure PTMN; and then viewing them through a Prism DH held
-parallel to their Length, they appeared not co-incident, as when view'd
-with the naked Eye, but in the form of two distinct Spectrums _pt_ and
-_mn_ crossing one another in the middle after the manner of the Letter
-X. Which shews that the red of the one Spectrum and violet of the other,
-which were co-incident at PN and MT, being parted from one another by a
-greater Refraction of the violet to _p_ and _m_ than of the red to _n_
-and _t_, do differ in degrees of Refrangibility.
-
-I illuminated also a little Circular Piece of white Paper all over with
-the Lights of both Prisms intermixed, and when it was illuminated with
-the red of one Spectrum, and deep violet of the other, so as by the
-Mixture of those Colours to appear all over purple, I viewed the Paper,
-first at a less distance, and then at a greater, through a third Prism;
-and as I went from the Paper, the refracted Image thereof became more
-and more divided by the unequal Refraction of the two mixed Colours, and
-at length parted into two distinct Images, a red one and a violet one,
-whereof the violet was farthest from the Paper, and therefore suffered
-the greatest Refraction. And when that Prism at the Window, which cast
-the violet on the Paper was taken away, the violet Image disappeared;
-but when the other Prism was taken away the red vanished; which shews,
-that these two Images were nothing else than the Lights of the two
-Prisms, which had been intermixed on the purple Paper, but were parted
-again by their unequal Refractions made in the third Prism, through
-which the Paper was view'd. This also was observable, that if one of the
-Prisms at the Window, suppose that which cast the violet on the Paper,
-was turned about its Axis to make all the Colours in this order,
-violet, indigo, blue, green, yellow, orange, red, fall successively on
-the Paper from that Prism, the violet Image changed Colour accordingly,
-turning successively to indigo, blue, green, yellow and red, and in
-changing Colour came nearer and nearer to the red Image made by the
-other Prism, until when it was also red both Images became fully
-co-incident.
-
-I placed also two Paper Circles very near one another, the one in the
-red Light of one Prism, and the other in the violet Light of the other.
-The Circles were each of them an Inch in diameter, and behind them the
-Wall was dark, that the Experiment might not be disturbed by any Light
-coming from thence. These Circles thus illuminated, I viewed through a
-Prism, so held, that the Refraction might be made towards the red
-Circle, and as I went from them they came nearer and nearer together,
-and at length became co-incident; and afterwards when I went still
-farther off, they parted again in a contrary Order, the violet by a
-greater Refraction being carried beyond the red.
-
-_Exper._ 8. In Summer, when the Sun's Light uses to be strongest, I
-placed a Prism at the Hole of the Window-shut, as in the third
-Experiment, yet so that its Axis might be parallel to the Axis of the
-World, and at the opposite Wall in the Sun's refracted Light, I placed
-an open Book. Then going six Feet and two Inches from the Book, I placed
-there the above-mentioned Lens, by which the Light reflected from the
-Book might be made to converge and meet again at the distance of six
-Feet and two Inches behind the Lens, and there paint the Species of the
-Book upon a Sheet of white Paper much after the manner of the second
-Experiment. The Book and Lens being made fast, I noted the Place where
-the Paper was, when the Letters of the Book, illuminated by the fullest
-red Light of the Solar Image falling upon it, did cast their Species on
-that Paper most distinctly: And then I stay'd till by the Motion of the
-Sun, and consequent Motion of his Image on the Book, all the Colours
-from that red to the middle of the blue pass'd over those Letters; and
-when those Letters were illuminated by that blue, I noted again the
-Place of the Paper when they cast their Species most distinctly upon it:
-And I found that this last Place of the Paper was nearer to the Lens
-than its former Place by about two Inches and an half, or two and three
-quarters. So much sooner therefore did the Light in the violet end of
-the Image by a greater Refraction converge and meet, than the Light in
-the red end. But in trying this, the Chamber was as dark as I could make
-it. For, if these Colours be diluted and weakned by the Mixture of any
-adventitious Light, the distance between the Places of the Paper will
-not be so great. This distance in the second Experiment, where the
-Colours of natural Bodies were made use of, was but an Inch and an half,
-by reason of the Imperfection of those Colours. Here in the Colours of
-the Prism, which are manifestly more full, intense, and lively than
-those of natural Bodies, the distance is two Inches and three quarters.
-And were the Colours still more full, I question not but that the
-distance would be considerably greater. For the coloured Light of the
-Prism, by the interfering of the Circles described in the second Figure
-of the fifth Experiment, and also by the Light of the very bright Clouds
-next the Sun's Body intermixing with these Colours, and by the Light
-scattered by the Inequalities in the Polish of the Prism, was so very
-much compounded, that the Species which those faint and dark Colours,
-the indigo and violet, cast upon the Paper were not distinct enough to
-be well observed.
-
-_Exper._ 9. A Prism, whose two Angles at its Base were equal to one
-another, and half right ones, and the third a right one, I placed in a
-Beam of the Sun's Light let into a dark Chamber through a Hole in the
-Window-shut, as in the third Experiment. And turning the Prism slowly
-about its Axis, until all the Light which went through one of its
-Angles, and was refracted by it began to be reflected by its Base, at
-which till then it went out of the Glass, I observed that those Rays
-which had suffered the greatest Refraction were sooner reflected than
-the rest. I conceived therefore, that those Rays of the reflected Light,
-which were most refrangible, did first of all by a total Reflexion
-become more copious in that Light than the rest, and that afterwards the
-rest also, by a total Reflexion, became as copious as these. To try
-this, I made the reflected Light pass through another Prism, and being
-refracted by it to fall afterwards upon a Sheet of white Paper placed
-at some distance behind it, and there by that Refraction to paint the
-usual Colours of the Prism. And then causing the first Prism to be
-turned about its Axis as above, I observed that when those Rays, which
-in this Prism had suffered the greatest Refraction, and appeared of a
-blue and violet Colour began to be totally reflected, the blue and
-violet Light on the Paper, which was most refracted in the second Prism,
-received a sensible Increase above that of the red and yellow, which was
-least refracted; and afterwards, when the rest of the Light which was
-green, yellow, and red, began to be totally reflected in the first
-Prism, the Light of those Colours on the Paper received as great an
-Increase as the violet and blue had done before. Whence 'tis manifest,
-that the Beam of Light reflected by the Base of the Prism, being
-augmented first by the more refrangible Rays, and afterwards by the less
-refrangible ones, is compounded of Rays differently refrangible. And
-that all such reflected Light is of the same Nature with the Sun's Light
-before its Incidence on the Base of the Prism, no Man ever doubted; it
-being generally allowed, that Light by such Reflexions suffers no
-Alteration in its Modifications and Properties. I do not here take
-Notice of any Refractions made in the sides of the first Prism, because
-the Light enters it perpendicularly at the first side, and goes out
-perpendicularly at the second side, and therefore suffers none. So then,
-the Sun's incident Light being of the same Temper and Constitution with
-his emergent Light, and the last being compounded of Rays differently
-refrangible, the first must be in like manner compounded.
-
-[Illustration: FIG. 21.]
-
-_Illustration._ In the twenty-first Figure, ABC is the first Prism, BC
-its Base, B and C its equal Angles at the Base, each of 45 Degrees, A
-its rectangular Vertex, FM a beam of the Sun's Light let into a dark
-Room through a hole F one third part of an Inch broad, M its Incidence
-on the Base of the Prism, MG a less refracted Ray, MH a more refracted
-Ray, MN the beam of Light reflected from the Base, VXY the second Prism
-by which this beam in passing through it is refracted, N_t_ the less
-refracted Light of this beam, and N_p_ the more refracted part thereof.
-When the first Prism ABC is turned about its Axis according to the order
-of the Letters ABC, the Rays MH emerge more and more obliquely out of
-that Prism, and at length after their most oblique Emergence are
-reflected towards N, and going on to _p_ do increase the Number of the
-Rays N_p_. Afterwards by continuing the Motion of the first Prism, the
-Rays MG are also reflected to N and increase the number of the Rays
-N_t_. And therefore the Light MN admits into its Composition, first the
-more refrangible Rays, and then the less refrangible Rays, and yet after
-this Composition is of the same Nature with the Sun's immediate Light
-FM, the Reflexion of the specular Base BC causing no Alteration therein.
-
-_Exper._ 10. Two Prisms, which were alike in Shape, I tied so together,
-that their Axis and opposite Sides being parallel, they composed a
-Parallelopiped. And, the Sun shining into my dark Chamber through a
-little hole in the Window-shut, I placed that Parallelopiped in his beam
-at some distance from the hole, in such a Posture, that the Axes of the
-Prisms might be perpendicular to the incident Rays, and that those Rays
-being incident upon the first Side of one Prism, might go on through the
-two contiguous Sides of both Prisms, and emerge out of the last Side of
-the second Prism. This Side being parallel to the first Side of the
-first Prism, caused the emerging Light to be parallel to the incident.
-Then, beyond these two Prisms I placed a third, which might refract that
-emergent Light, and by that Refraction cast the usual Colours of the
-Prism upon the opposite Wall, or upon a sheet of white Paper held at a
-convenient Distance behind the Prism for that refracted Light to fall
-upon it. After this I turned the Parallelopiped about its Axis, and
-found that when the contiguous Sides of the two Prisms became so oblique
-to the incident Rays, that those Rays began all of them to be
-reflected, those Rays which in the third Prism had suffered the greatest
-Refraction, and painted the Paper with violet and blue, were first of
-all by a total Reflexion taken out of the transmitted Light, the rest
-remaining and on the Paper painting their Colours of green, yellow,
-orange and red, as before; and afterwards by continuing the Motion of
-the two Prisms, the rest of the Rays also by a total Reflexion vanished
-in order, according to their degrees of Refrangibility. The Light
-therefore which emerged out of the two Prisms is compounded of Rays
-differently refrangible, seeing the more refrangible Rays may be taken
-out of it, while the less refrangible remain. But this Light being
-trajected only through the parallel Superficies of the two Prisms, if it
-suffer'd any change by the Refraction of one Superficies it lost that
-Impression by the contrary Refraction of the other Superficies, and so
-being restor'd to its pristine Constitution, became of the same Nature
-and Condition as at first before its Incidence on those Prisms; and
-therefore, before its Incidence, was as much compounded of Rays
-differently refrangible, as afterwards.
-
-[Illustration: FIG. 22.]
-
-_Illustration._ In the twenty second Figure ABC and BCD are the two
-Prisms tied together in the form of a Parallelopiped, their Sides BC and
-CB being contiguous, and their Sides AB and CD parallel. And HJK is the
-third Prism, by which the Sun's Light propagated through the hole F into
-the dark Chamber, and there passing through those sides of the Prisms
-AB, BC, CB and CD, is refracted at O to the white Paper PT, falling
-there partly upon P by a greater Refraction, partly upon T by a less
-Refraction, and partly upon R and other intermediate places by
-intermediate Refractions. By turning the Parallelopiped ACBD about its
-Axis, according to the order of the Letters A, C, D, B, at length when
-the contiguous Planes BC and CB become sufficiently oblique to the Rays
-FM, which are incident upon them at M, there will vanish totally out of
-the refracted Light OPT, first of all the most refracted Rays OP, (the
-rest OR and OT remaining as before) then the Rays OR and other
-intermediate ones, and lastly, the least refracted Rays OT. For when
-the Plane BC becomes sufficiently oblique to the Rays incident upon it,
-those Rays will begin to be totally reflected by it towards N; and first
-the most refrangible Rays will be totally reflected (as was explained in
-the preceding Experiment) and by Consequence must first disappear at P,
-and afterwards the rest as they are in order totally reflected to N,
-they must disappear in the same order at R and T. So then the Rays which
-at O suffer the greatest Refraction, may be taken out of the Light MO
-whilst the rest of the Rays remain in it, and therefore that Light MO is
-compounded of Rays differently refrangible. And because the Planes AB
-and CD are parallel, and therefore by equal and contrary Refractions
-destroy one anothers Effects, the incident Light FM must be of the same
-Kind and Nature with the emergent Light MO, and therefore doth also
-consist of Rays differently refrangible. These two Lights FM and MO,
-before the most refrangible Rays are separated out of the emergent Light
-MO, agree in Colour, and in all other Properties so far as my
-Observation reaches, and therefore are deservedly reputed of the same
-Nature and Constitution, and by Consequence the one is compounded as
-well as the other. But after the most refrangible Rays begin to be
-totally reflected, and thereby separated out of the emergent Light MO,
-that Light changes its Colour from white to a dilute and faint yellow, a
-pretty good orange, a very full red successively, and then totally
-vanishes. For after the most refrangible Rays which paint the Paper at
-P with a purple Colour, are by a total Reflexion taken out of the beam
-of Light MO, the rest of the Colours which appear on the Paper at R and
-T being mix'd in the Light MO compound there a faint yellow, and after
-the blue and part of the green which appear on the Paper between P and R
-are taken away, the rest which appear between R and T (that is the
-yellow, orange, red and a little green) being mixed in the beam MO
-compound there an orange; and when all the Rays are by Reflexion taken
-out of the beam MO, except the least refrangible, which at T appear of a
-full red, their Colour is the same in that beam MO as afterwards at T,
-the Refraction of the Prism HJK serving only to separate the differently
-refrangible Rays, without making any Alteration in their Colours, as
-shall be more fully proved hereafter. All which confirms as well the
-first Proposition as the second.
-
-_Scholium._ If this Experiment and the former be conjoined and made one
-by applying a fourth Prism VXY [in _Fig._ 22.] to refract the reflected
-beam MN towards _tp_, the Conclusion will be clearer. For then the Light
-N_p_ which in the fourth Prism is more refracted, will become fuller and
-stronger when the Light OP, which in the third Prism HJK is more
-refracted, vanishes at P; and afterwards when the less refracted Light
-OT vanishes at T, the less refracted Light N_t_ will become increased
-whilst the more refracted Light at _p_ receives no farther increase. And
-as the trajected beam MO in vanishing is always of such a Colour as
-ought to result from the mixture of the Colours which fall upon the
-Paper PT, so is the reflected beam MN always of such a Colour as ought
-to result from the mixture of the Colours which fall upon the Paper
-_pt_. For when the most refrangible Rays are by a total Reflexion taken
-out of the beam MO, and leave that beam of an orange Colour, the Excess
-of those Rays in the reflected Light, does not only make the violet,
-indigo and blue at _p_ more full, but also makes the beam MN change from
-the yellowish Colour of the Sun's Light, to a pale white inclining to
-blue, and afterward recover its yellowish Colour again, so soon as all
-the rest of the transmitted Light MOT is reflected.
-
-Now seeing that in all this variety of Experiments, whether the Trial be
-made in Light reflected, and that either from natural Bodies, as in the
-first and second Experiment, or specular, as in the ninth; or in Light
-refracted, and that either before the unequally refracted Rays are by
-diverging separated from one another, and losing their whiteness which
-they have altogether, appear severally of several Colours, as in the
-fifth Experiment; or after they are separated from one another, and
-appear colour'd as in the sixth, seventh, and eighth Experiments; or in
-Light trajected through parallel Superficies, destroying each others
-Effects, as in the tenth Experiment; there are always found Rays, which
-at equal Incidences on the same Medium suffer unequal Refractions, and
-that without any splitting or dilating of single Rays, or contingence in
-the inequality of the Refractions, as is proved in the fifth and sixth
-Experiments. And seeing the Rays which differ in Refrangibility may be
-parted and sorted from one another, and that either by Refraction as in
-the third Experiment, or by Reflexion as in the tenth, and then the
-several sorts apart at equal Incidences suffer unequal Refractions, and
-those sorts are more refracted than others after Separation, which were
-more refracted before it, as in the sixth and following Experiments, and
-if the Sun's Light be trajected through three or more cross Prisms
-successively, those Rays which in the first Prism are refracted more
-than others, are in all the following Prisms refracted more than others
-in the same Rate and Proportion, as appears by the fifth Experiment;
-it's manifest that the Sun's Light is an heterogeneous Mixture of Rays,
-some of which are constantly more refrangible than others, as was
-proposed.
-
-
-_PROP._ III. THEOR. III.
-
-_The Sun's Light consists of Rays differing in Reflexibility, and those
-Rays are more reflexible than others which are more refrangible._
-
-This is manifest by the ninth and tenth Experiments: For in the ninth
-Experiment, by turning the Prism about its Axis, until the Rays within
-it which in going out into the Air were refracted by its Base, became so
-oblique to that Base, as to begin to be totally reflected thereby; those
-Rays became first of all totally reflected, which before at equal
-Incidences with the rest had suffered the greatest Refraction. And the
-same thing happens in the Reflexion made by the common Base of the two
-Prisms in the tenth Experiment.
-
-
-_PROP._ IV. PROB. I.
-
-_To separate from one another the heterogeneous Rays of compound Light._
-
-[Illustration: FIG. 23.]
-
-The heterogeneous Rays are in some measure separated from one another by
-the Refraction of the Prism in the third Experiment, and in the fifth
-Experiment, by taking away the Penumbra from the rectilinear sides of
-the coloured Image, that Separation in those very rectilinear sides or
-straight edges of the Image becomes perfect. But in all places between
-those rectilinear edges, those innumerable Circles there described,
-which are severally illuminated by homogeneal Rays, by interfering with
-one another, and being every where commix'd, do render the Light
-sufficiently compound. But if these Circles, whilst their Centers keep
-their Distances and Positions, could be made less in Diameter, their
-interfering one with another, and by Consequence the Mixture of the
-heterogeneous Rays would be proportionally diminish'd. In the twenty
-third Figure let AG, BH, CJ, DK, EL, FM be the Circles which so many
-sorts of Rays flowing from the same disque of the Sun, do in the third
-Experiment illuminate; of all which and innumerable other intermediate
-ones lying in a continual Series between the two rectilinear and
-parallel edges of the Sun's oblong Image PT, that Image is compos'd, as
-was explained in the fifth Experiment. And let _ag_, _bh_, _ci_, _dk_,
-_el_, _fm_ be so many less Circles lying in a like continual Series
-between two parallel right Lines _af_ and _gm_ with the same distances
-between their Centers, and illuminated by the same sorts of Rays, that
-is the Circle _ag_ with the same sort by which the corresponding Circle
-AG was illuminated, and the Circle _bh_ with the same sort by which the
-corresponding Circle BH was illuminated, and the rest of the Circles
-_ci_, _dk_, _el_, _fm_ respectively, with the same sorts of Rays by
-which the several corresponding Circles CJ, DK, EL, FM were illuminated.
-In the Figure PT composed of the greater Circles, three of those Circles
-AG, BH, CJ, are so expanded into one another, that the three sorts of
-Rays by which those Circles are illuminated, together with other
-innumerable sorts of intermediate Rays, are mixed at QR in the middle
-of the Circle BH. And the like Mixture happens throughout almost the
-whole length of the Figure PT. But in the Figure _pt_ composed of the
-less Circles, the three less Circles _ag_, _bh_, _ci_, which answer to
-those three greater, do not extend into one another; nor are there any
-where mingled so much as any two of the three sorts of Rays by which
-those Circles are illuminated, and which in the Figure PT are all of
-them intermingled at BH.
-
-Now he that shall thus consider it, will easily understand that the
-Mixture is diminished in the same Proportion with the Diameters of the
-Circles. If the Diameters of the Circles whilst their Centers remain the
-same, be made three times less than before, the Mixture will be also
-three times less; if ten times less, the Mixture will be ten times less,
-and so of other Proportions. That is, the Mixture of the Rays in the
-greater Figure PT will be to their Mixture in the less _pt_, as the
-Latitude of the greater Figure is to the Latitude of the less. For the
-Latitudes of these Figures are equal to the Diameters of their Circles.
-And hence it easily follows, that the Mixture of the Rays in the
-refracted Spectrum _pt_ is to the Mixture of the Rays in the direct and
-immediate Light of the Sun, as the breadth of that Spectrum is to the
-difference between the length and breadth of the same Spectrum.
-
-So then, if we would diminish the Mixture of the Rays, we are to
-diminish the Diameters of the Circles. Now these would be diminished if
-the Sun's Diameter to which they answer could be made less than it is,
-or (which comes to the same Purpose) if without Doors, at a great
-distance from the Prism towards the Sun, some opake Body were placed,
-with a round hole in the middle of it, to intercept all the Sun's Light,
-excepting so much as coming from the middle of his Body could pass
-through that Hole to the Prism. For so the Circles AG, BH, and the rest,
-would not any longer answer to the whole Disque of the Sun, but only to
-that Part of it which could be seen from the Prism through that Hole,
-that it is to the apparent Magnitude of that Hole view'd from the Prism.
-But that these Circles may answer more distinctly to that Hole, a Lens
-is to be placed by the Prism to cast the Image of the Hole, (that is,
-every one of the Circles AG, BH, &c.) distinctly upon the Paper at PT,
-after such a manner, as by a Lens placed at a Window, the Species of
-Objects abroad are cast distinctly upon a Paper within the Room, and the
-rectilinear Sides of the oblong Solar Image in the fifth Experiment
-became distinct without any Penumbra. If this be done, it will not be
-necessary to place that Hole very far off, no not beyond the Window. And
-therefore instead of that Hole, I used the Hole in the Window-shut, as
-follows.
-
-_Exper._ 11. In the Sun's Light let into my darken'd Chamber through a
-small round Hole in my Window-shut, at about ten or twelve Feet from the
-Window, I placed a Lens, by which the Image of the Hole might be
-distinctly cast upon a Sheet of white Paper, placed at the distance of
-six, eight, ten, or twelve Feet from the Lens. For, according to the
-difference of the Lenses I used various distances, which I think not
-worth the while to describe. Then immediately after the Lens I placed a
-Prism, by which the trajected Light might be refracted either upwards or
-sideways, and thereby the round Image, which the Lens alone did cast
-upon the Paper might be drawn out into a long one with Parallel Sides,
-as in the third Experiment. This oblong Image I let fall upon another
-Paper at about the same distance from the Prism as before, moving the
-Paper either towards the Prism or from it, until I found the just
-distance where the Rectilinear Sides of the Image became most distinct.
-For in this Case, the Circular Images of the Hole, which compose that
-Image after the same manner that the Circles _ag_, _bh_, _ci_, &c. do
-the Figure _pt_ [in _Fig._ 23.] were terminated most distinctly without
-any Penumbra, and therefore extended into one another the least that
-they could, and by consequence the Mixture of the heterogeneous Rays was
-now the least of all. By this means I used to form an oblong Image (such
-as is _pt_) [in _Fig._ 23, and 24.] of Circular Images of the Hole,
-(such as are _ag_, _bh_, _ci_, &c.) and by using a greater or less Hole
-in the Window-shut, I made the Circular Images _ag_, _bh_, _ci_, &c. of
-which it was formed, to become greater or less at pleasure, and thereby
-the Mixture of the Rays in the Image _pt_ to be as much, or as little as
-I desired.
-
-[Illustration: FIG. 24.]
-
-_Illustration._ In the twenty-fourth Figure, F represents the Circular
-Hole in the Window-shut, MN the Lens, whereby the Image or Species of
-that Hole is cast distinctly upon a Paper at J, ABC the Prism, whereby
-the Rays are at their emerging out of the Lens refracted from J towards
-another Paper at _pt_, and the round Image at J is turned into an oblong
-Image _pt_ falling on that other Paper. This Image _pt_ consists of
-Circles placed one after another in a Rectilinear Order, as was
-sufficiently explained in the fifth Experiment; and these Circles are
-equal to the Circle J, and consequently answer in magnitude to the Hole
-F; and therefore by diminishing that Hole they may be at pleasure
-diminished, whilst their Centers remain in their Places. By this means I
-made the Breadth of the Image _pt_ to be forty times, and sometimes
-sixty or seventy times less than its Length. As for instance, if the
-Breadth of the Hole F be one tenth of an Inch, and MF the distance of
-the Lens from the Hole be 12 Feet; and if _p_B or _p_M the distance of
-the Image _pt_ from the Prism or Lens be 10 Feet, and the refracting
-Angle of the Prism be 62 Degrees, the Breadth of the Image _pt_ will be
-one twelfth of an Inch, and the Length about six Inches, and therefore
-the Length to the Breadth as 72 to 1, and by consequence the Light of
-this Image 71 times less compound than the Sun's direct Light. And Light
-thus far simple and homogeneal, is sufficient for trying all the
-Experiments in this Book about simple Light. For the Composition of
-heterogeneal Rays is in this Light so little, that it is scarce to be
-discovered and perceiv'd by Sense, except perhaps in the indigo and
-violet. For these being dark Colours do easily suffer a sensible Allay
-by that little scattering Light which uses to be refracted irregularly
-by the Inequalities of the Prism.
-
-Yet instead of the Circular Hole F, 'tis better to substitute an oblong
-Hole shaped like a long Parallelogram with its Length parallel to the
-Prism ABC. For if this Hole be an Inch or two long, and but a tenth or
-twentieth Part of an Inch broad, or narrower; the Light of the Image
-_pt_ will be as simple as before, or simpler, and the Image will become
-much broader, and therefore more fit to have Experiments try'd in its
-Light than before.
-
-Instead of this Parallelogram Hole may be substituted a triangular one
-of equal Sides, whose Base, for instance, is about the tenth Part of an
-Inch, and its Height an Inch or more. For by this means, if the Axis of
-the Prism be parallel to the Perpendicular of the Triangle, the Image
-_pt_ [in _Fig._ 25.] will now be form'd of equicrural Triangles _ag_,
-_bh_, _ci_, _dk_, _el_, _fm_, &c. and innumerable other intermediate
-ones answering to the triangular Hole in Shape and Bigness, and lying
-one after another in a continual Series between two Parallel Lines _af_
-and _gm_. These Triangles are a little intermingled at their Bases, but
-not at their Vertices; and therefore the Light on the brighter Side _af_
-of the Image, where the Bases of the Triangles are, is a little
-compounded, but on the darker Side _gm_ is altogether uncompounded, and
-in all Places between the Sides the Composition is proportional to the
-distances of the Places from that obscurer Side _gm_. And having a
-Spectrum _pt_ of such a Composition, we may try Experiments either in
-its stronger and less simple Light near the Side _af_, or in its weaker
-and simpler Light near the other Side _gm_, as it shall seem most
-convenient.
-
-[Illustration: FIG. 25.]
-
-But in making Experiments of this kind, the Chamber ought to be made as
-dark as can be, lest any Foreign Light mingle it self with the Light of
-the Spectrum _pt_, and render it compound; especially if we would try
-Experiments in the more simple Light next the Side _gm_ of the Spectrum;
-which being fainter, will have a less proportion to the Foreign Light;
-and so by the mixture of that Light be more troubled, and made more
-compound. The Lens also ought to be good, such as may serve for optical
-Uses, and the Prism ought to have a large Angle, suppose of 65 or 70
-Degrees, and to be well wrought, being made of Glass free from Bubbles
-and Veins, with its Sides not a little convex or concave, as usually
-happens, but truly plane, and its Polish elaborate, as in working
-Optick-glasses, and not such as is usually wrought with Putty, whereby
-the edges of the Sand-holes being worn away, there are left all over the
-Glass a numberless Company of very little convex polite Risings like
-Waves. The edges also of the Prism and Lens, so far as they may make any
-irregular Refraction, must be covered with a black Paper glewed on. And
-all the Light of the Sun's Beam let into the Chamber, which is useless
-and unprofitable to the Experiment, ought to be intercepted with black
-Paper, or other black Obstacles. For otherwise the useless Light being
-reflected every way in the Chamber, will mix with the oblong Spectrum,
-and help to disturb it. In trying these Things, so much diligence is not
-altogether necessary, but it will promote the Success of the
-Experiments, and by a very scrupulous Examiner of Things deserves to be
-apply'd. It's difficult to get Glass Prisms fit for this Purpose, and
-therefore I used sometimes prismatick Vessels made with pieces of broken
-Looking-glasses, and filled with Rain Water. And to increase the
-Refraction, I sometimes impregnated the Water strongly with _Saccharum
-Saturni_.
-
-
-_PROP._ V. THEOR. IV.
-
-_Homogeneal Light is refracted regularly without any Dilatation
-splitting or shattering of the Rays, and the confused Vision of Objects
-seen through refracting Bodies by heterogeneal Light arises from the
-different Refrangibility of several sorts of Rays._
-
-The first Part of this Proposition has been already sufficiently proved
-in the fifth Experiment, and will farther appear by the Experiments
-which follow.
-
-_Exper._ 12. In the middle of a black Paper I made a round Hole about a
-fifth or sixth Part of an Inch in diameter. Upon this Paper I caused the
-Spectrum of homogeneal Light described in the former Proposition, so to
-fall, that some part of the Light might pass through the Hole of the
-Paper. This transmitted part of the Light I refracted with a Prism
-placed behind the Paper, and letting this refracted Light fall
-perpendicularly upon a white Paper two or three Feet distant from the
-Prism, I found that the Spectrum formed on the Paper by this Light was
-not oblong, as when 'tis made (in the third Experiment) by refracting
-the Sun's compound Light, but was (so far as I could judge by my Eye)
-perfectly circular, the Length being no greater than the Breadth. Which
-shews, that this Light is refracted regularly without any Dilatation of
-the Rays.
-
-_Exper._ 13. In the homogeneal Light I placed a Paper Circle of a
-quarter of an Inch in diameter, and in the Sun's unrefracted
-heterogeneal white Light I placed another Paper Circle of the same
-Bigness. And going from the Papers to the distance of some Feet, I
-viewed both Circles through a Prism. The Circle illuminated by the Sun's
-heterogeneal Light appeared very oblong, as in the fourth Experiment,
-the Length being many times greater than the Breadth; but the other
-Circle, illuminated with homogeneal Light, appeared circular and
-distinctly defined, as when 'tis view'd with the naked Eye. Which proves
-the whole Proposition.
-
-_Exper._ 14. In the homogeneal Light I placed Flies, and such-like
-minute Objects, and viewing them through a Prism, I saw their Parts as
-distinctly defined, as if I had viewed them with the naked Eye. The same
-Objects placed in the Sun's unrefracted heterogeneal Light, which was
-white, I viewed also through a Prism, and saw them most confusedly
-defined, so that I could not distinguish their smaller Parts from one
-another. I placed also the Letters of a small print, one while in the
-homogeneal Light, and then in the heterogeneal, and viewing them through
-a Prism, they appeared in the latter Case so confused and indistinct,
-that I could not read them; but in the former they appeared so distinct,
-that I could read readily, and thought I saw them as distinct, as when I
-view'd them with my naked Eye. In both Cases I view'd the same Objects,
-through the same Prism at the same distance from me, and in the same
-Situation. There was no difference, but in the Light by which the
-Objects were illuminated, and which in one Case was simple, and in the
-other compound; and therefore, the distinct Vision in the former Case,
-and confused in the latter, could arise from nothing else than from that
-difference of the Lights. Which proves the whole Proposition.
-
-And in these three Experiments it is farther very remarkable, that the
-Colour of homogeneal Light was never changed by the Refraction.
-
-
-_PROP._ VI. THEOR. V.
-
-_The Sine of Incidence of every Ray considered apart, is to its Sine of
-Refraction in a given Ratio._
-
-That every Ray consider'd apart, is constant to it self in some degree
-of Refrangibility, is sufficiently manifest out of what has been said.
-Those Rays, which in the first Refraction, are at equal Incidences most
-refracted, are also in the following Refractions at equal Incidences
-most refracted; and so of the least refrangible, and the rest which have
-any mean Degree of Refrangibility, as is manifest by the fifth, sixth,
-seventh, eighth, and ninth Experiments. And those which the first Time
-at like Incidences are equally refracted, are again at like Incidences
-equally and uniformly refracted, and that whether they be refracted
-before they be separated from one another, as in the fifth Experiment,
-or whether they be refracted apart, as in the twelfth, thirteenth and
-fourteenth Experiments. The Refraction therefore of every Ray apart is
-regular, and what Rule that Refraction observes we are now to shew.[E]
-
-The late Writers in Opticks teach, that the Sines of Incidence are in a
-given Proportion to the Sines of Refraction, as was explained in the
-fifth Axiom, and some by Instruments fitted for measuring of
-Refractions, or otherwise experimentally examining this Proportion, do
-acquaint us that they have found it accurate. But whilst they, not
-understanding the different Refrangibility of several Rays, conceived
-them all to be refracted according to one and the same Proportion, 'tis
-to be presumed that they adapted their Measures only to the middle of
-the refracted Light; so that from their Measures we may conclude only
-that the Rays which have a mean Degree of Refrangibility, that is, those
-which when separated from the rest appear green, are refracted according
-to a given Proportion of their Sines. And therefore we are now to shew,
-that the like given Proportions obtain in all the rest. That it should
-be so is very reasonable, Nature being ever conformable to her self; but
-an experimental Proof is desired. And such a Proof will be had, if we
-can shew that the Sines of Refraction of Rays differently refrangible
-are one to another in a given Proportion when their Sines of Incidence
-are equal. For, if the Sines of Refraction of all the Rays are in given
-Proportions to the Sine of Refractions of a Ray which has a mean Degree
-of Refrangibility, and this Sine is in a given Proportion to the equal
-Sines of Incidence, those other Sines of Refraction will also be in
-given Proportions to the equal Sines of Incidence. Now, when the Sines
-of Incidence are equal, it will appear by the following Experiment, that
-the Sines of Refraction are in a given Proportion to one another.
-
-[Illustration: FIG. 26.]
-
-_Exper._ 15. The Sun shining into a dark Chamber through a little round
-Hole in the Window-shut, let S [in _Fig._ 26.] represent his round white
-Image painted on the opposite Wall by his direct Light, PT his oblong
-coloured Image made by refracting that Light with a Prism placed at the
-Window; and _pt_, or _2p 2t_, _3p 3t_, his oblong colour'd Image made by
-refracting again the same Light sideways with a second Prism placed
-immediately after the first in a cross Position to it, as was explained
-in the fifth Experiment; that is to say, _pt_ when the Refraction of the
-second Prism is small, _2p 2t_ when its Refraction is greater, and _3p
-3t_ when it is greatest. For such will be the diversity of the
-Refractions, if the refracting Angle of the second Prism be of various
-Magnitudes; suppose of fifteen or twenty Degrees to make the Image _pt_,
-of thirty or forty to make the Image _2p 2t_, and of sixty to make the
-Image _3p 3t_. But for want of solid Glass Prisms with Angles of
-convenient Bignesses, there may be Vessels made of polished Plates of
-Glass cemented together in the form of Prisms and filled with Water.
-These things being thus ordered, I observed that all the solar Images or
-coloured Spectrums PT, _pt_, _2p 2t_, _3p 3t_ did very nearly converge
-to the place S on which the direct Light of the Sun fell and painted his
-white round Image when the Prisms were taken away. The Axis of the
-Spectrum PT, that is the Line drawn through the middle of it parallel to
-its rectilinear Sides, did when produced pass exactly through the middle
-of that white round Image S. And when the Refraction of the second Prism
-was equal to the Refraction of the first, the refracting Angles of them
-both being about 60 Degrees, the Axis of the Spectrum _3p 3t_ made by
-that Refraction, did when produced pass also through the middle of the
-same white round Image S. But when the Refraction of the second Prism
-was less than that of the first, the produced Axes of the Spectrums _tp_
-or _2t 2p_ made by that Refraction did cut the produced Axis of the
-Spectrum TP in the points _m_ and _n_, a little beyond the Center of
-that white round Image S. Whence the proportion of the Line 3_t_T to the
-Line 3_p_P was a little greater than the Proportion of 2_t_T or 2_p_P,
-and this Proportion a little greater than that of _t_T to _p_P. Now when
-the Light of the Spectrum PT falls perpendicularly upon the Wall, those
-Lines 3_t_T, 3_p_P, and 2_t_T, and 2_p_P, and _t_T, _p_P, are the
-Tangents of the Refractions, and therefore by this Experiment the
-Proportions of the Tangents of the Refractions are obtained, from whence
-the Proportions of the Sines being derived, they come out equal, so far
-as by viewing the Spectrums, and using some mathematical Reasoning I
-could estimate. For I did not make an accurate Computation. So then the
-Proposition holds true in every Ray apart, so far as appears by
-Experiment. And that it is accurately true, may be demonstrated upon
-this Supposition. _That Bodies refract Light by acting upon its Rays in
-Lines perpendicular to their Surfaces._ But in order to this
-Demonstration, I must distinguish the Motion of every Ray into two
-Motions, the one perpendicular to the refracting Surface, the other
-parallel to it, and concerning the perpendicular Motion lay down the
-following Proposition.
-
-If any Motion or moving thing whatsoever be incident with any Velocity
-on any broad and thin space terminated on both sides by two parallel
-Planes, and in its Passage through that space be urged perpendicularly
-towards the farther Plane by any force which at given distances from the
-Plane is of given Quantities; the perpendicular velocity of that Motion
-or Thing, at its emerging out of that space, shall be always equal to
-the square Root of the sum of the square of the perpendicular velocity
-of that Motion or Thing at its Incidence on that space; and of the
-square of the perpendicular velocity which that Motion or Thing would
-have at its Emergence, if at its Incidence its perpendicular velocity
-was infinitely little.
-
-And the same Proposition holds true of any Motion or Thing
-perpendicularly retarded in its passage through that space, if instead
-of the sum of the two Squares you take their difference. The
-Demonstration Mathematicians will easily find out, and therefore I shall
-not trouble the Reader with it.
-
-Suppose now that a Ray coming most obliquely in the Line MC [in _Fig._
-1.] be refracted at C by the Plane RS into the Line CN, and if it be
-required to find the Line CE, into which any other Ray AC shall be
-refracted; let MC, AD, be the Sines of Incidence of the two Rays, and
-NG, EF, their Sines of Refraction, and let the equal Motions of the
-incident Rays be represented by the equal Lines MC and AC, and the
-Motion MC being considered as parallel to the refracting Plane, let the
-other Motion AC be distinguished into two Motions AD and DC, one of
-which AD is parallel, and the other DC perpendicular to the refracting
-Surface. In like manner, let the Motions of the emerging Rays be
-distinguish'd into two, whereof the perpendicular ones are MC/NG Ă— CG
-and AD/EF Ă— CF. And if the force of the refracting Plane begins to act
-upon the Rays either in that Plane or at a certain distance from it on
-the one side, and ends at a certain distance from it on the other side,
-and in all places between those two limits acts upon the Rays in Lines
-perpendicular to that refracting Plane, and the Actions upon the Rays at
-equal distances from the refracting Plane be equal, and at unequal ones
-either equal or unequal according to any rate whatever; that Motion of
-the Ray which is parallel to the refracting Plane, will suffer no
-Alteration by that Force; and that Motion which is perpendicular to it
-will be altered according to the rule of the foregoing Proposition. If
-therefore for the perpendicular velocity of the emerging Ray CN you
-write MC/NG Ă— CG as above, then the perpendicular velocity of any other
-emerging Ray CE which was AD/EF Ă— CF, will be equal to the square Root
-of CD_q_ + (_MCq/NGq_ Ă— CG_q_). And by squaring these Equals, and adding
-to them the Equals AD_q_ and MC_q_ - CD_q_, and dividing the Sums by the
-Equals CF_q_ + EF_q_ and CG_q_ + NG_q_, you will have _MCq/NGq_ equal to
-_ADq/EFq_. Whence AD, the Sine of Incidence, is to EF the Sine of
-Refraction, as MC to NG, that is, in a given _ratio_. And this
-Demonstration being general, without determining what Light is, or by
-what kind of Force it is refracted, or assuming any thing farther than
-that the refracting Body acts upon the Rays in Lines perpendicular to
-its Surface; I take it to be a very convincing Argument of the full
-truth of this Proposition.
-
-So then, if the _ratio_ of the Sines of Incidence and Refraction of any
-sort of Rays be found in any one case, 'tis given in all cases; and this
-may be readily found by the Method in the following Proposition.
-
-
-_PROP._ VII. THEOR. VI.
-
-_The Perfection of Telescopes is impeded by the different Refrangibility
-of the Rays of Light._
-
-The Imperfection of Telescopes is vulgarly attributed to the spherical
-Figures of the Glasses, and therefore Mathematicians have propounded to
-figure them by the conical Sections. To shew that they are mistaken, I
-have inserted this Proposition; the truth of which will appear by the
-measure of the Refractions of the several sorts of Rays; and these
-measures I thus determine.
-
-In the third Experiment of this first Part, where the refracting Angle
-of the Prism was 62-1/2 Degrees, the half of that Angle 31 deg. 15 min.
-is the Angle of Incidence of the Rays at their going out of the Glass
-into the Air[F]; and the Sine of this Angle is 5188, the Radius being
-10000. When the Axis of this Prism was parallel to the Horizon, and the
-Refraction of the Rays at their Incidence on this Prism equal to that at
-their Emergence out of it, I observed with a Quadrant the Angle which
-the mean refrangible Rays, (that is those which went to the middle of
-the Sun's coloured Image) made with the Horizon, and by this Angle and
-the Sun's altitude observed at the same time, I found the Angle which
-the emergent Rays contained with the incident to be 44 deg. and 40 min.
-and the half of this Angle added to the Angle of Incidence 31 deg. 15
-min. makes the Angle of Refraction, which is therefore 53 deg. 35 min.
-and its Sine 8047. These are the Sines of Incidence and Refraction of
-the mean refrangible Rays, and their Proportion in round Numbers is 20
-to 31. This Glass was of a Colour inclining to green. The last of the
-Prisms mentioned in the third Experiment was of clear white Glass. Its
-refracting Angle 63-1/2 Degrees. The Angle which the emergent Rays
-contained, with the incident 45 deg. 50 min. The Sine of half the first
-Angle 5262. The Sine of half the Sum of the Angles 8157. And their
-Proportion in round Numbers 20 to 31, as before.
-
-From the Length of the Image, which was about 9-3/4 or 10 Inches,
-subduct its Breadth, which was 2-1/8 Inches, and the Remainder 7-3/4
-Inches would be the Length of the Image were the Sun but a Point, and
-therefore subtends the Angle which the most and least refrangible Rays,
-when incident on the Prism in the same Lines, do contain with one
-another after their Emergence. Whence this Angle is 2 deg. 0´. 7´´. For
-the distance between the Image and the Prism where this Angle is made,
-was 18-1/2 Feet, and at that distance the Chord 7-3/4 Inches subtends an
-Angle of 2 deg. 0´. 7´´. Now half this Angle is the Angle which these
-emergent Rays contain with the emergent mean refrangible Rays, and a
-quarter thereof, that is 30´. 2´´. may be accounted the Angle which they
-would contain with the same emergent mean refrangible Rays, were they
-co-incident to them within the Glass, and suffered no other Refraction
-than that at their Emergence. For, if two equal Refractions, the one at
-the Incidence of the Rays on the Prism, the other at their Emergence,
-make half the Angle 2 deg. 0´. 7´´. then one of those Refractions will
-make about a quarter of that Angle, and this quarter added to, and
-subducted from the Angle of Refraction of the mean refrangible Rays,
-which was 53 deg. 35´, gives the Angles of Refraction of the most and
-least refrangible Rays 54 deg. 5´ 2´´, and 53 deg. 4´ 58´´, whose Sines
-are 8099 and 7995, the common Angle of Incidence being 31 deg. 15´, and
-its Sine 5188; and these Sines in the least round Numbers are in
-proportion to one another, as 78 and 77 to 50.
-
-Now, if you subduct the common Sine of Incidence 50 from the Sines of
-Refraction 77 and 78, the Remainders 27 and 28 shew, that in small
-Refractions the Refraction of the least refrangible Rays is to the
-Refraction of the most refrangible ones, as 27 to 28 very nearly, and
-that the difference of the Refractions of the least refrangible and most
-refrangible Rays is about the 27-1/2th Part of the whole Refraction of
-the mean refrangible Rays.
-
-Whence they that are skilled in Opticks will easily understand,[G] that
-the Breadth of the least circular Space, into which Object-glasses of
-Telescopes can collect all sorts of Parallel Rays, is about the 27-1/2th
-Part of half the Aperture of the Glass, or 55th Part of the whole
-Aperture; and that the Focus of the most refrangible Rays is nearer to
-the Object-glass than the Focus of the least refrangible ones, by about
-the 27-1/2th Part of the distance between the Object-glass and the Focus
-of the mean refrangible ones.
-
-And if Rays of all sorts, flowing from any one lucid Point in the Axis
-of any convex Lens, be made by the Refraction of the Lens to converge to
-Points not too remote from the Lens, the Focus of the most refrangible
-Rays shall be nearer to the Lens than the Focus of the least refrangible
-ones, by a distance which is to the 27-1/2th Part of the distance of the
-Focus of the mean refrangible Rays from the Lens, as the distance
-between that Focus and the lucid Point, from whence the Rays flow, is to
-the distance between that lucid Point and the Lens very nearly.
-
-Now to examine whether the Difference between the Refractions, which the
-most refrangible and the least refrangible Rays flowing from the same
-Point suffer in the Object-glasses of Telescopes and such-like Glasses,
-be so great as is here described, I contrived the following Experiment.
-
-_Exper._ 16. The Lens which I used in the second and eighth Experiments,
-being placed six Feet and an Inch distant from any Object, collected the
-Species of that Object by the mean refrangible Rays at the distance of
-six Feet and an Inch from the Lens on the other side. And therefore by
-the foregoing Rule, it ought to collect the Species of that Object by
-the least refrangible Rays at the distance of six Feet and 3-2/3 Inches
-from the Lens, and by the most refrangible ones at the distance of five
-Feet and 10-1/3 Inches from it: So that between the two Places, where
-these least and most refrangible Rays collect the Species, there may be
-the distance of about 5-1/3 Inches. For by that Rule, as six Feet and an
-Inch (the distance of the Lens from the lucid Object) is to twelve Feet
-and two Inches (the distance of the lucid Object from the Focus of the
-mean refrangible Rays) that is, as One is to Two; so is the 27-1/2th
-Part of six Feet and an Inch (the distance between the Lens and the same
-Focus) to the distance between the Focus of the most refrangible Rays
-and the Focus of the least refrangible ones, which is therefore 5-17/55
-Inches, that is very nearly 5-1/3 Inches. Now to know whether this
-Measure was true, I repeated the second and eighth Experiment with
-coloured Light, which was less compounded than that I there made use of:
-For I now separated the heterogeneous Rays from one another by the
-Method I described in the eleventh Experiment, so as to make a coloured
-Spectrum about twelve or fifteen Times longer than broad. This Spectrum
-I cast on a printed Book, and placing the above-mentioned Lens at the
-distance of six Feet and an Inch from this Spectrum to collect the
-Species of the illuminated Letters at the same distance on the other
-side, I found that the Species of the Letters illuminated with blue were
-nearer to the Lens than those illuminated with deep red by about three
-Inches, or three and a quarter; but the Species of the Letters
-illuminated with indigo and violet appeared so confused and indistinct,
-that I could not read them: Whereupon viewing the Prism, I found it was
-full of Veins running from one end of the Glass to the other; so that
-the Refraction could not be regular. I took another Prism therefore
-which was free from Veins, and instead of the Letters I used two or
-three Parallel black Lines a little broader than the Strokes of the
-Letters, and casting the Colours upon these Lines in such manner, that
-the Lines ran along the Colours from one end of the Spectrum to the
-other, I found that the Focus where the indigo, or confine of this
-Colour and violet cast the Species of the black Lines most distinctly,
-to be about four Inches, or 4-1/4 nearer to the Lens than the Focus,
-where the deepest red cast the Species of the same black Lines most
-distinctly. The violet was so faint and dark, that I could not discern
-the Species of the Lines distinctly by that Colour; and therefore
-considering that the Prism was made of a dark coloured Glass inclining
-to green, I took another Prism of clear white Glass; but the Spectrum of
-Colours which this Prism made had long white Streams of faint Light
-shooting out from both ends of the Colours, which made me conclude that
-something was amiss; and viewing the Prism, I found two or three little
-Bubbles in the Glass, which refracted the Light irregularly. Wherefore I
-covered that Part of the Glass with black Paper, and letting the Light
-pass through another Part of it which was free from such Bubbles, the
-Spectrum of Colours became free from those irregular Streams of Light,
-and was now such as I desired. But still I found the violet so dark and
-faint, that I could scarce see the Species of the Lines by the violet,
-and not at all by the deepest Part of it, which was next the end of the
-Spectrum. I suspected therefore, that this faint and dark Colour might
-be allayed by that scattering Light which was refracted, and reflected
-irregularly, partly by some very small Bubbles in the Glasses, and
-partly by the Inequalities of their Polish; which Light, tho' it was but
-little, yet it being of a white Colour, might suffice to affect the
-Sense so strongly as to disturb the Phænomena of that weak and dark
-Colour the violet, and therefore I tried, as in the 12th, 13th, and 14th
-Experiments, whether the Light of this Colour did not consist of a
-sensible Mixture of heterogeneous Rays, but found it did not. Nor did
-the Refractions cause any other sensible Colour than violet to emerge
-out of this Light, as they would have done out of white Light, and by
-consequence out of this violet Light had it been sensibly compounded
-with white Light. And therefore I concluded, that the reason why I could
-not see the Species of the Lines distinctly by this Colour, was only
-the Darkness of this Colour, and Thinness of its Light, and its distance
-from the Axis of the Lens; I divided therefore those Parallel black
-Lines into equal Parts, by which I might readily know the distances of
-the Colours in the Spectrum from one another, and noted the distances of
-the Lens from the Foci of such Colours, as cast the Species of the Lines
-distinctly, and then considered whether the difference of those
-distances bear such proportion to 5-1/3 Inches, the greatest Difference
-of the distances, which the Foci of the deepest red and violet ought to
-have from the Lens, as the distance of the observed Colours from one
-another in the Spectrum bear to the greatest distance of the deepest red
-and violet measured in the Rectilinear Sides of the Spectrum, that is,
-to the Length of those Sides, or Excess of the Length of the Spectrum
-above its Breadth. And my Observations were as follows.
-
-When I observed and compared the deepest sensible red, and the Colour in
-the Confine of green and blue, which at the Rectilinear Sides of the
-Spectrum was distant from it half the Length of those Sides, the Focus
-where the Confine of green and blue cast the Species of the Lines
-distinctly on the Paper, was nearer to the Lens than the Focus, where
-the red cast those Lines distinctly on it by about 2-1/2 or 2-3/4
-Inches. For sometimes the Measures were a little greater, sometimes a
-little less, but seldom varied from one another above 1/3 of an Inch.
-For it was very difficult to define the Places of the Foci, without some
-little Errors. Now, if the Colours distant half the Length of the
-Image, (measured at its Rectilinear Sides) give 2-1/2 or 2-3/4
-Difference of the distances of their Foci from the Lens, then the
-Colours distant the whole Length ought to give 5 or 5-1/2 Inches
-difference of those distances.
-
-But here it's to be noted, that I could not see the red to the full end
-of the Spectrum, but only to the Center of the Semicircle which bounded
-that end, or a little farther; and therefore I compared this red not
-with that Colour which was exactly in the middle of the Spectrum, or
-Confine of green and blue, but with that which verged a little more to
-the blue than to the green: And as I reckoned the whole Length of the
-Colours not to be the whole Length of the Spectrum, but the Length of
-its Rectilinear Sides, so compleating the semicircular Ends into
-Circles, when either of the observed Colours fell within those Circles,
-I measured the distance of that Colour from the semicircular End of the
-Spectrum, and subducting half this distance from the measured distance
-of the two Colours, I took the Remainder for their corrected distance;
-and in these Observations set down this corrected distance for the
-difference of the distances of their Foci from the Lens. For, as the
-Length of the Rectilinear Sides of the Spectrum would be the whole
-Length of all the Colours, were the Circles of which (as we shewed) that
-Spectrum consists contracted and reduced to Physical Points, so in that
-Case this corrected distance would be the real distance of the two
-observed Colours.
-
-When therefore I farther observed the deepest sensible red, and that
-blue whose corrected distance from it was 7/12 Parts of the Length of
-the Rectilinear Sides of the Spectrum, the difference of the distances
-of their Foci from the Lens was about 3-1/4 Inches, and as 7 to 12, so
-is 3-1/4 to 5-4/7.
-
-When I observed the deepest sensible red, and that indigo whose
-corrected distance was 8/12 or 2/3 of the Length of the Rectilinear
-Sides of the Spectrum, the difference of the distances of their Foci
-from the Lens, was about 3-2/3 Inches, and as 2 to 3, so is 3-2/3 to
-5-1/2.
-
-When I observed the deepest sensible red, and that deep indigo whose
-corrected distance from one another was 9/12 or 3/4 of the Length of the
-Rectilinear Sides of the Spectrum, the difference of the distances of
-their Foci from the Lens was about 4 Inches; and as 3 to 4, so is 4 to
-5-1/3.
-
-When I observed the deepest sensible red, and that Part of the violet
-next the indigo, whose corrected distance from the red was 10/12 or 5/6
-of the Length of the Rectilinear Sides of the Spectrum, the difference
-of the distances of their Foci from the Lens was about 4-1/2 Inches, and
-as 5 to 6, so is 4-1/2 to 5-2/5. For sometimes, when the Lens was
-advantageously placed, so that its Axis respected the blue, and all
-Things else were well ordered, and the Sun shone clear, and I held my
-Eye very near to the Paper on which the Lens cast the Species of the
-Lines, I could see pretty distinctly the Species of those Lines by that
-Part of the violet which was next the indigo; and sometimes I could see
-them by above half the violet, For in making these Experiments I had
-observed, that the Species of those Colours only appear distinct, which
-were in or near the Axis of the Lens: So that if the blue or indigo were
-in the Axis, I could see their Species distinctly; and then the red
-appeared much less distinct than before. Wherefore I contrived to make
-the Spectrum of Colours shorter than before, so that both its Ends might
-be nearer to the Axis of the Lens. And now its Length was about 2-1/2
-Inches, and Breadth about 1/5 or 1/6 of an Inch. Also instead of the
-black Lines on which the Spectrum was cast, I made one black Line
-broader than those, that I might see its Species more easily; and this
-Line I divided by short cross Lines into equal Parts, for measuring the
-distances of the observed Colours. And now I could sometimes see the
-Species of this Line with its Divisions almost as far as the Center of
-the semicircular violet End of the Spectrum, and made these farther
-Observations.
-
-When I observed the deepest sensible red, and that Part of the violet,
-whose corrected distance from it was about 8/9 Parts of the Rectilinear
-Sides of the Spectrum, the Difference of the distances of the Foci of
-those Colours from the Lens, was one time 4-2/3, another time 4-3/4,
-another time 4-7/8 Inches; and as 8 to 9, so are 4-2/3, 4-3/4, 4-7/8, to
-5-1/4, 5-11/32, 5-31/64 respectively.
-
-When I observed the deepest sensible red, and deepest sensible violet,
-(the corrected distance of which Colours, when all Things were ordered
-to the best Advantage, and the Sun shone very clear, was about 11/12 or
-15/16 Parts of the Length of the Rectilinear Sides of the coloured
-Spectrum) I found the Difference of the distances of their Foci from the
-Lens sometimes 4-3/4 sometimes 5-1/4, and for the most part 5 Inches or
-thereabouts; and as 11 to 12, or 15 to 16, so is five Inches to 5-2/2 or
-5-1/3 Inches.
-
-And by this Progression of Experiments I satisfied my self, that had the
-Light at the very Ends of the Spectrum been strong enough to make the
-Species of the black Lines appear plainly on the Paper, the Focus of the
-deepest violet would have been found nearer to the Lens, than the Focus
-of the deepest red, by about 5-1/3 Inches at least. And this is a
-farther Evidence, that the Sines of Incidence and Refraction of the
-several sorts of Rays, hold the same Proportion to one another in the
-smallest Refractions which they do in the greatest.
-
-My Progress in making this nice and troublesome Experiment I have set
-down more at large, that they that shall try it after me may be aware of
-the Circumspection requisite to make it succeed well. And if they cannot
-make it succeed so well as I did, they may notwithstanding collect by
-the Proportion of the distance of the Colours of the Spectrum, to the
-Difference of the distances of their Foci from the Lens, what would be
-the Success in the more distant Colours by a better trial. And yet, if
-they use a broader Lens than I did, and fix it to a long strait Staff,
-by means of which it may be readily and truly directed to the Colour
-whose Focus is desired, I question not but the Experiment will succeed
-better with them than it did with me. For I directed the Axis as nearly
-as I could to the middle of the Colours, and then the faint Ends of the
-Spectrum being remote from the Axis, cast their Species less distinctly
-on the Paper than they would have done, had the Axis been successively
-directed to them.
-
-Now by what has been said, it's certain that the Rays which differ in
-Refrangibility do not converge to the same Focus; but if they flow from
-a lucid Point, as far from the Lens on one side as their Foci are on the
-other, the Focus of the most refrangible Rays shall be nearer to the
-Lens than that of the least refrangible, by above the fourteenth Part of
-the whole distance; and if they flow from a lucid Point, so very remote
-from the Lens, that before their Incidence they may be accounted
-parallel, the Focus of the most refrangible Rays shall be nearer to the
-Lens than the Focus of the least refrangible, by about the 27th or 28th
-Part of their whole distance from it. And the Diameter of the Circle in
-the middle Space between those two Foci which they illuminate, when they
-fall there on any Plane, perpendicular to the Axis (which Circle is the
-least into which they can all be gathered) is about the 55th Part of the
-Diameter of the Aperture of the Glass. So that 'tis a wonder, that
-Telescopes represent Objects so distinct as they do. But were all the
-Rays of Light equally refrangible, the Error arising only from the
-Sphericalness of the Figures of Glasses would be many hundred times
-less. For, if the Object-glass of a Telescope be Plano-convex, and the
-Plane side be turned towards the Object, and the Diameter of the
-Sphere, whereof this Glass is a Segment, be called D, and the
-Semi-diameter of the Aperture of the Glass be called S, and the Sine of
-Incidence out of Glass into Air, be to the Sine of Refraction as I to R;
-the Rays which come parallel to the Axis of the Glass, shall in the
-Place where the Image of the Object is most distinctly made, be
-scattered all over a little Circle, whose Diameter is _(Rq/Iq) Ă— (S
-cub./D quad.)_ very nearly,[H] as I gather by computing the Errors of
-the Rays by the Method of infinite Series, and rejecting the Terms,
-whose Quantities are inconsiderable. As for instance, if the Sine of
-Incidence I, be to the Sine of Refraction R, as 20 to 31, and if D the
-Diameter of the Sphere, to which the Convex-side of the Glass is ground,
-be 100 Feet or 1200 Inches, and S the Semi-diameter of the Aperture be
-two Inches, the Diameter of the little Circle, (that is (_Rq Ă— S
-cub.)/(Iq Ă— D quad._)) will be (31 Ă— 31 Ă— 8)/(20 Ă— 20 Ă— 1200 Ă— 1200) (or
-961/72000000) Parts of an Inch. But the Diameter of the little Circle,
-through which these Rays are scattered by unequal Refrangibility, will
-be about the 55th Part of the Aperture of the Object-glass, which here
-is four Inches. And therefore, the Error arising from the Spherical
-Figure of the Glass, is to the Error arising from the different
-Refrangibility of the Rays, as 961/72000000 to 4/55, that is as 1 to
-5449; and therefore being in comparison so very little, deserves not to
-be considered.
-
-[Illustration: FIG. 27.]
-
-But you will say, if the Errors caused by the different Refrangibility
-be so very great, how comes it to pass, that Objects appear through
-Telescopes so distinct as they do? I answer, 'tis because the erring
-Rays are not scattered uniformly over all that Circular Space, but
-collected infinitely more densely in the Center than in any other Part
-of the Circle, and in the Way from the Center to the Circumference, grow
-continually rarer and rarer, so as at the Circumference to become
-infinitely rare; and by reason of their Rarity are not strong enough to
-be visible, unless in the Center and very near it. Let ADE [in _Fig._
-27.] represent one of those Circles described with the Center C, and
-Semi-diameter AC, and let BFG be a smaller Circle concentrick to the
-former, cutting with its Circumference the Diameter AC in B, and bisect
-AC in N; and by my reckoning, the Density of the Light in any Place B,
-will be to its Density in N, as AB to BC; and the whole Light within the
-lesser Circle BFG, will be to the whole Light within the greater AED, as
-the Excess of the Square of AC above the Square of AB, is to the Square
-of AC. As if BC be the fifth Part of AC, the Light will be four times
-denser in B than in N, and the whole Light within the less Circle, will
-be to the whole Light within the greater, as nine to twenty-five. Whence
-it's evident, that the Light within the less Circle, must strike the
-Sense much more strongly, than that faint and dilated Light round about
-between it and the Circumference of the greater.
-
-But it's farther to be noted, that the most luminous of the Prismatick
-Colours are the yellow and orange. These affect the Senses more strongly
-than all the rest together, and next to these in strength are the red
-and green. The blue compared with these is a faint and dark Colour, and
-the indigo and violet are much darker and fainter, so that these
-compared with the stronger Colours are little to be regarded. The Images
-of Objects are therefore to be placed, not in the Focus of the mean
-refrangible Rays, which are in the Confine of green and blue, but in the
-Focus of those Rays which are in the middle of the orange and yellow;
-there where the Colour is most luminous and fulgent, that is in the
-brightest yellow, that yellow which inclines more to orange than to
-green. And by the Refraction of these Rays (whose Sines of Incidence and
-Refraction in Glass are as 17 and 11) the Refraction of Glass and
-Crystal for Optical Uses is to be measured. Let us therefore place the
-Image of the Object in the Focus of these Rays, and all the yellow and
-orange will fall within a Circle, whose Diameter is about the 250th
-Part of the Diameter of the Aperture of the Glass. And if you add the
-brighter half of the red, (that half which is next the orange) and the
-brighter half of the green, (that half which is next the yellow) about
-three fifth Parts of the Light of these two Colours will fall within the
-same Circle, and two fifth Parts will fall without it round about; and
-that which falls without will be spread through almost as much more
-space as that which falls within, and so in the gross be almost three
-times rarer. Of the other half of the red and green, (that is of the
-deep dark red and willow green) about one quarter will fall within this
-Circle, and three quarters without, and that which falls without will be
-spread through about four or five times more space than that which falls
-within; and so in the gross be rarer, and if compared with the whole
-Light within it, will be about 25 times rarer than all that taken in the
-gross; or rather more than 30 or 40 times rarer, because the deep red in
-the end of the Spectrum of Colours made by a Prism is very thin and
-rare, and the willow green is something rarer than the orange and
-yellow. The Light of these Colours therefore being so very much rarer
-than that within the Circle, will scarce affect the Sense, especially
-since the deep red and willow green of this Light, are much darker
-Colours than the rest. And for the same reason the blue and violet being
-much darker Colours than these, and much more rarified, may be
-neglected. For the dense and bright Light of the Circle, will obscure
-the rare and weak Light of these dark Colours round about it, and
-render them almost insensible. The sensible Image of a lucid Point is
-therefore scarce broader than a Circle, whose Diameter is the 250th Part
-of the Diameter of the Aperture of the Object-glass of a good Telescope,
-or not much broader, if you except a faint and dark misty Light round
-about it, which a Spectator will scarce regard. And therefore in a
-Telescope, whose Aperture is four Inches, and Length an hundred Feet, it
-exceeds not 2´´ 45´´´, or 3´´. And in a Telescope whose Aperture is two
-Inches, and Length 20 or 30 Feet, it may be 5´´ or 6´´, and scarce
-above. And this answers well to Experience: For some Astronomers have
-found the Diameters of the fix'd Stars, in Telescopes of between 20 and
-60 Feet in length, to be about 5´´ or 6´´, or at most 8´´ or 10´´ in
-diameter. But if the Eye-Glass be tincted faintly with the Smoak of a
-Lamp or Torch, to obscure the Light of the Star, the fainter Light in
-the Circumference of the Star ceases to be visible, and the Star (if the
-Glass be sufficiently soiled with Smoak) appears something more like a
-mathematical Point. And for the same Reason, the enormous Part of the
-Light in the Circumference of every lucid Point ought to be less
-discernible in shorter Telescopes than in longer, because the shorter
-transmit less Light to the Eye.
-
-Now, that the fix'd Stars, by reason of their immense Distance, appear
-like Points, unless so far as their Light is dilated by Refraction, may
-appear from hence; that when the Moon passes over them and eclipses
-them, their Light vanishes, not gradually like that of the Planets, but
-all at once; and in the end of the Eclipse it returns into Sight all at
-once, or certainly in less time than the second of a Minute; the
-Refraction of the Moon's Atmosphere a little protracting the time in
-which the Light of the Star first vanishes, and afterwards returns into
-Sight.
-
-Now, if we suppose the sensible Image of a lucid Point, to be even 250
-times narrower than the Aperture of the Glass; yet this Image would be
-still much greater than if it were only from the spherical Figure of the
-Glass. For were it not for the different Refrangibility of the Rays, its
-breadth in an 100 Foot Telescope whose aperture is 4 Inches, would be
-but 961/72000000 parts of an Inch, as is manifest by the foregoing
-Computation. And therefore in this case the greatest Errors arising from
-the spherical Figure of the Glass, would be to the greatest sensible
-Errors arising from the different Refrangibility of the Rays as
-961/72000000 to 4/250 at most, that is only as 1 to 1200. And this
-sufficiently shews that it is not the spherical Figures of Glasses, but
-the different Refrangibility of the Rays which hinders the perfection of
-Telescopes.
-
-There is another Argument by which it may appear that the different
-Refrangibility of Rays, is the true cause of the imperfection of
-Telescopes. For the Errors of the Rays arising from the spherical
-Figures of Object-glasses, are as the Cubes of the Apertures of the
-Object Glasses; and thence to make Telescopes of various Lengths magnify
-with equal distinctness, the Apertures of the Object-glasses, and the
-Charges or magnifying Powers ought to be as the Cubes of the square
-Roots of their lengths; which doth not answer to Experience. But the
-Errors of the Rays arising from the different Refrangibility, are as the
-Apertures of the Object-glasses; and thence to make Telescopes of
-various lengths, magnify with equal distinctness, their Apertures and
-Charges ought to be as the square Roots of their lengths; and this
-answers to Experience, as is well known. For Instance, a Telescope of 64
-Feet in length, with an Aperture of 2-2/3 Inches, magnifies about 120
-times, with as much distinctness as one of a Foot in length, with 1/3 of
-an Inch aperture, magnifies 15 times.
-
-[Illustration: FIG. 28.]
-
-Now were it not for this different Refrangibility of Rays, Telescopes
-might be brought to a greater perfection than we have yet describ'd, by
-composing the Object-glass of two Glasses with Water between them. Let
-ADFC [in _Fig._ 28.] represent the Object-glass composed of two Glasses
-ABED and BEFC, alike convex on the outsides AGD and CHF, and alike
-concave on the insides BME, BNE, with Water in the concavity BMEN. Let
-the Sine of Incidence out of Glass into Air be as I to R, and out of
-Water into Air, as K to R, and by consequence out of Glass into Water,
-as I to K: and let the Diameter of the Sphere to which the convex sides
-AGD and CHF are ground be D, and the Diameter of the Sphere to which the
-concave sides BME and BNE, are ground be to D, as the Cube Root of
-KK--KI to the Cube Root of RK--RI: and the Refractions on the concave
-sides of the Glasses, will very much correct the Errors of the
-Refractions on the convex sides, so far as they arise from the
-sphericalness of the Figure. And by this means might Telescopes be
-brought to sufficient perfection, were it not for the different
-Refrangibility of several sorts of Rays. But by reason of this different
-Refrangibility, I do not yet see any other means of improving Telescopes
-by Refractions alone, than that of increasing their lengths, for which
-end the late Contrivance of _Hugenius_ seems well accommodated. For very
-long Tubes are cumbersome, and scarce to be readily managed, and by
-reason of their length are very apt to bend, and shake by bending, so as
-to cause a continual trembling in the Objects, whereby it becomes
-difficult to see them distinctly: whereas by his Contrivance the Glasses
-are readily manageable, and the Object-glass being fix'd upon a strong
-upright Pole becomes more steady.
-
-Seeing therefore the Improvement of Telescopes of given lengths by
-Refractions is desperate; I contrived heretofore a Perspective by
-Reflexion, using instead of an Object-glass a concave Metal. The
-diameter of the Sphere to which the Metal was ground concave was about
-25 _English_ Inches, and by consequence the length of the Instrument
-about six Inches and a quarter. The Eye-glass was Plano-convex, and the
-diameter of the Sphere to which the convex side was ground was about 1/5
-of an Inch, or a little less, and by consequence it magnified between 30
-and 40 times. By another way of measuring I found that it magnified
-about 35 times. The concave Metal bore an Aperture of an Inch and a
-third part; but the Aperture was limited not by an opake Circle,
-covering the Limb of the Metal round about, but by an opake Circle
-placed between the Eyeglass and the Eye, and perforated in the middle
-with a little round hole for the Rays to pass through to the Eye. For
-this Circle by being placed here, stopp'd much of the erroneous Light,
-which otherwise would have disturbed the Vision. By comparing it with a
-pretty good Perspective of four Feet in length, made with a concave
-Eye-glass, I could read at a greater distance with my own Instrument
-than with the Glass. Yet Objects appeared much darker in it than in the
-Glass, and that partly because more Light was lost by Reflexion in the
-Metal, than by Refraction in the Glass, and partly because my Instrument
-was overcharged. Had it magnified but 30 or 25 times, it would have made
-the Object appear more brisk and pleasant. Two of these I made about 16
-Years ago, and have one of them still by me, by which I can prove the
-truth of what I write. Yet it is not so good as at the first. For the
-concave has been divers times tarnished and cleared again, by rubbing
-it with very soft Leather. When I made these an Artist in _London_
-undertook to imitate it; but using another way of polishing them than I
-did, he fell much short of what I had attained to, as I afterwards
-understood by discoursing the Under-workman he had employed. The Polish
-I used was in this manner. I had two round Copper Plates, each six
-Inches in Diameter, the one convex, the other concave, ground very true
-to one another. On the convex I ground the Object-Metal or Concave which
-was to be polish'd, 'till it had taken the Figure of the Convex and was
-ready for a Polish. Then I pitched over the convex very thinly, by
-dropping melted Pitch upon it, and warming it to keep the Pitch soft,
-whilst I ground it with the concave Copper wetted to make it spread
-eavenly all over the convex. Thus by working it well I made it as thin
-as a Groat, and after the convex was cold I ground it again to give it
-as true a Figure as I could. Then I took Putty which I had made very
-fine by washing it from all its grosser Particles, and laying a little
-of this upon the Pitch, I ground it upon the Pitch with the concave
-Copper, till it had done making a Noise; and then upon the Pitch I
-ground the Object-Metal with a brisk motion, for about two or three
-Minutes of time, leaning hard upon it. Then I put fresh Putty upon the
-Pitch, and ground it again till it had done making a noise, and
-afterwards ground the Object-Metal upon it as before. And this Work I
-repeated till the Metal was polished, grinding it the last time with all
-my strength for a good while together, and frequently breathing upon
-the Pitch, to keep it moist without laying on any more fresh Putty. The
-Object-Metal was two Inches broad, and about one third part of an Inch
-thick, to keep it from bending. I had two of these Metals, and when I
-had polished them both, I tried which was best, and ground the other
-again, to see if I could make it better than that which I kept. And thus
-by many Trials I learn'd the way of polishing, till I made those two
-reflecting Perspectives I spake of above. For this Art of polishing will
-be better learn'd by repeated Practice than by my Description. Before I
-ground the Object-Metal on the Pitch, I always ground the Putty on it
-with the concave Copper, till it had done making a noise, because if the
-Particles of the Putty were not by this means made to stick fast in the
-Pitch, they would by rolling up and down grate and fret the Object-Metal
-and fill it full of little holes.
-
-But because Metal is more difficult to polish than Glass, and is
-afterwards very apt to be spoiled by tarnishing, and reflects not so
-much Light as Glass quick-silver'd over does: I would propound to use
-instead of the Metal, a Glass ground concave on the foreside, and as
-much convex on the backside, and quick-silver'd over on the convex side.
-The Glass must be every where of the same thickness exactly. Otherwise
-it will make Objects look colour'd and indistinct. By such a Glass I
-tried about five or six Years ago to make a reflecting Telescope of four
-Feet in length to magnify about 150 times, and I satisfied my self that
-there wants nothing but a good Artist to bring the Design to
-perfection. For the Glass being wrought by one of our _London_ Artists
-after such a manner as they grind Glasses for Telescopes, though it
-seemed as well wrought as the Object-glasses use to be, yet when it was
-quick-silver'd, the Reflexion discovered innumerable Inequalities all
-over the Glass. And by reason of these Inequalities, Objects appeared
-indistinct in this Instrument. For the Errors of reflected Rays caused
-by any Inequality of the Glass, are about six times greater than the
-Errors of refracted Rays caused by the like Inequalities. Yet by this
-Experiment I satisfied my self that the Reflexion on the concave side of
-the Glass, which I feared would disturb the Vision, did no sensible
-prejudice to it, and by consequence that nothing is wanting to perfect
-these Telescopes, but good Workmen who can grind and polish Glasses
-truly spherical. An Object-glass of a fourteen Foot Telescope, made by
-an Artificer at _London_, I once mended considerably, by grinding it on
-Pitch with Putty, and leaning very easily on it in the grinding, lest
-the Putty should scratch it. Whether this way may not do well enough for
-polishing these reflecting Glasses, I have not yet tried. But he that
-shall try either this or any other way of polishing which he may think
-better, may do well to make his Glasses ready for polishing, by grinding
-them without that Violence, wherewith our _London_ Workmen press their
-Glasses in grinding. For by such violent pressure, Glasses are apt to
-bend a little in the grinding, and such bending will certainly spoil
-their Figure. To recommend therefore the consideration of these
-reflecting Glasses to such Artists as are curious in figuring Glasses, I
-shall describe this optical Instrument in the following Proposition.
-
-
-_PROP._ VIII. PROB. II.
-
-_To shorten Telescopes._
-
-Let ABCD [in _Fig._ 29.] represent a Glass spherically concave on the
-foreside AB, and as much convex on the backside CD, so that it be every
-where of an equal thickness. Let it not be thicker on one side than on
-the other, lest it make Objects appear colour'd and indistinct, and let
-it be very truly wrought and quick-silver'd over on the backside; and
-set in the Tube VXYZ which must be very black within. Let EFG represent
-a Prism of Glass or Crystal placed near the other end of the Tube, in
-the middle of it, by means of a handle of Brass or Iron FGK, to the end
-of which made flat it is cemented. Let this Prism be rectangular at E,
-and let the other two Angles at F and G be accurately equal to each
-other, and by consequence equal to half right ones, and let the plane
-sides FE and GE be square, and by consequence the third side FG a
-rectangular Parallelogram, whose length is to its breadth in a
-subduplicate proportion of two to one. Let it be so placed in the Tube,
-that the Axis of the Speculum may pass through the middle of the square
-side EF perpendicularly and by consequence through the middle of the
-side FG at an Angle of 45 Degrees, and let the side EF be turned towards
-the Speculum, and the distance of this Prism from the Speculum be such
-that the Rays of the Light PQ, RS, &c. which are incident upon the
-Speculum in Lines parallel to the Axis thereof, may enter the Prism at
-the side EF, and be reflected by the side FG, and thence go out of it
-through the side GE, to the Point T, which must be the common Focus of
-the Speculum ABDC, and of a Plano-convex Eye-glass H, through which
-those Rays must pass to the Eye. And let the Rays at their coming out of
-the Glass pass through a small round hole, or aperture made in a little
-plate of Lead, Brass, or Silver, wherewith the Glass is to be covered,
-which hole must be no bigger than is necessary for Light enough to pass
-through. For so it will render the Object distinct, the Plate in which
-'tis made intercepting all the erroneous part of the Light which comes
-from the verges of the Speculum AB. Such an Instrument well made, if it
-be six Foot long, (reckoning the length from the Speculum to the Prism,
-and thence to the Focus T) will bear an aperture of six Inches at the
-Speculum, and magnify between two and three hundred times. But the hole
-H here limits the aperture with more advantage, than if the aperture was
-placed at the Speculum. If the Instrument be made longer or shorter, the
-aperture must be in proportion as the Cube of the square-square Root of
-the length, and the magnifying as the aperture. But it's convenient that
-the Speculum be an Inch or two broader than the aperture at the least,
-and that the Glass of the Speculum be thick, that it bend not in the
-working. The Prism EFG must be no bigger than is necessary, and its back
-side FG must not be quick-silver'd over. For without quicksilver it will
-reflect all the Light incident on it from the Speculum.
-
-[Illustration: FIG. 29.]
-
-In this Instrument the Object will be inverted, but may be erected by
-making the square sides FF and EG of the Prism EFG not plane but
-spherically convex, that the Rays may cross as well before they come at
-it as afterwards between it and the Eye-glass. If it be desired that the
-Instrument bear a larger aperture, that may be also done by composing
-the Speculum of two Glasses with Water between them.
-
-If the Theory of making Telescopes could at length be fully brought into
-Practice, yet there would be certain Bounds beyond which Telescopes
-could not perform. For the Air through which we look upon the Stars, is
-in a perpetual Tremor; as may be seen by the tremulous Motion of Shadows
-cast from high Towers, and by the twinkling of the fix'd Stars. But
-these Stars do not twinkle when viewed through Telescopes which have
-large apertures. For the Rays of Light which pass through divers parts
-of the aperture, tremble each of them apart, and by means of their
-various and sometimes contrary Tremors, fall at one and the same time
-upon different points in the bottom of the Eye, and their trembling
-Motions are too quick and confused to be perceived severally. And all
-these illuminated Points constitute one broad lucid Point, composed of
-those many trembling Points confusedly and insensibly mixed with one
-another by very short and swift Tremors, and thereby cause the Star to
-appear broader than it is, and without any trembling of the whole. Long
-Telescopes may cause Objects to appear brighter and larger than short
-ones can do, but they cannot be so formed as to take away that confusion
-of the Rays which arises from the Tremors of the Atmosphere. The only
-Remedy is a most serene and quiet Air, such as may perhaps be found on
-the tops of the highest Mountains above the grosser Clouds.
-
-FOOTNOTES:
-
-[C] _See our_ Author's Lectiones Opticæ § 10. _Sect. II. § 29. and Sect.
-III. Prop. 25._
-
-[D] See our Author's _Lectiones Opticæ_, Part. I. Sect. 1. §5.
-
-[E] _This is very fully treated of in our_ Author's Lect. Optic. _Part_
-I. _Sect._ II.
-
-[F] _See our_ Author's Lect. Optic. Part I. Sect. II. § 29.
-
-[G] _This is demonstrated in our_ Author's Lect. Optic. _Part_ I.
-_Sect._ IV. _Prop._ 37.
-
-[H] _How to do this, is shewn in our_ Author's Lect. Optic. _Part_ I.
-_Sect._ IV. _Prop._ 31.
-
-
-
-
-THE FIRST BOOK OF OPTICKS
-
-
-
-
-_PART II._
-
-
-_PROP._ I. THEOR. I.
-
-_The Phænomena of Colours in refracted or reflected Light are not caused
-by new Modifications of the Light variously impress'd, according to the
-various Terminations of the Light and Shadow_.
-
-The PROOF by Experiments.
-
-_Exper._ 1. For if the Sun shine into a very dark Chamber through an
-oblong hole F, [in _Fig._ 1.] whose breadth is the sixth or eighth part
-of an Inch, or something less; and his beam FH do afterwards pass first
-through a very large Prism ABC, distant about 20 Feet from the hole, and
-parallel to it, and then (with its white part) through an oblong hole H,
-whose breadth is about the fortieth or sixtieth part of an Inch, and
-which is made in a black opake Body GI, and placed at the distance of
-two or three Feet from the Prism, in a parallel Situation both to the
-Prism and to the former hole, and if this white Light thus transmitted
-through the hole H, fall afterwards upon a white Paper _pt_, placed
-after that hole H, at the distance of three or four Feet from it, and
-there paint the usual Colours of the Prism, suppose red at _t_, yellow
-at _s_, green at _r_, blue at _q_, and violet at _p_; you may with an
-Iron Wire, or any such like slender opake Body, whose breadth is about
-the tenth part of an Inch, by intercepting the Rays at _k_, _l_, _m_,
-_n_ or _o_, take away any one of the Colours at _t_, _s_, _r_, _q_ or
-_p_, whilst the other Colours remain upon the Paper as before; or with
-an Obstacle something bigger you may take away any two, or three, or
-four Colours together, the rest remaining: So that any one of the
-Colours as well as violet may become outmost in the Confine of the
-Shadow towards _p_, and any one of them as well as red may become
-outmost in the Confine of the Shadow towards _t_, and any one of them
-may also border upon the Shadow made within the Colours by the Obstacle
-R intercepting some intermediate part of the Light; and, lastly, any one
-of them by being left alone, may border upon the Shadow on either hand.
-All the Colours have themselves indifferently to any Confines of Shadow,
-and therefore the differences of these Colours from one another, do not
-arise from the different Confines of Shadow, whereby Light is variously
-modified, as has hitherto been the Opinion of Philosophers. In trying
-these things 'tis to be observed, that by how much the holes F and H are
-narrower, and the Intervals between them and the Prism greater, and the
-Chamber darker, by so much the better doth the Experiment succeed;
-provided the Light be not so far diminished, but that the Colours at
-_pt_ be sufficiently visible. To procure a Prism of solid Glass large
-enough for this Experiment will be difficult, and therefore a prismatick
-Vessel must be made of polish'd Glass Plates cemented together, and
-filled with salt Water or clear Oil.
-
-[Illustration: FIG. 1.]
-
-_Exper._ 2. The Sun's Light let into a dark Chamber through the round
-hole F, [in _Fig._ 2.] half an Inch wide, passed first through the Prism
-ABC placed at the hole, and then through a Lens PT something more than
-four Inches broad, and about eight Feet distant from the Prism, and
-thence converged to O the Focus of the Lens distant from it about three
-Feet, and there fell upon a white Paper DE. If that Paper was
-perpendicular to that Light incident upon it, as 'tis represented in the
-posture DE, all the Colours upon it at O appeared white. But if the
-Paper being turned about an Axis parallel to the Prism, became very much
-inclined to the Light, as 'tis represented in the Positions _de_ and
-_[Greek: de]_; the same Light in the one case appeared yellow and red,
-in the other blue. Here one and the same part of the Light in one and
-the same place, according to the various Inclinations of the Paper,
-appeared in one case white, in another yellow or red, in a third blue,
-whilst the Confine of Light and shadow, and the Refractions of the Prism
-in all these cases remained the same.
-
-[Illustration: FIG. 2.]
-
-[Illustration: FIG. 3.]
-
-_Exper._ 3. Such another Experiment may be more easily tried as follows.
-Let a broad beam of the Sun's Light coming into a dark Chamber through a
-hole in the Window-shut be refracted by a large Prism ABC, [in _Fig._
-3.] whose refracting Angle C is more than 60 Degrees, and so soon as it
-comes out of the Prism, let it fall upon the white Paper DE glewed upon
-a stiff Plane; and this Light, when the Paper is perpendicular to it, as
-'tis represented in DE, will appear perfectly white upon the Paper; but
-when the Paper is very much inclin'd to it in such a manner as to keep
-always parallel to the Axis of the Prism, the whiteness of the whole
-Light upon the Paper will according to the inclination of the Paper this
-way or that way, change either into yellow and red, as in the posture
-_de_, or into blue and violet, as in the posture [Greek: de]. And if the
-Light before it fall upon the Paper be twice refracted the same way by
-two parallel Prisms, these Colours will become the more conspicuous.
-Here all the middle parts of the broad beam of white Light which fell
-upon the Paper, did without any Confine of Shadow to modify it, become
-colour'd all over with one uniform Colour, the Colour being always the
-same in the middle of the Paper as at the edges, and this Colour changed
-according to the various Obliquity of the reflecting Paper, without any
-change in the Refractions or Shadow, or in the Light which fell upon the
-Paper. And therefore these Colours are to be derived from some other
-Cause than the new Modifications of Light by Refractions and Shadows.
-
-If it be asked, what then is their Cause? I answer, That the Paper in
-the posture _de_, being more oblique to the more refrangible Rays than
-to the less refrangible ones, is more strongly illuminated by the latter
-than by the former, and therefore the less refrangible Rays are
-predominant in the reflected Light. And where-ever they are predominant
-in any Light, they tinge it with red or yellow, as may in some measure
-appear by the first Proposition of the first Part of this Book, and will
-more fully appear hereafter. And the contrary happens in the posture of
-the Paper [Greek: de], the more refrangible Rays being then predominant
-which always tinge Light with blues and violets.
-
-_Exper._ 4. The Colours of Bubbles with which Children play are various,
-and change their Situation variously, without any respect to any Confine
-or Shadow. If such a Bubble be cover'd with a concave Glass, to keep it
-from being agitated by any Wind or Motion of the Air, the Colours will
-slowly and regularly change their situation, even whilst the Eye and the
-Bubble, and all Bodies which emit any Light, or cast any Shadow, remain
-unmoved. And therefore their Colours arise from some regular Cause which
-depends not on any Confine of Shadow. What this Cause is will be shewed
-in the next Book.
-
-To these Experiments may be added the tenth Experiment of the first Part
-of this first Book, where the Sun's Light in a dark Room being
-trajected through the parallel Superficies of two Prisms tied together
-in the form of a Parallelopipede, became totally of one uniform yellow
-or red Colour, at its emerging out of the Prisms. Here, in the
-production of these Colours, the Confine of Shadow can have nothing to
-do. For the Light changes from white to yellow, orange and red
-successively, without any alteration of the Confine of Shadow: And at
-both edges of the emerging Light where the contrary Confines of Shadow
-ought to produce different Effects, the Colour is one and the same,
-whether it be white, yellow, orange or red: And in the middle of the
-emerging Light, where there is no Confine of Shadow at all, the Colour
-is the very same as at the edges, the whole Light at its very first
-Emergence being of one uniform Colour, whether white, yellow, orange or
-red, and going on thence perpetually without any change of Colour, such
-as the Confine of Shadow is vulgarly supposed to work in refracted Light
-after its Emergence. Neither can these Colours arise from any new
-Modifications of the Light by Refractions, because they change
-successively from white to yellow, orange and red, while the Refractions
-remain the same, and also because the Refractions are made contrary ways
-by parallel Superficies which destroy one another's Effects. They arise
-not therefore from any Modifications of Light made by Refractions and
-Shadows, but have some other Cause. What that Cause is we shewed above
-in this tenth Experiment, and need not here repeat it.
-
-There is yet another material Circumstance of this Experiment. For this
-emerging Light being by a third Prism HIK [in _Fig._ 22. _Part_ I.][I]
-refracted towards the Paper PT, and there painting the usual Colours of
-the Prism, red, yellow, green, blue, violet: If these Colours arose from
-the Refractions of that Prism modifying the Light, they would not be in
-the Light before its Incidence on that Prism. And yet in that Experiment
-we found, that when by turning the two first Prisms about their common
-Axis all the Colours were made to vanish but the red; the Light which
-makes that red being left alone, appeared of the very same red Colour
-before its Incidence on the third Prism. And in general we find by other
-Experiments, that when the Rays which differ in Refrangibility are
-separated from one another, and any one Sort of them is considered
-apart, the Colour of the Light which they compose cannot be changed by
-any Refraction or Reflexion whatever, as it ought to be were Colours
-nothing else than Modifications of Light caused by Refractions, and
-Reflexions, and Shadows. This Unchangeableness of Colour I am now to
-describe in the following Proposition.
-
-
-_PROP._ II. THEOR. II.
-
-_All homogeneal Light has its proper Colour answering to its Degree of
-Refrangibility, and that Colour cannot be changed by Reflexions and
-Refractions._
-
-In the Experiments of the fourth Proposition of the first Part of this
-first Book, when I had separated the heterogeneous Rays from one
-another, the Spectrum _pt_ formed by the separated Rays, did in the
-Progress from its End _p_, on which the most refrangible Rays fell, unto
-its other End _t_, on which the least refrangible Rays fell, appear
-tinged with this Series of Colours, violet, indigo, blue, green, yellow,
-orange, red, together with all their intermediate Degrees in a continual
-Succession perpetually varying. So that there appeared as many Degrees
-of Colours, as there were sorts of Rays differing in Refrangibility.
-
-_Exper._ 5. Now, that these Colours could not be changed by Refraction,
-I knew by refracting with a Prism sometimes one very little Part of this
-Light, sometimes another very little Part, as is described in the
-twelfth Experiment of the first Part of this Book. For by this
-Refraction the Colour of the Light was never changed in the least. If
-any Part of the red Light was refracted, it remained totally of the same
-red Colour as before. No orange, no yellow, no green or blue, no other
-new Colour was produced by that Refraction. Neither did the Colour any
-ways change by repeated Refractions, but continued always the same red
-entirely as at first. The like Constancy and Immutability I found also
-in the blue, green, and other Colours. So also, if I looked through a
-Prism upon any Body illuminated with any part of this homogeneal Light,
-as in the fourteenth Experiment of the first Part of this Book is
-described; I could not perceive any new Colour generated this way. All
-Bodies illuminated with compound Light appear through Prisms confused,
-(as was said above) and tinged with various new Colours, but those
-illuminated with homogeneal Light appeared through Prisms neither less
-distinct, nor otherwise colour'd, than when viewed with the naked Eyes.
-Their Colours were not in the least changed by the Refraction of the
-interposed Prism. I speak here of a sensible Change of Colour: For the
-Light which I here call homogeneal, being not absolutely homogeneal,
-there ought to arise some little Change of Colour from its
-Heterogeneity. But, if that Heterogeneity was so little as it might be
-made by the said Experiments of the fourth Proposition, that Change was
-not sensible, and therefore in Experiments, where Sense is Judge, ought
-to be accounted none at all.
-
-_Exper._ 6. And as these Colours were not changeable by Refractions, so
-neither were they by Reflexions. For all white, grey, red, yellow,
-green, blue, violet Bodies, as Paper, Ashes, red Lead, Orpiment, Indico
-Bise, Gold, Silver, Copper, Grass, blue Flowers, Violets, Bubbles of
-Water tinged with various Colours, Peacock's Feathers, the Tincture of
-_Lignum Nephriticum_, and such-like, in red homogeneal Light appeared
-totally red, in blue Light totally blue, in green Light totally green,
-and so of other Colours. In the homogeneal Light of any Colour they all
-appeared totally of that same Colour, with this only Difference, that
-some of them reflected that Light more strongly, others more faintly. I
-never yet found any Body, which by reflecting homogeneal Light could
-sensibly change its Colour.
-
-From all which it is manifest, that if the Sun's Light consisted of but
-one sort of Rays, there would be but one Colour in the whole World, nor
-would it be possible to produce any new Colour by Reflexions and
-Refractions, and by consequence that the variety of Colours depends upon
-the Composition of Light.
-
-
-_DEFINITION._
-
-The homogeneal Light and Rays which appear red, or rather make Objects
-appear so, I call Rubrifick or Red-making; those which make Objects
-appear yellow, green, blue, and violet, I call Yellow-making,
-Green-making, Blue-making, Violet-making, and so of the rest. And if at
-any time I speak of Light and Rays as coloured or endued with Colours, I
-would be understood to speak not philosophically and properly, but
-grossly, and accordingly to such Conceptions as vulgar People in seeing
-all these Experiments would be apt to frame. For the Rays to speak
-properly are not coloured. In them there is nothing else than a certain
-Power and Disposition to stir up a Sensation of this or that Colour.
-For as Sound in a Bell or musical String, or other sounding Body, is
-nothing but a trembling Motion, and in the Air nothing but that Motion
-propagated from the Object, and in the Sensorium 'tis a Sense of that
-Motion under the Form of Sound; so Colours in the Object are nothing but
-a Disposition to reflect this or that sort of Rays more copiously than
-the rest; in the Rays they are nothing but their Dispositions to
-propagate this or that Motion into the Sensorium, and in the Sensorium
-they are Sensations of those Motions under the Forms of Colours.
-
-
-_PROP._ III. PROB. I.
-
-_To define the Refrangibility of the several sorts of homogeneal Light
-answering to the several Colours._
-
-For determining this Problem I made the following Experiment.[J]
-
-_Exper._ 7. When I had caused the Rectilinear Sides AF, GM, [in _Fig._
-4.] of the Spectrum of Colours made by the Prism to be distinctly
-defined, as in the fifth Experiment of the first Part of this Book is
-described, there were found in it all the homogeneal Colours in the same
-Order and Situation one among another as in the Spectrum of simple
-Light, described in the fourth Proposition of that Part. For the Circles
-of which the Spectrum of compound Light PT is composed, and which in
-the middle Parts of the Spectrum interfere, and are intermix'd with one
-another, are not intermix'd in their outmost Parts where they touch
-those Rectilinear Sides AF and GM. And therefore, in those Rectilinear
-Sides when distinctly defined, there is no new Colour generated by
-Refraction. I observed also, that if any where between the two outmost
-Circles TMF and PGA a Right Line, as [Greek: gd], was cross to the
-Spectrum, so as both Ends to fall perpendicularly upon its Rectilinear
-Sides, there appeared one and the same Colour, and degree of Colour from
-one End of this Line to the other. I delineated therefore in a Paper the
-Perimeter of the Spectrum FAP GMT, and in trying the third Experiment of
-the first Part of this Book, I held the Paper so that the Spectrum might
-fall upon this delineated Figure, and agree with it exactly, whilst an
-Assistant, whose Eyes for distinguishing Colours were more critical than
-mine, did by Right Lines [Greek: ab, gd, ez,] &c. drawn cross the
-Spectrum, note the Confines of the Colours, that is of the red M[Greek:
-ab]F, of the orange [Greek: agdb], of the yellow [Greek: gezd], of the
-green [Greek: eĂŞthz], of the blue [Greek: ĂŞikth], of the indico [Greek:
-ilmk], and of the violet [Greek: l]GA[Greek: m]. And this Operation
-being divers times repeated both in the same, and in several Papers, I
-found that the Observations agreed well enough with one another, and
-that the Rectilinear Sides MG and FA were by the said cross Lines
-divided after the manner of a Musical Chord. Let GM be produced to X,
-that MX may be equal to GM, and conceive GX, [Greek: l]X, [Greek: i]X,
-[Greek: ĂŞ]X, [Greek: e]X, [Greek: g]X, [Greek: a]X, MX, to be in
-proportion to one another, as the Numbers, 1, 8/9, 5/6, 3/4, 2/3, 3/5,
-9/16, 1/2, and so to represent the Chords of the Key, and of a Tone, a
-third Minor, a fourth, a fifth, a sixth Major, a seventh and an eighth
-above that Key: And the Intervals M[Greek: a], [Greek: ag], [Greek: ge],
-[Greek: eĂŞ], [Greek: ĂŞi], [Greek: il], and [Greek: l]G, will be the
-Spaces which the several Colours (red, orange, yellow, green, blue,
-indigo, violet) take up.
-
-[Illustration: FIG. 4.]
-
-[Illustration: FIG. 5.]
-
-Now these Intervals or Spaces subtending the Differences of the
-Refractions of the Rays going to the Limits of those Colours, that is,
-to the Points M, [Greek: a], [Greek: g], [Greek: e], [Greek: ĂŞ], [Greek:
-i], [Greek: l], G, may without any sensible Error be accounted
-proportional to the Differences of the Sines of Refraction of those Rays
-having one common Sine of Incidence, and therefore since the common Sine
-of Incidence of the most and least refrangible Rays out of Glass into
-Air was (by a Method described above) found in proportion to their Sines
-of Refraction, as 50 to 77 and 78, divide the Difference between the
-Sines of Refraction 77 and 78, as the Line GM is divided by those
-Intervals, and you will have 77, 77-1/8, 77-1/5, 77-1/3, 77-1/2, 77-2/3,
-77-7/9, 78, the Sines of Refraction of those Rays out of Glass into Air,
-their common Sine of Incidence being 50. So then the Sines of the
-Incidences of all the red-making Rays out of Glass into Air, were to the
-Sines of their Refractions, not greater than 50 to 77, nor less than 50
-to 77-1/8, but they varied from one another according to all
-intermediate Proportions. And the Sines of the Incidences of the
-green-making Rays were to the Sines of their Refractions in all
-Proportions from that of 50 to 77-1/3, unto that of 50 to 77-1/2. And
-by the like Limits above-mentioned were the Refractions of the Rays
-belonging to the rest of the Colours defined, the Sines of the
-red-making Rays extending from 77 to 77-1/8, those of the orange-making
-from 77-1/8 to 77-1/5, those of the yellow-making from 77-1/5 to 77-1/3,
-those of the green-making from 77-1/3 to 77-1/2, those of the
-blue-making from 77-1/2 to 77-2/3, those of the indigo-making from
-77-2/3 to 77-7/9, and those of the violet from 77-7/9, to 78.
-
-These are the Laws of the Refractions made out of Glass into Air, and
-thence by the third Axiom of the first Part of this Book, the Laws of
-the Refractions made out of Air into Glass are easily derived.
-
-_Exper._ 8. I found moreover, that when Light goes out of Air through
-several contiguous refracting Mediums as through Water and Glass, and
-thence goes out again into Air, whether the refracting Superficies be
-parallel or inclin'd to one another, that Light as often as by contrary
-Refractions 'tis so corrected, that it emergeth in Lines parallel to
-those in which it was incident, continues ever after to be white. But if
-the emergent Rays be inclined to the incident, the Whiteness of the
-emerging Light will by degrees in passing on from the Place of
-Emergence, become tinged in its Edges with Colours. This I try'd by
-refracting Light with Prisms of Glass placed within a Prismatick Vessel
-of Water. Now those Colours argue a diverging and separation of the
-heterogeneous Rays from one another by means of their unequal
-Refractions, as in what follows will more fully appear. And, on the
-contrary, the permanent whiteness argues, that in like Incidences of the
-Rays there is no such separation of the emerging Rays, and by
-consequence no inequality of their whole Refractions. Whence I seem to
-gather the two following Theorems.
-
-1. The Excesses of the Sines of Refraction of several sorts of Rays
-above their common Sine of Incidence when the Refractions are made out
-of divers denser Mediums immediately into one and the same rarer Medium,
-suppose of Air, are to one another in a given Proportion.
-
-2. The Proportion of the Sine of Incidence to the Sine of Refraction of
-one and the same sort of Rays out of one Medium into another, is
-composed of the Proportion of the Sine of Incidence to the Sine of
-Refraction out of the first Medium into any third Medium, and of the
-Proportion of the Sine of Incidence to the Sine of Refraction out of
-that third Medium into the second Medium.
-
-By the first Theorem the Refractions of the Rays of every sort made out
-of any Medium into Air are known by having the Refraction of the Rays of
-any one sort. As for instance, if the Refractions of the Rays of every
-sort out of Rain-water into Air be desired, let the common Sine of
-Incidence out of Glass into Air be subducted from the Sines of
-Refraction, and the Excesses will be 27, 27-1/8, 27-1/5, 27-1/3, 27-1/2,
-27-2/3, 27-7/9, 28. Suppose now that the Sine of Incidence of the least
-refrangible Rays be to their Sine of Refraction out of Rain-water into
-Air as 3 to 4, and say as 1 the difference of those Sines is to 3 the
-Sine of Incidence, so is 27 the least of the Excesses above-mentioned to
-a fourth Number 81; and 81 will be the common Sine of Incidence out of
-Rain-water into Air, to which Sine if you add all the above-mentioned
-Excesses, you will have the desired Sines of the Refractions 108,
-108-1/8, 108-1/5, 108-1/3, 108-1/2, 108-2/3, 108-7/9, 109.
-
-By the latter Theorem the Refraction out of one Medium into another is
-gathered as often as you have the Refractions out of them both into any
-third Medium. As if the Sine of Incidence of any Ray out of Glass into
-Air be to its Sine of Refraction, as 20 to 31, and the Sine of Incidence
-of the same Ray out of Air into Water, be to its Sine of Refraction as 4
-to 3; the Sine of Incidence of that Ray out of Glass into Water will be
-to its Sine of Refraction as 20 to 31 and 4 to 3 jointly, that is, as
-the Factum of 20 and 4 to the Factum of 31 and 3, or as 80 to 93.
-
-And these Theorems being admitted into Opticks, there would be scope
-enough of handling that Science voluminously after a new manner,[K] not
-only by teaching those things which tend to the perfection of Vision,
-but also by determining mathematically all kinds of Phænomena of Colours
-which could be produced by Refractions. For to do this, there is nothing
-else requisite than to find out the Separations of heterogeneous Rays,
-and their various Mixtures and Proportions in every Mixture. By this
-way of arguing I invented almost all the Phænomena described in these
-Books, beside some others less necessary to the Argument; and by the
-successes I met with in the Trials, I dare promise, that to him who
-shall argue truly, and then try all things with good Glasses and
-sufficient Circumspection, the expected Event will not be wanting. But
-he is first to know what Colours will arise from any others mix'd in any
-assigned Proportion.
-
-
-_PROP._ IV. THEOR. III.
-
-_Colours may be produced by Composition which shall be like to the
-Colours of homogeneal Light as to the Appearance of Colour, but not as
-to the Immutability of Colour and Constitution of Light. And those
-Colours by how much they are more compounded by so much are they less
-full and intense, and by too much Composition they maybe diluted and
-weaken'd till they cease, and the Mixture becomes white or grey. There
-may be also Colours produced by Composition, which are not fully like
-any of the Colours of homogeneal Light._
-
-For a Mixture of homogeneal red and yellow compounds an Orange, like in
-appearance of Colour to that orange which in the series of unmixed
-prismatick Colours lies between them; but the Light of one orange is
-homogeneal as to Refrangibility, and that of the other is heterogeneal,
-and the Colour of the one, if viewed through a Prism, remains unchanged,
-that of the other is changed and resolved into its component Colours red
-and yellow. And after the same manner other neighbouring homogeneal
-Colours may compound new Colours, like the intermediate homogeneal ones,
-as yellow and green, the Colour between them both, and afterwards, if
-blue be added, there will be made a green the middle Colour of the three
-which enter the Composition. For the yellow and blue on either hand, if
-they are equal in quantity they draw the intermediate green equally
-towards themselves in Composition, and so keep it as it were in
-Æquilibrion, that it verge not more to the yellow on the one hand, and
-to the blue on the other, but by their mix'd Actions remain still a
-middle Colour. To this mix'd green there may be farther added some red
-and violet, and yet the green will not presently cease, but only grow
-less full and vivid, and by increasing the red and violet, it will grow
-more and more dilute, until by the prevalence of the added Colours it be
-overcome and turned into whiteness, or some other Colour. So if to the
-Colour of any homogeneal Light, the Sun's white Light composed of all
-sorts of Rays be added, that Colour will not vanish or change its
-Species, but be diluted, and by adding more and more white it will be
-diluted more and more perpetually. Lastly, If red and violet be mingled,
-there will be generated according to their various Proportions various
-Purples, such as are not like in appearance to the Colour of any
-homogeneal Light, and of these Purples mix'd with yellow and blue may be
-made other new Colours.
-
-
-_PROP._ V. THEOR. IV.
-
-_Whiteness and all grey Colours between white and black, may be
-compounded of Colours, and the whiteness of the Sun's Light is
-compounded of all the primary Colours mix'd in a due Proportion._
-
-The PROOF by Experiments.
-
-_Exper._ 9. The Sun shining into a dark Chamber through a little round
-hole in the Window-shut, and his Light being there refracted by a Prism
-to cast his coloured Image PT [in _Fig._ 5.] upon the opposite Wall: I
-held a white Paper V to that image in such manner that it might be
-illuminated by the colour'd Light reflected from thence, and yet not
-intercept any part of that Light in its passage from the Prism to the
-Spectrum. And I found that when the Paper was held nearer to any Colour
-than to the rest, it appeared of that Colour to which it approached
-nearest; but when it was equally or almost equally distant from all the
-Colours, so that it might be equally illuminated by them all it appeared
-white. And in this last situation of the Paper, if some Colours were
-intercepted, the Paper lost its white Colour, and appeared of the Colour
-of the rest of the Light which was not intercepted. So then the Paper
-was illuminated with Lights of various Colours, namely, red, yellow,
-green, blue and violet, and every part of the Light retained its proper
-Colour, until it was incident on the Paper, and became reflected thence
-to the Eye; so that if it had been either alone (the rest of the Light
-being intercepted) or if it had abounded most, and been predominant in
-the Light reflected from the Paper, it would have tinged the Paper with
-its own Colour; and yet being mixed with the rest of the Colours in a
-due proportion, it made the Paper look white, and therefore by a
-Composition with the rest produced that Colour. The several parts of the
-coloured Light reflected from the Spectrum, whilst they are propagated
-from thence through the Air, do perpetually retain their proper Colours,
-because wherever they fall upon the Eyes of any Spectator, they make the
-several parts of the Spectrum to appear under their proper Colours. They
-retain therefore their proper Colours when they fall upon the Paper V,
-and so by the confusion and perfect mixture of those Colours compound
-the whiteness of the Light reflected from thence.
-
-_Exper._ 10. Let that Spectrum or solar Image PT [in _Fig._ 6.] fall now
-upon the Lens MN above four Inches broad, and about six Feet distant
-from the Prism ABC and so figured that it may cause the coloured Light
-which divergeth from the Prism to converge and meet again at its Focus
-G, about six or eight Feet distant from the Lens, and there to fall
-perpendicularly upon a white Paper DE. And if you move this Paper to and
-fro, you will perceive that near the Lens, as at _de_, the whole solar
-Image (suppose at _pt_) will appear upon it intensely coloured after the
-manner above-explained, and that by receding from the Lens those Colours
-will perpetually come towards one another, and by mixing more and more
-dilute one another continually, until at length the Paper come to the
-Focus G, where by a perfect mixture they will wholly vanish and be
-converted into whiteness, the whole Light appearing now upon the Paper
-like a little white Circle. And afterwards by receding farther from the
-Lens, the Rays which before converged will now cross one another in the
-Focus G, and diverge from thence, and thereby make the Colours to appear
-again, but yet in a contrary order; suppose at [Greek: de], where the
-red _t_ is now above which before was below, and the violet _p_ is below
-which before was above.
-
-Let us now stop the Paper at the Focus G, where the Light appears
-totally white and circular, and let us consider its whiteness. I say,
-that this is composed of the converging Colours. For if any of those
-Colours be intercepted at the Lens, the whiteness will cease and
-degenerate into that Colour which ariseth from the composition of the
-other Colours which are not intercepted. And then if the intercepted
-Colours be let pass and fall upon that compound Colour, they mix with
-it, and by their mixture restore the whiteness. So if the violet, blue
-and green be intercepted, the remaining yellow, orange and red will
-compound upon the Paper an orange, and then if the intercepted Colours
-be let pass, they will fall upon this compounded orange, and together
-with it decompound a white. So also if the red and violet be
-intercepted, the remaining yellow, green and blue, will compound a green
-upon the Paper, and then the red and violet being let pass will fall
-upon this green, and together with it decompound a white. And that in
-this Composition of white the several Rays do not suffer any Change in
-their colorific Qualities by acting upon one another, but are only
-mixed, and by a mixture of their Colours produce white, may farther
-appear by these Arguments.
-
-[Illustration: FIG. 6.]
-
-If the Paper be placed beyond the Focus G, suppose at [Greek: de], and
-then the red Colour at the Lens be alternately intercepted, and let pass
-again, the violet Colour on the Paper will not suffer any Change
-thereby, as it ought to do if the several sorts of Rays acted upon one
-another in the Focus G, where they cross. Neither will the red upon the
-Paper be changed by any alternate stopping, and letting pass the violet
-which crosseth it.
-
-And if the Paper be placed at the Focus G, and the white round Image at
-G be viewed through the Prism HIK, and by the Refraction of that Prism
-be translated to the place _rv_, and there appear tinged with various
-Colours, namely, the violet at _v_ and red at _r_, and others between,
-and then the red Colours at the Lens be often stopp'd and let pass by
-turns, the red at _r_ will accordingly disappear, and return as often,
-but the violet at _v_ will not thereby suffer any Change. And so by
-stopping and letting pass alternately the blue at the Lens, the blue at
-_v_ will accordingly disappear and return, without any Change made in
-the red at _r_. The red therefore depends on one sort of Rays, and the
-blue on another sort, which in the Focus G where they are commix'd, do
-not act on one another. And there is the same Reason of the other
-Colours.
-
-I considered farther, that when the most refrangible Rays P_p_, and the
-least refrangible ones T_t_, are by converging inclined to one another,
-the Paper, if held very oblique to those Rays in the Focus G, might
-reflect one sort of them more copiously than the other sort, and by that
-Means the reflected Light would be tinged in that Focus with the Colour
-of the predominant Rays, provided those Rays severally retained their
-Colours, or colorific Qualities in the Composition of White made by them
-in that Focus. But if they did not retain them in that White, but became
-all of them severally endued there with a Disposition to strike the
-Sense with the Perception of White, then they could never lose their
-Whiteness by such Reflexions. I inclined therefore the Paper to the Rays
-very obliquely, as in the second Experiment of this second Part of the
-first Book, that the most refrangible Rays, might be more copiously
-reflected than the rest, and the Whiteness at Length changed
-successively into blue, indigo, and violet. Then I inclined it the
-contrary Way, that the least refrangible Rays might be more copious in
-the reflected Light than the rest, and the Whiteness turned successively
-to yellow, orange, and red.
-
-Lastly, I made an Instrument XY in fashion of a Comb, whose Teeth being
-in number sixteen, were about an Inch and a half broad, and the
-Intervals of the Teeth about two Inches wide. Then by interposing
-successively the Teeth of this Instrument near the Lens, I intercepted
-Part of the Colours by the interposed Tooth, whilst the rest of them
-went on through the Interval of the Teeth to the Paper DE, and there
-painted a round Solar Image. But the Paper I had first placed so, that
-the Image might appear white as often as the Comb was taken away; and
-then the Comb being as was said interposed, that Whiteness by reason of
-the intercepted Part of the Colours at the Lens did always change into
-the Colour compounded of those Colours which were not intercepted, and
-that Colour was by the Motion of the Comb perpetually varied so, that in
-the passing of every Tooth over the Lens all these Colours, red, yellow,
-green, blue, and purple, did always succeed one another. I caused
-therefore all the Teeth to pass successively over the Lens, and when the
-Motion was slow, there appeared a perpetual Succession of the Colours
-upon the Paper: But if I so much accelerated the Motion, that the
-Colours by reason of their quick Succession could not be distinguished
-from one another, the Appearance of the single Colours ceased. There was
-no red, no yellow, no green, no blue, nor purple to be seen any longer,
-but from a Confusion of them all there arose one uniform white Colour.
-Of the Light which now by the Mixture of all the Colours appeared white,
-there was no Part really white. One Part was red, another yellow, a
-third green, a fourth blue, a fifth purple, and every Part retains its
-proper Colour till it strike the Sensorium. If the Impressions follow
-one another slowly, so that they may be severally perceived, there is
-made a distinct Sensation of all the Colours one after another in a
-continual Succession. But if the Impressions follow one another so
-quickly, that they cannot be severally perceived, there ariseth out of
-them all one common Sensation, which is neither of this Colour alone nor
-of that alone, but hath it self indifferently to 'em all, and this is a
-Sensation of Whiteness. By the Quickness of the Successions, the
-Impressions of the several Colours are confounded in the Sensorium, and
-out of that Confusion ariseth a mix'd Sensation. If a burning Coal be
-nimbly moved round in a Circle with Gyrations continually repeated, the
-whole Circle will appear like Fire; the reason of which is, that the
-Sensation of the Coal in the several Places of that Circle remains
-impress'd on the Sensorium, until the Coal return again to the same
-Place. And so in a quick Consecution of the Colours the Impression of
-every Colour remains in the Sensorium, until a Revolution of all the
-Colours be compleated, and that first Colour return again. The
-Impressions therefore of all the successive Colours are at once in the
-Sensorium, and jointly stir up a Sensation of them all; and so it is
-manifest by this Experiment, that the commix'd Impressions of all the
-Colours do stir up and beget a Sensation of white, that is, that
-Whiteness is compounded of all the Colours.
-
-And if the Comb be now taken away, that all the Colours may at once pass
-from the Lens to the Paper, and be there intermixed, and together
-reflected thence to the Spectator's Eyes; their Impressions on the
-Sensorium being now more subtilly and perfectly commixed there, ought
-much more to stir up a Sensation of Whiteness.
-
-You may instead of the Lens use two Prisms HIK and LMN, which by
-refracting the coloured Light the contrary Way to that of the first
-Refraction, may make the diverging Rays converge and meet again in G, as
-you see represented in the seventh Figure. For where they meet and mix,
-they will compose a white Light, as when a Lens is used.
-
-_Exper._ 11. Let the Sun's coloured Image PT [in _Fig._ 8.] fall upon
-the Wall of a dark Chamber, as in the third Experiment of the first
-Book, and let the same be viewed through a Prism _abc_, held parallel to
-the Prism ABC, by whose Refraction that Image was made, and let it now
-appear lower than before, suppose in the Place S over-against the red
-Colour T. And if you go near to the Image PT, the Spectrum S will appear
-oblong and coloured like the Image PT; but if you recede from it, the
-Colours of the spectrum S will be contracted more and more, and at
-length vanish, that Spectrum S becoming perfectly round and white; and
-if you recede yet farther, the Colours will emerge again, but in a
-contrary Order. Now that Spectrum S appears white in that Case, when the
-Rays of several sorts which converge from the several Parts of the Image
-PT, to the Prism _abc_, are so refracted unequally by it, that in their
-Passage from the Prism to the Eye they may diverge from one and the same
-Point of the Spectrum S, and so fall afterwards upon one and the same
-Point in the bottom of the Eye, and there be mingled.
-
-[Illustration: FIG. 7.]
-
-[Illustration: FIG. 8.]
-
-And farther, if the Comb be here made use of, by whose Teeth the Colours
-at the Image PT may be successively intercepted; the Spectrum S, when
-the Comb is moved slowly, will be perpetually tinged with successive
-Colours: But when by accelerating the Motion of the Comb, the Succession
-of the Colours is so quick that they cannot be severally seen, that
-Spectrum S, by a confused and mix'd Sensation of them all, will appear
-white.
-
-_Exper._ 12. The Sun shining through a large Prism ABC [in _Fig._ 9.]
-upon a Comb XY, placed immediately behind the Prism, his Light which
-passed through the Interstices of the Teeth fell upon a white Paper DE.
-The Breadths of the Teeth were equal to their Interstices, and seven
-Teeth together with their Interstices took up an Inch in Breadth. Now,
-when the Paper was about two or three Inches distant from the Comb, the
-Light which passed through its several Interstices painted so many
-Ranges of Colours, _kl_, _mn_, _op_, _qr_, &c. which were parallel to
-one another, and contiguous, and without any Mixture of white. And these
-Ranges of Colours, if the Comb was moved continually up and down with a
-reciprocal Motion, ascended and descended in the Paper, and when the
-Motion of the Comb was so quick, that the Colours could not be
-distinguished from one another, the whole Paper by their Confusion and
-Mixture in the Sensorium appeared white.
-
-[Illustration: FIG. 9.]
-
-Let the Comb now rest, and let the Paper be removed farther from the
-Prism, and the several Ranges of Colours will be dilated and expanded
-into one another more and more, and by mixing their Colours will dilute
-one another, and at length, when the distance of the Paper from the Comb
-is about a Foot, or a little more (suppose in the Place 2D 2E) they will
-so far dilute one another, as to become white.
-
-With any Obstacle, let all the Light be now stopp'd which passes through
-any one Interval of the Teeth, so that the Range of Colours which comes
-from thence may be taken away, and you will see the Light of the rest of
-the Ranges to be expanded into the Place of the Range taken away, and
-there to be coloured. Let the intercepted Range pass on as before, and
-its Colours falling upon the Colours of the other Ranges, and mixing
-with them, will restore the Whiteness.
-
-Let the Paper 2D 2E be now very much inclined to the Rays, so that the
-most refrangible Rays may be more copiously reflected than the rest, and
-the white Colour of the Paper through the Excess of those Rays will be
-changed into blue and violet. Let the Paper be as much inclined the
-contrary way, that the least refrangible Rays may be now more copiously
-reflected than the rest, and by their Excess the Whiteness will be
-changed into yellow and red. The several Rays therefore in that white
-Light do retain their colorific Qualities, by which those of any sort,
-whenever they become more copious than the rest, do by their Excess and
-Predominance cause their proper Colour to appear.
-
-And by the same way of arguing, applied to the third Experiment of this
-second Part of the first Book, it may be concluded, that the white
-Colour of all refracted Light at its very first Emergence, where it
-appears as white as before its Incidence, is compounded of various
-Colours.
-
-[Illustration: FIG. 10.]
-
-_Exper._ 13. In the foregoing Experiment the several Intervals of the
-Teeth of the Comb do the Office of so many Prisms, every Interval
-producing the Phænomenon of one Prism. Whence instead of those Intervals
-using several Prisms, I try'd to compound Whiteness by mixing their
-Colours, and did it by using only three Prisms, as also by using only
-two as follows. Let two Prisms ABC and _abc_, [in _Fig._ 10.] whose
-refracting Angles B and _b_ are equal, be so placed parallel to one
-another, that the refracting Angle B of the one may touch the Angle _c_
-at the Base of the other, and their Planes CB and _cb_, at which the
-Rays emerge, may lie in Directum. Then let the Light trajected through
-them fall upon the Paper MN, distant about 8 or 12 Inches from the
-Prisms. And the Colours generated by the interior Limits B and _c_ of
-the two Prisms, will be mingled at PT, and there compound white. For if
-either Prism be taken away, the Colours made by the other will appear in
-that Place PT, and when the Prism is restored to its Place again, so
-that its Colours may there fall upon the Colours of the other, the
-Mixture of them both will restore the Whiteness.
-
-This Experiment succeeds also, as I have tried, when the Angle _b_ of
-the lower Prism, is a little greater than the Angle B of the upper, and
-between the interior Angles B and _c_, there intercedes some Space B_c_,
-as is represented in the Figure, and the refracting Planes BC and _bc_,
-are neither in Directum, nor parallel to one another. For there is
-nothing more requisite to the Success of this Experiment, than that the
-Rays of all sorts may be uniformly mixed upon the Paper in the Place PT.
-If the most refrangible Rays coming from the superior Prism take up all
-the Space from M to P, the Rays of the same sort which come from the
-inferior Prism ought to begin at P, and take up all the rest of the
-Space from thence towards N. If the least refrangible Rays coming from
-the superior Prism take up the Space MT, the Rays of the same kind which
-come from the other Prism ought to begin at T, and take up the
-remaining Space TN. If one sort of the Rays which have intermediate
-Degrees of Refrangibility, and come from the superior Prism be extended
-through the Space MQ, and another sort of those Rays through the Space
-MR, and a third sort of them through the Space MS, the same sorts of
-Rays coming from the lower Prism, ought to illuminate the remaining
-Spaces QN, RN, SN, respectively. And the same is to be understood of all
-the other sorts of Rays. For thus the Rays of every sort will be
-scattered uniformly and evenly through the whole Space MN, and so being
-every where mix'd in the same Proportion, they must every where produce
-the same Colour. And therefore, since by this Mixture they produce white
-in the Exterior Spaces MP and TN, they must also produce white in the
-Interior Space PT. This is the reason of the Composition by which
-Whiteness was produced in this Experiment, and by what other way soever
-I made the like Composition, the Result was Whiteness.
-
-Lastly, If with the Teeth of a Comb of a due Size, the coloured Lights
-of the two Prisms which fall upon the Space PT be alternately
-intercepted, that Space PT, when the Motion of the Comb is slow, will
-always appear coloured, but by accelerating the Motion of the Comb so
-much that the successive Colours cannot be distinguished from one
-another, it will appear white.
-
-_Exper._ 14. Hitherto I have produced Whiteness by mixing the Colours of
-Prisms. If now the Colours of natural Bodies are to be mingled, let
-Water a little thicken'd with Soap be agitated to raise a Froth, and
-after that Froth has stood a little, there will appear to one that shall
-view it intently various Colours every where in the Surfaces of the
-several Bubbles; but to one that shall go so far off, that he cannot
-distinguish the Colours from one another, the whole Froth will grow
-white with a perfect Whiteness.
-
-_Exper._ 15. Lastly, In attempting to compound a white, by mixing the
-coloured Powders which Painters use, I consider'd that all colour'd
-Powders do suppress and stop in them a very considerable Part of the
-Light by which they are illuminated. For they become colour'd by
-reflecting the Light of their own Colours more copiously, and that of
-all other Colours more sparingly, and yet they do not reflect the Light
-of their own Colours so copiously as white Bodies do. If red Lead, for
-instance, and a white Paper, be placed in the red Light of the colour'd
-Spectrum made in a dark Chamber by the Refraction of a Prism, as is
-described in the third Experiment of the first Part of this Book; the
-Paper will appear more lucid than the red Lead, and therefore reflects
-the red-making Rays more copiously than red Lead doth. And if they be
-held in the Light of any other Colour, the Light reflected by the Paper
-will exceed the Light reflected by the red Lead in a much greater
-Proportion. And the like happens in Powders of other Colours. And
-therefore by mixing such Powders, we are not to expect a strong and
-full White, such as is that of Paper, but some dusky obscure one, such
-as might arise from a Mixture of Light and Darkness, or from white and
-black, that is, a grey, or dun, or russet brown, such as are the Colours
-of a Man's Nail, of a Mouse, of Ashes, of ordinary Stones, of Mortar, of
-Dust and Dirt in High-ways, and the like. And such a dark white I have
-often produced by mixing colour'd Powders. For thus one Part of red
-Lead, and five Parts of _Viride Æris_, composed a dun Colour like that
-of a Mouse. For these two Colours were severally so compounded of
-others, that in both together were a Mixture of all Colours; and there
-was less red Lead used than _Viride Æris_, because of the Fulness of its
-Colour. Again, one Part of red Lead, and four Parts of blue Bise,
-composed a dun Colour verging a little to purple, and by adding to this
-a certain Mixture of Orpiment and _Viride Æris_ in a due Proportion, the
-Mixture lost its purple Tincture, and became perfectly dun. But the
-Experiment succeeded best without Minium thus. To Orpiment I added by
-little and little a certain full bright purple, which Painters use,
-until the Orpiment ceased to be yellow, and became of a pale red. Then I
-diluted that red by adding a little _Viride Æris_, and a little more
-blue Bise than _Viride Æris_, until it became of such a grey or pale
-white, as verged to no one of the Colours more than to another. For thus
-it became of a Colour equal in Whiteness to that of Ashes, or of Wood
-newly cut, or of a Man's Skin. The Orpiment reflected more Light than
-did any other of the Powders, and therefore conduced more to the
-Whiteness of the compounded Colour than they. To assign the Proportions
-accurately may be difficult, by reason of the different Goodness of
-Powders of the same kind. Accordingly, as the Colour of any Powder is
-more or less full and luminous, it ought to be used in a less or greater
-Proportion.
-
-Now, considering that these grey and dun Colours may be also produced by
-mixing Whites and Blacks, and by consequence differ from perfect Whites,
-not in Species of Colours, but only in degree of Luminousness, it is
-manifest that there is nothing more requisite to make them perfectly
-white than to increase their Light sufficiently; and, on the contrary,
-if by increasing their Light they can be brought to perfect Whiteness,
-it will thence also follow, that they are of the same Species of Colour
-with the best Whites, and differ from them only in the Quantity of
-Light. And this I tried as follows. I took the third of the
-above-mention'd grey Mixtures, (that which was compounded of Orpiment,
-Purple, Bise, and _Viride Æris_) and rubbed it thickly upon the Floor of
-my Chamber, where the Sun shone upon it through the opened Casement; and
-by it, in the shadow, I laid a Piece of white Paper of the same Bigness.
-Then going from them to the distance of 12 or 18 Feet, so that I could
-not discern the Unevenness of the Surface of the Powder, nor the little
-Shadows let fall from the gritty Particles thereof; the Powder appeared
-intensely white, so as to transcend even the Paper it self in Whiteness,
-especially if the Paper were a little shaded from the Light of the
-Clouds, and then the Paper compared with the Powder appeared of such a
-grey Colour as the Powder had done before. But by laying the Paper where
-the Sun shines through the Glass of the Window, or by shutting the
-Window that the Sun might shine through the Glass upon the Powder, and
-by such other fit Means of increasing or decreasing the Lights wherewith
-the Powder and Paper were illuminated, the Light wherewith the Powder is
-illuminated may be made stronger in such a due Proportion than the Light
-wherewith the Paper is illuminated, that they shall both appear exactly
-alike in Whiteness. For when I was trying this, a Friend coming to visit
-me, I stopp'd him at the Door, and before I told him what the Colours
-were, or what I was doing; I asked him, Which of the two Whites were the
-best, and wherein they differed? And after he had at that distance
-viewed them well, he answer'd, that they were both good Whites, and that
-he could not say which was best, nor wherein their Colours differed.
-Now, if you consider, that this White of the Powder in the Sun-shine was
-compounded of the Colours which the component Powders (Orpiment, Purple,
-Bise, and _Viride Æris_) have in the same Sun-shine, you must
-acknowledge by this Experiment, as well as by the former, that perfect
-Whiteness may be compounded of Colours.
-
-From what has been said it is also evident, that the Whiteness of the
-Sun's Light is compounded of all the Colours wherewith the several sorts
-of Rays whereof that Light consists, when by their several
-Refrangibilities they are separated from one another, do tinge Paper or
-any other white Body whereon they fall. For those Colours (by _Prop._
-II. _Part_ 2.) are unchangeable, and whenever all those Rays with those
-their Colours are mix'd again, they reproduce the same white Light as
-before.
-
-
-_PROP._ VI. PROB. II.
-
-_In a mixture of Primary Colours, the Quantity and Quality of each being
-given, to know the Colour of the Compound._
-
-[Illustration: FIG. 11.]
-
-With the Center O [in _Fig._ 11.] and Radius OD describe a Circle ADF,
-and distinguish its Circumference into seven Parts DE, EF, FG, GA, AB,
-BC, CD, proportional to the seven Musical Tones or Intervals of the
-eight Sounds, _Sol_, _la_, _fa_, _sol_, _la_, _mi_, _fa_, _sol_,
-contained in an eight, that is, proportional to the Number 1/9, 1/16,
-1/10, 1/9, 1/16, 1/16, 1/9. Let the first Part DE represent a red
-Colour, the second EF orange, the third FG yellow, the fourth CA green,
-the fifth AB blue, the sixth BC indigo, and the seventh CD violet. And
-conceive that these are all the Colours of uncompounded Light gradually
-passing into one another, as they do when made by Prisms; the
-Circumference DEFGABCD, representing the whole Series of Colours from
-one end of the Sun's colour'd Image to the other, so that from D to E be
-all degrees of red, at E the mean Colour between red and orange, from E
-to F all degrees of orange, at F the mean between orange and yellow,
-from F to G all degrees of yellow, and so on. Let _p_ be the Center of
-Gravity of the Arch DE, and _q_, _r_, _s_, _t_, _u_, _x_, the Centers of
-Gravity of the Arches EF, FG, GA, AB, BC, and CD respectively, and about
-those Centers of Gravity let Circles proportional to the Number of Rays
-of each Colour in the given Mixture be describ'd: that is, the Circle
-_p_ proportional to the Number of the red-making Rays in the Mixture,
-the Circle _q_ proportional to the Number of the orange-making Rays in
-the Mixture, and so of the rest. Find the common Center of Gravity of
-all those Circles, _p_, _q_, _r_, _s_, _t_, _u_, _x_. Let that Center be
-Z; and from the Center of the Circle ADF, through Z to the
-Circumference, drawing the Right Line OY, the Place of the Point Y in
-the Circumference shall shew the Colour arising from the Composition of
-all the Colours in the given Mixture, and the Line OZ shall be
-proportional to the Fulness or Intenseness of the Colour, that is, to
-its distance from Whiteness. As if Y fall in the middle between F and G,
-the compounded Colour shall be the best yellow; if Y verge from the
-middle towards F or G, the compound Colour shall accordingly be a
-yellow, verging towards orange or green. If Z fall upon the
-Circumference, the Colour shall be intense and florid in the highest
-Degree; if it fall in the mid-way between the Circumference and Center,
-it shall be but half so intense, that is, it shall be such a Colour as
-would be made by diluting the intensest yellow with an equal quantity of
-whiteness; and if it fall upon the center O, the Colour shall have lost
-all its intenseness, and become a white. But it is to be noted, That if
-the point Z fall in or near the line OD, the main ingredients being the
-red and violet, the Colour compounded shall not be any of the prismatick
-Colours, but a purple, inclining to red or violet, accordingly as the
-point Z lieth on the side of the line DO towards E or towards C, and in
-general the compounded violet is more bright and more fiery than the
-uncompounded. Also if only two of the primary Colours which in the
-circle are opposite to one another be mixed in an equal proportion, the
-point Z shall fall upon the center O, and yet the Colour compounded of
-those two shall not be perfectly white, but some faint anonymous Colour.
-For I could never yet by mixing only two primary Colours produce a
-perfect white. Whether it may be compounded of a mixture of three taken
-at equal distances in the circumference I do not know, but of four or
-five I do not much question but it may. But these are Curiosities of
-little or no moment to the understanding the Phænomena of Nature. For in
-all whites produced by Nature, there uses to be a mixture of all sorts
-of Rays, and by consequence a composition of all Colours.
-
-To give an instance of this Rule; suppose a Colour is compounded of
-these homogeneal Colours, of violet one part, of indigo one part, of
-blue two parts, of green three parts, of yellow five parts, of orange
-six parts, and of red ten parts. Proportional to these parts describe
-the Circles _x_, _v_, _t_, _s_, _r_, _q_, _p_, respectively, that is, so
-that if the Circle _x_ be one, the Circle _v_ may be one, the Circle _t_
-two, the Circle _s_ three, and the Circles _r_, _q_ and _p_, five, six
-and ten. Then I find Z the common center of gravity of these Circles,
-and through Z drawing the Line OY, the Point Y falls upon the
-circumference between E and F, something nearer to E than to F, and
-thence I conclude, that the Colour compounded of these Ingredients will
-be an orange, verging a little more to red than to yellow. Also I find
-that OZ is a little less than one half of OY, and thence I conclude,
-that this orange hath a little less than half the fulness or intenseness
-of an uncompounded orange; that is to say, that it is such an orange as
-may be made by mixing an homogeneal orange with a good white in the
-proportion of the Line OZ to the Line ZY, this Proportion being not of
-the quantities of mixed orange and white Powders, but of the quantities
-of the Lights reflected from them.
-
-This Rule I conceive accurate enough for practice, though not
-mathematically accurate; and the truth of it may be sufficiently proved
-to Sense, by stopping any of the Colours at the Lens in the tenth
-Experiment of this Book. For the rest of the Colours which are not
-stopp'd, but pass on to the Focus of the Lens, will there compound
-either accurately or very nearly such a Colour, as by this Rule ought to
-result from their Mixture.
-
-
-_PROP._ VII. THEOR. V.
-
-_All the Colours in the Universe which are made by Light, and depend not
-on the Power of Imagination, are either the Colours of homogeneal
-Lights, or compounded of these, and that either accurately or very
-nearly, according to the Rule of the foregoing Problem._
-
-For it has been proved (in _Prop. 1. Part 2._) that the changes of
-Colours made by Refractions do not arise from any new Modifications of
-the Rays impress'd by those Refractions, and by the various Terminations
-of Light and Shadow, as has been the constant and general Opinion of
-Philosophers. It has also been proved that the several Colours of the
-homogeneal Rays do constantly answer to their degrees of Refrangibility,
-(_Prop._ 1. _Part_ 1. and _Prop._ 2. _Part_ 2.) and that their degrees
-of Refrangibility cannot be changed by Refractions and Reflexions
-(_Prop._ 2. _Part_ 1.) and by consequence that those their Colours are
-likewise immutable. It has also been proved directly by refracting and
-reflecting homogeneal Lights apart, that their Colours cannot be
-changed, (_Prop._ 2. _Part_ 2.) It has been proved also, that when the
-several sorts of Rays are mixed, and in crossing pass through the same
-space, they do not act on one another so as to change each others
-colorific qualities. (_Exper._ 10. _Part_ 2.) but by mixing their
-Actions in the Sensorium beget a Sensation differing from what either
-would do apart, that is a Sensation of a mean Colour between their
-proper Colours; and particularly when by the concourse and mixtures of
-all sorts of Rays, a white Colour is produced, the white is a mixture of
-all the Colours which the Rays would have apart, (_Prop._ 5. _Part_ 2.)
-The Rays in that mixture do not lose or alter their several colorific
-qualities, but by all their various kinds of Actions mix'd in the
-Sensorium, beget a Sensation of a middling Colour between all their
-Colours, which is whiteness. For whiteness is a mean between all
-Colours, having it self indifferently to them all, so as with equal
-facility to be tinged with any of them. A red Powder mixed with a little
-blue, or a blue with a little red, doth not presently lose its Colour,
-but a white Powder mix'd with any Colour is presently tinged with that
-Colour, and is equally capable of being tinged with any Colour whatever.
-It has been shewed also, that as the Sun's Light is mix'd of all sorts
-of Rays, so its whiteness is a mixture of the Colours of all sorts of
-Rays; those Rays having from the beginning their several colorific
-qualities as well as their several Refrangibilities, and retaining them
-perpetually unchanged notwithstanding any Refractions or Reflexions they
-may at any time suffer, and that whenever any sort of the Sun's Rays is
-by any means (as by Reflexion in _Exper._ 9, and 10. _Part_ 1. or by
-Refraction as happens in all Refractions) separated from the rest, they
-then manifest their proper Colours. These things have been prov'd, and
-the sum of all this amounts to the Proposition here to be proved. For if
-the Sun's Light is mix'd of several sorts of Rays, each of which have
-originally their several Refrangibilities and colorific Qualities, and
-notwithstanding their Refractions and Reflexions, and their various
-Separations or Mixtures, keep those their original Properties
-perpetually the same without alteration; then all the Colours in the
-World must be such as constantly ought to arise from the original
-colorific qualities of the Rays whereof the Lights consist by which
-those Colours are seen. And therefore if the reason of any Colour
-whatever be required, we have nothing else to do than to consider how
-the Rays in the Sun's Light have by Reflexions or Refractions, or other
-causes, been parted from one another, or mixed together; or otherwise to
-find out what sorts of Rays are in the Light by which that Colour is
-made, and in what Proportion; and then by the last Problem to learn the
-Colour which ought to arise by mixing those Rays (or their Colours) in
-that proportion. I speak here of Colours so far as they arise from
-Light. For they appear sometimes by other Causes, as when by the power
-of Phantasy we see Colours in a Dream, or a Mad-man sees things before
-him which are not there; or when we see Fire by striking the Eye, or see
-Colours like the Eye of a Peacock's Feather, by pressing our Eyes in
-either corner whilst we look the other way. Where these and such like
-Causes interpose not, the Colour always answers to the sort or sorts of
-the Rays whereof the Light consists, as I have constantly found in
-whatever Phænomena of Colours I have hitherto been able to examine. I
-shall in the following Propositions give instances of this in the
-Phænomena of chiefest note.
-
-
-_PROP._ VIII. PROB. III.
-
-_By the discovered Properties of Light to explain the Colours made by
-Prisms._
-
-Let ABC [in _Fig._ 12.] represent a Prism refracting the Light of the
-Sun, which comes into a dark Chamber through a hole F[Greek: ph] almost
-as broad as the Prism, and let MN represent a white Paper on which the
-refracted Light is cast, and suppose the most refrangible or deepest
-violet-making Rays fall upon the Space P[Greek: p], the least
-refrangible or deepest red-making Rays upon the Space T[Greek: t], the
-middle sort between the indigo-making and blue-making Rays upon the
-Space Q[Greek: ch], the middle sort of the green-making Rays upon the
-Space R, the middle sort between the yellow-making and orange-making
-Rays upon the Space S[Greek: s], and other intermediate sorts upon
-intermediate Spaces. For so the Spaces upon which the several sorts
-adequately fall will by reason of the different Refrangibility of those
-sorts be one lower than another. Now if the Paper MN be so near the
-Prism that the Spaces PT and [Greek: pt] do not interfere with one
-another, the distance between them T[Greek: p] will be illuminated by
-all the sorts of Rays in that proportion to one another which they have
-at their very first coming out of the Prism, and consequently be white.
-But the Spaces PT and [Greek: pt] on either hand, will not be
-illuminated by them all, and therefore will appear coloured. And
-particularly at P, where the outmost violet-making Rays fall alone, the
-Colour must be the deepest violet. At Q where the violet-making and
-indigo-making Rays are mixed, it must be a violet inclining much to
-indigo. At R where the violet-making, indigo-making, blue-making, and
-one half of the green-making Rays are mixed, their Colours must (by the
-construction of the second Problem) compound a middle Colour between
-indigo and blue. At S where all the Rays are mixed, except the
-red-making and orange-making, their Colours ought by the same Rule to
-compound a faint blue, verging more to green than indigo. And in the
-progress from S to T, this blue will grow more and more faint and
-dilute, till at T, where all the Colours begin to be mixed, it ends in
-whiteness.
-
-[Illustration: FIG. 12.]
-
-So again, on the other side of the white at [Greek: t], where the least
-refrangible or utmost red-making Rays are alone, the Colour must be the
-deepest red. At [Greek: s] the mixture of red and orange will compound a
-red inclining to orange. At [Greek: r] the mixture of red, orange,
-yellow, and one half of the green must compound a middle Colour between
-orange and yellow. At [Greek: ch] the mixture of all Colours but violet
-and indigo will compound a faint yellow, verging more to green than to
-orange. And this yellow will grow more faint and dilute continually in
-its progress from [Greek: ch] to [Greek: p], where by a mixture of all
-sorts of Rays it will become white.
-
-These Colours ought to appear were the Sun's Light perfectly white: But
-because it inclines to yellow, the Excess of the yellow-making Rays
-whereby 'tis tinged with that Colour, being mixed with the faint blue
-between S and T, will draw it to a faint green. And so the Colours in
-order from P to [Greek: t] ought to be violet, indigo, blue, very faint
-green, white, faint yellow, orange, red. Thus it is by the computation:
-And they that please to view the Colours made by a Prism will find it so
-in Nature.
-
-These are the Colours on both sides the white when the Paper is held
-between the Prism and the Point X where the Colours meet, and the
-interjacent white vanishes. For if the Paper be held still farther off
-from the Prism, the most refrangible and least refrangible Rays will be
-wanting in the middle of the Light, and the rest of the Rays which are
-found there, will by mixture produce a fuller green than before. Also
-the yellow and blue will now become less compounded, and by consequence
-more intense than before. And this also agrees with experience.
-
-And if one look through a Prism upon a white Object encompassed with
-blackness or darkness, the reason of the Colours arising on the edges is
-much the same, as will appear to one that shall a little consider it. If
-a black Object be encompassed with a white one, the Colours which appear
-through the Prism are to be derived from the Light of the white one,
-spreading into the Regions of the black, and therefore they appear in a
-contrary order to that, when a white Object is surrounded with black.
-And the same is to be understood when an Object is viewed, whose parts
-are some of them less luminous than others. For in the borders of the
-more and less luminous Parts, Colours ought always by the same
-Principles to arise from the Excess of the Light of the more luminous,
-and to be of the same kind as if the darker parts were black, but yet to
-be more faint and dilute.
-
-What is said of Colours made by Prisms may be easily applied to Colours
-made by the Glasses of Telescopes or Microscopes, or by the Humours of
-the Eye. For if the Object-glass of a Telescope be thicker on one side
-than on the other, or if one half of the Glass, or one half of the Pupil
-of the Eye be cover'd with any opake substance; the Object-glass, or
-that part of it or of the Eye which is not cover'd, may be consider'd as
-a Wedge with crooked Sides, and every Wedge of Glass or other pellucid
-Substance has the effect of a Prism in refracting the Light which passes
-through it.[L]
-
-How the Colours in the ninth and tenth Experiments of the first Part
-arise from the different Reflexibility of Light, is evident by what was
-there said. But it is observable in the ninth Experiment, that whilst
-the Sun's direct Light is yellow, the Excess of the blue-making Rays in
-the reflected beam of Light MN, suffices only to bring that yellow to a
-pale white inclining to blue, and not to tinge it with a manifestly blue
-Colour. To obtain therefore a better blue, I used instead of the yellow
-Light of the Sun the white Light of the Clouds, by varying a little the
-Experiment, as follows.
-
-[Illustration: FIG. 13.]
-
-_Exper._ 16 Let HFG [in _Fig._ 13.] represent a Prism in the open Air,
-and S the Eye of the Spectator, viewing the Clouds by their Light coming
-into the Prism at the Plane Side FIGK, and reflected in it by its Base
-HEIG, and thence going out through its Plane Side HEFK to the Eye. And
-when the Prism and Eye are conveniently placed, so that the Angles of
-Incidence and Reflexion at the Base may be about 40 Degrees, the
-Spectator will see a Bow MN of a blue Colour, running from one End of
-the Base to the other, with the Concave Side towards him, and the Part
-of the Base IMNG beyond this Bow will be brighter than the other Part
-EMNH on the other Side of it. This blue Colour MN being made by nothing
-else than by Reflexion of a specular Superficies, seems so odd a
-Phænomenon, and so difficult to be explained by the vulgar Hypothesis of
-Philosophers, that I could not but think it deserved to be taken Notice
-of. Now for understanding the Reason of it, suppose the Plane ABC to cut
-the Plane Sides and Base of the Prism perpendicularly. From the Eye to
-the Line BC, wherein that Plane cuts the Base, draw the Lines S_p_ and
-S_t_, in the Angles S_pc_ 50 degr. 1/9, and S_tc_ 49 degr. 1/28, and the
-Point _p_ will be the Limit beyond which none of the most refrangible
-Rays can pass through the Base of the Prism, and be refracted, whose
-Incidence is such that they may be reflected to the Eye; and the Point
-_t_ will be the like Limit for the least refrangible Rays, that is,
-beyond which none of them can pass through the Base, whose Incidence is
-such that by Reflexion they may come to the Eye. And the Point _r_ taken
-in the middle Way between _p_ and _t_, will be the like Limit for the
-meanly refrangible Rays. And therefore all the least refrangible Rays
-which fall upon the Base beyond _t_, that is, between _t_ and B, and can
-come from thence to the Eye, will be reflected thither: But on this side
-_t_, that is, between _t_ and _c_, many of these Rays will be
-transmitted through the Base. And all the most refrangible Rays which
-fall upon the Base beyond _p_, that is, between, _p_ and B, and can by
-Reflexion come from thence to the Eye, will be reflected thither, but
-every where between _p_ and _c_, many of these Rays will get through the
-Base, and be refracted; and the same is to be understood of the meanly
-refrangible Rays on either side of the Point _r_. Whence it follows,
-that the Base of the Prism must every where between _t_ and B, by a
-total Reflexion of all sorts of Rays to the Eye, look white and bright.
-And every where between _p_ and C, by reason of the Transmission of many
-Rays of every sort, look more pale, obscure, and dark. But at _r_, and
-in other Places between _p_ and _t_, where all the more refrangible Rays
-are reflected to the Eye, and many of the less refrangible are
-transmitted, the Excess of the most refrangible in the reflected Light
-will tinge that Light with their Colour, which is violet and blue. And
-this happens by taking the Line C _prt_ B any where between the Ends of
-the Prism HG and EI.
-
-
-_PROP._ IX. PROB. IV.
-
-_By the discovered Properties of Light to explain the Colours of the
-Rain-bow._
-
-[Illustration: FIG. 14.]
-
-This Bow never appears, but where it rains in the Sun-shine, and may be
-made artificially by spouting up Water which may break aloft, and
-scatter into Drops, and fall down like Rain. For the Sun shining upon
-these Drops certainly causes the Bow to appear to a Spectator standing
-in a due Position to the Rain and Sun. And hence it is now agreed upon,
-that this Bow is made by Refraction of the Sun's Light in drops of
-falling Rain. This was understood by some of the Antients, and of late
-more fully discover'd and explain'd by the famous _Antonius de Dominis_
-Archbishop of _Spalato_, in his book _De Radiis Visûs & Lucis_,
-published by his Friend _Bartolus_ at _Venice_, in the Year 1611, and
-written above 20 Years before. For he teaches there how the interior Bow
-is made in round Drops of Rain by two Refractions of the Sun's Light,
-and one Reflexion between them, and the exterior by two Refractions, and
-two sorts of Reflexions between them in each Drop of Water, and proves
-his Explications by Experiments made with a Phial full of Water, and
-with Globes of Glass filled with Water, and placed in the Sun to make
-the Colours of the two Bows appear in them. The same Explication
-_Des-Cartes_ hath pursued in his Meteors, and mended that of the
-exterior Bow. But whilst they understood not the true Origin of Colours,
-it's necessary to pursue it here a little farther. For understanding
-therefore how the Bow is made, let a Drop of Rain, or any other
-spherical transparent Body be represented by the Sphere BNFG, [in _Fig._
-14.] described with the Center C, and Semi-diameter CN. And let AN be
-one of the Sun's Rays incident upon it at N, and thence refracted to F,
-where let it either go out of the Sphere by Refraction towards V, or be
-reflected to G; and at G let it either go out by Refraction to R, or be
-reflected to H; and at H let it go out by Refraction towards S, cutting
-the incident Ray in Y. Produce AN and RG, till they meet in X, and upon
-AX and NF, let fall the Perpendiculars CD and CE, and produce CD till it
-fall upon the Circumference at L. Parallel to the incident Ray AN draw
-the Diameter BQ, and let the Sine of Incidence out of Air into Water be
-to the Sine of Refraction as I to R. Now, if you suppose the Point of
-Incidence N to move from the Point B, continually till it come to L, the
-Arch QF will first increase and then decrease, and so will the Angle AXR
-which the Rays AN and GR contain; and the Arch QF and Angle AXR will be
-biggest when ND is to CN as sqrt(II - RR) to sqrt(3)RR, in which
-case NE will be to ND as 2R to I. Also the Angle AYS, which the Rays AN
-and HS contain will first decrease, and then increase and grow least
-when ND is to CN as sqrt(II - RR) to sqrt(8)RR, in which case NE
-will be to ND, as 3R to I. And so the Angle which the next emergent Ray
-(that is, the emergent Ray after three Reflexions) contains with the
-incident Ray AN will come to its Limit when ND is to CN as sqrt(II -
-RR) to sqrt(15)RR, in which case NE will be to ND as 4R to I. And the
-Angle which the Ray next after that Emergent, that is, the Ray emergent
-after four Reflexions, contains with the Incident, will come to its
-Limit, when ND is to CN as sqrt(II - RR) to sqrt(24)RR, in which
-case NE will be to ND as 5R to I; and so on infinitely, the Numbers 3,
-8, 15, 24, &c. being gather'd by continual Addition of the Terms of the
-arithmetical Progression 3, 5, 7, 9, &c. The Truth of all this
-Mathematicians will easily examine.[M]
-
-Now it is to be observed, that as when the Sun comes to his Tropicks,
-Days increase and decrease but a very little for a great while together;
-so when by increasing the distance CD, these Angles come to their
-Limits, they vary their quantity but very little for some time together,
-and therefore a far greater number of the Rays which fall upon all the
-Points N in the Quadrant BL, shall emerge in the Limits of these Angles,
-than in any other Inclinations. And farther it is to be observed, that
-the Rays which differ in Refrangibility will have different Limits of
-their Angles of Emergence, and by consequence according to their
-different Degrees of Refrangibility emerge most copiously in different
-Angles, and being separated from one another appear each in their proper
-Colours. And what those Angles are may be easily gather'd from the
-foregoing Theorem by Computation.
-
-For in the least refrangible Rays the Sines I and R (as was found above)
-are 108 and 81, and thence by Computation the greatest Angle AXR will be
-found 42 Degrees and 2 Minutes, and the least Angle AYS, 50 Degrees and
-57 Minutes. And in the most refrangible Rays the Sines I and R are 109
-and 81, and thence by Computation the greatest Angle AXR will be found
-40 Degrees and 17 Minutes, and the least Angle AYS 54 Degrees and 7
-Minutes.
-
-Suppose now that O [in _Fig._ 15.] is the Spectator's Eye, and OP a Line
-drawn parallel to the Sun's Rays and let POE, POF, POG, POH, be Angles
-of 40 Degr. 17 Min. 42 Degr. 2 Min. 50 Degr. 57 Min. and 54 Degr. 7 Min.
-respectively, and these Angles turned about their common Side OP, shall
-with their other Sides OE, OF; OG, OH, describe the Verges of two
-Rain-bows AF, BE and CHDG. For if E, F, G, H, be drops placed any where
-in the conical Superficies described by OE, OF, OG, OH, and be
-illuminated by the Sun's Rays SE, SF, SG, SH; the Angle SEO being equal
-to the Angle POE, or 40 Degr. 17 Min. shall be the greatest Angle in
-which the most refrangible Rays can after one Reflexion be refracted to
-the Eye, and therefore all the Drops in the Line OE shall send the most
-refrangible Rays most copiously to the Eye, and thereby strike the
-Senses with the deepest violet Colour in that Region. And in like
-manner the Angle SFO being equal to the Angle POF, or 42 Degr. 2 Min.
-shall be the greatest in which the least refrangible Rays after one
-Reflexion can emerge out of the Drops, and therefore those Rays shall
-come most copiously to the Eye from the Drops in the Line OF, and strike
-the Senses with the deepest red Colour in that Region. And by the same
-Argument, the Rays which have intermediate Degrees of Refrangibility
-shall come most copiously from Drops between E and F, and strike the
-Senses with the intermediate Colours, in the Order which their Degrees
-of Refrangibility require, that is in the Progress from E to F, or from
-the inside of the Bow to the outside in this order, violet, indigo,
-blue, green, yellow, orange, red. But the violet, by the mixture of the
-white Light of the Clouds, will appear faint and incline to purple.
-
-[Illustration: FIG. 15.]
-
-Again, the Angle SGO being equal to the Angle POG, or 50 Gr. 51 Min.
-shall be the least Angle in which the least refrangible Rays can after
-two Reflexions emerge out of the Drops, and therefore the least
-refrangible Rays shall come most copiously to the Eye from the Drops in
-the Line OG, and strike the Sense with the deepest red in that Region.
-And the Angle SHO being equal to the Angle POH, or 54 Gr. 7 Min. shall
-be the least Angle, in which the most refrangible Rays after two
-Reflexions can emerge out of the Drops; and therefore those Rays shall
-come most copiously to the Eye from the Drops in the Line OH, and strike
-the Senses with the deepest violet in that Region. And by the same
-Argument, the Drops in the Regions between G and H shall strike the
-Sense with the intermediate Colours in the Order which their Degrees of
-Refrangibility require, that is, in the Progress from G to H, or from
-the inside of the Bow to the outside in this order, red, orange, yellow,
-green, blue, indigo, violet. And since these four Lines OE, OF, OG, OH,
-may be situated any where in the above-mention'd conical Superficies;
-what is said of the Drops and Colours in these Lines is to be understood
-of the Drops and Colours every where in those Superficies.
-
-Thus shall there be made two Bows of Colours, an interior and stronger,
-by one Reflexion in the Drops, and an exterior and fainter by two; for
-the Light becomes fainter by every Reflexion. And their Colours shall
-lie in a contrary Order to one another, the red of both Bows bordering
-upon the Space GF, which is between the Bows. The Breadth of the
-interior Bow EOF measured cross the Colours shall be 1 Degr. 45 Min. and
-the Breadth of the exterior GOH shall be 3 Degr. 10 Min. and the
-distance between them GOF shall be 8 Gr. 15 Min. the greatest
-Semi-diameter of the innermost, that is, the Angle POF being 42 Gr. 2
-Min. and the least Semi-diameter of the outermost POG, being 50 Gr. 57
-Min. These are the Measures of the Bows, as they would be were the Sun
-but a Point; for by the Breadth of his Body, the Breadth of the Bows
-will be increased, and their Distance decreased by half a Degree, and so
-the breadth of the interior Iris will be 2 Degr. 15 Min. that of the
-exterior 3 Degr. 40 Min. their distance 8 Degr. 25 Min. the greatest
-Semi-diameter of the interior Bow 42 Degr. 17 Min. and the least of the
-exterior 50 Degr. 42 Min. And such are the Dimensions of the Bows in the
-Heavens found to be very nearly, when their Colours appear strong and
-perfect. For once, by such means as I then had, I measured the greatest
-Semi-diameter of the interior Iris about 42 Degrees, and the breadth of
-the red, yellow and green in that Iris 63 or 64 Minutes, besides the
-outmost faint red obscured by the brightness of the Clouds, for which we
-may allow 3 or 4 Minutes more. The breadth of the blue was about 40
-Minutes more besides the violet, which was so much obscured by the
-brightness of the Clouds, that I could not measure its breadth. But
-supposing the breadth of the blue and violet together to equal that of
-the red, yellow and green together, the whole breadth of this Iris will
-be about 2-1/4 Degrees, as above. The least distance between this Iris
-and the exterior Iris was about 8 Degrees and 30 Minutes. The exterior
-Iris was broader than the interior, but so faint, especially on the blue
-side, that I could not measure its breadth distinctly. At another time
-when both Bows appeared more distinct, I measured the breadth of the
-interior Iris 2 Gr. 10´, and the breadth of the red, yellow and green in
-the exterior Iris, was to the breadth of the same Colours in the
-interior as 3 to 2.
-
-This Explication of the Rain-bow is yet farther confirmed by the known
-Experiment (made by _Antonius de Dominis_ and _Des-Cartes_) of hanging
-up any where in the Sun-shine a Glass Globe filled with Water, and
-viewing it in such a posture, that the Rays which come from the Globe to
-the Eye may contain with the Sun's Rays an Angle of either 42 or 50
-Degrees. For if the Angle be about 42 or 43 Degrees, the Spectator
-(suppose at O) shall see a full red Colour in that side of the Globe
-opposed to the Sun as 'tis represented at F, and if that Angle become
-less (suppose by depressing the Globe to E) there will appear other
-Colours, yellow, green and blue successive in the same side of the
-Globe. But if the Angle be made about 50 Degrees (suppose by lifting up
-the Globe to G) there will appear a red Colour in that side of the Globe
-towards the Sun, and if the Angle be made greater (suppose by lifting
-up the Globe to H) the red will turn successively to the other Colours,
-yellow, green and blue. The same thing I have tried, by letting a Globe
-rest, and raising or depressing the Eye, or otherwise moving it to make
-the Angle of a just magnitude.
-
-I have heard it represented, that if the Light of a Candle be refracted
-by a Prism to the Eye; when the blue Colour falls upon the Eye, the
-Spectator shall see red in the Prism, and when the red falls upon the
-Eye he shall see blue; and if this were certain, the Colours of the
-Globe and Rain-bow ought to appear in a contrary order to what we find.
-But the Colours of the Candle being very faint, the mistake seems to
-arise from the difficulty of discerning what Colours fall on the Eye.
-For, on the contrary, I have sometimes had occasion to observe in the
-Sun's Light refracted by a Prism, that the Spectator always sees that
-Colour in the Prism which falls upon his Eye. And the same I have found
-true also in Candle-light. For when the Prism is moved slowly from the
-Line which is drawn directly from the Candle to the Eye, the red appears
-first in the Prism and then the blue, and therefore each of them is seen
-when it falls upon the Eye. For the red passes over the Eye first, and
-then the blue.
-
-The Light which comes through drops of Rain by two Refractions without
-any Reflexion, ought to appear strongest at the distance of about 26
-Degrees from the Sun, and to decay gradually both ways as the distance
-from him increases and decreases. And the same is to be understood of
-Light transmitted through spherical Hail-stones. And if the Hail be a
-little flatted, as it often is, the Light transmitted may grow so strong
-at a little less distance than that of 26 Degrees, as to form a Halo
-about the Sun or Moon; which Halo, as often as the Hail-stones are duly
-figured may be colour'd, and then it must be red within by the least
-refrangible Rays, and blue without by the most refrangible ones,
-especially if the Hail-stones have opake Globules of Snow in their
-center to intercept the Light within the Halo (as _Hugenius_ has
-observ'd) and make the inside thereof more distinctly defined than it
-would otherwise be. For such Hail-stones, though spherical, by
-terminating the Light by the Snow, may make a Halo red within and
-colourless without, and darker in the red than without, as Halos used to
-be. For of those Rays which pass close by the Snow the Rubriform will be
-least refracted, and so come to the Eye in the directest Lines.
-
-The Light which passes through a drop of Rain after two Refractions, and
-three or more Reflexions, is scarce strong enough to cause a sensible
-Bow; but in those Cylinders of Ice by which _Hugenius_ explains the
-_Parhelia_, it may perhaps be sensible.
-
-
-_PROP._ X. PROB. V.
-
-_By the discovered Properties of Light to explain the permanent Colours
-of Natural Bodies._
-
-These Colours arise from hence, that some natural Bodies reflect some
-sorts of Rays, others other sorts more copiously than the rest. Minium
-reflects the least refrangible or red-making Rays most copiously, and
-thence appears red. Violets reflect the most refrangible most copiously,
-and thence have their Colour, and so of other Bodies. Every Body
-reflects the Rays of its own Colour more copiously than the rest, and
-from their excess and predominance in the reflected Light has its
-Colour.
-
-_Exper._ 17. For if in the homogeneal Lights obtained by the solution of
-the Problem proposed in the fourth Proposition of the first Part of this
-Book, you place Bodies of several Colours, you will find, as I have
-done, that every Body looks most splendid and luminous in the Light of
-its own Colour. Cinnaber in the homogeneal red Light is most
-resplendent, in the green Light it is manifestly less resplendent, and
-in the blue Light still less. Indigo in the violet blue Light is most
-resplendent, and its splendor is gradually diminish'd, as it is removed
-thence by degrees through the green and yellow Light to the red. By a
-Leek the green Light, and next that the blue and yellow which compound
-green, are more strongly reflected than the other Colours red and
-violet, and so of the rest. But to make these Experiments the more
-manifest, such Bodies ought to be chosen as have the fullest and most
-vivid Colours, and two of those Bodies are to be compared together.
-Thus, for instance, if Cinnaber and _ultra_-marine blue, or some other
-full blue be held together in the red homogeneal Light, they will both
-appear red, but the Cinnaber will appear of a strongly luminous and
-resplendent red, and the _ultra_-marine blue of a faint obscure and dark
-red; and if they be held together in the blue homogeneal Light, they
-will both appear blue, but the _ultra_-marine will appear of a strongly
-luminous and resplendent blue, and the Cinnaber of a faint and dark
-blue. Which puts it out of dispute that the Cinnaber reflects the red
-Light much more copiously than the _ultra_-marine doth, and the
-_ultra_-marine reflects the blue Light much more copiously than the
-Cinnaber doth. The same Experiment may be tried successfully with red
-Lead and Indigo, or with any other two colour'd Bodies, if due allowance
-be made for the different strength or weakness of their Colour and
-Light.
-
-And as the reason of the Colours of natural Bodies is evident by these
-Experiments, so it is farther confirmed and put past dispute by the two
-first Experiments of the first Part, whereby 'twas proved in such Bodies
-that the reflected Lights which differ in Colours do differ also in
-degrees of Refrangibility. For thence it's certain, that some Bodies
-reflect the more refrangible, others the less refrangible Rays more
-copiously.
-
-And that this is not only a true reason of these Colours, but even the
-only reason, may appear farther from this Consideration, that the Colour
-of homogeneal Light cannot be changed by the Reflexion of natural
-Bodies.
-
-For if Bodies by Reflexion cannot in the least change the Colour of any
-one sort of Rays, they cannot appear colour'd by any other means than by
-reflecting those which either are of their own Colour, or which by
-mixture must produce it.
-
-But in trying Experiments of this kind care must be had that the Light
-be sufficiently homogeneal. For if Bodies be illuminated by the ordinary
-prismatick Colours, they will appear neither of their own Day-light
-Colours, nor of the Colour of the Light cast on them, but of some middle
-Colour between both, as I have found by Experience. Thus red Lead (for
-instance) illuminated with the ordinary prismatick green will not appear
-either red or green, but orange or yellow, or between yellow and green,
-accordingly as the green Light by which 'tis illuminated is more or less
-compounded. For because red Lead appears red when illuminated with white
-Light, wherein all sorts of Rays are equally mix'd, and in the green
-Light all sorts of Rays are not equally mix'd, the Excess of the
-yellow-making, green-making and blue-making Rays in the incident green
-Light, will cause those Rays to abound so much in the reflected Light,
-as to draw the Colour from red towards their Colour. And because the red
-Lead reflects the red-making Rays most copiously in proportion to their
-number, and next after them the orange-making and yellow-making Rays;
-these Rays in the reflected Light will be more in proportion to the
-Light than they were in the incident green Light, and thereby will draw
-the reflected Light from green towards their Colour. And therefore the
-red Lead will appear neither red nor green, but of a Colour between
-both.
-
-In transparently colour'd Liquors 'tis observable, that their Colour
-uses to vary with their thickness. Thus, for instance, a red Liquor in a
-conical Glass held between the Light and the Eye, looks of a pale and
-dilute yellow at the bottom where 'tis thin, and a little higher where
-'tis thicker grows orange, and where 'tis still thicker becomes red, and
-where 'tis thickest the red is deepest and darkest. For it is to be
-conceiv'd that such a Liquor stops the indigo-making and violet-making
-Rays most easily, the blue-making Rays more difficultly, the
-green-making Rays still more difficultly, and the red-making most
-difficultly: And that if the thickness of the Liquor be only so much as
-suffices to stop a competent number of the violet-making and
-indigo-making Rays, without diminishing much the number of the rest, the
-rest must (by _Prop._ 6. _Part_ 2.) compound a pale yellow. But if the
-Liquor be so much thicker as to stop also a great number of the
-blue-making Rays, and some of the green-making, the rest must compound
-an orange; and where it is so thick as to stop also a great number of
-the green-making and a considerable number of the yellow-making, the
-rest must begin to compound a red, and this red must grow deeper and
-darker as the yellow-making and orange-making Rays are more and more
-stopp'd by increasing the thickness of the Liquor, so that few Rays
-besides the red-making can get through.
-
-Of this kind is an Experiment lately related to me by Mr. _Halley_, who,
-in diving deep into the Sea in a diving Vessel, found in a clear
-Sun-shine Day, that when he was sunk many Fathoms deep into the Water
-the upper part of his Hand on which the Sun shone directly through the
-Water and through a small Glass Window in the Vessel appeared of a red
-Colour, like that of a Damask Rose, and the Water below and the under
-part of his Hand illuminated by Light reflected from the Water below
-look'd green. For thence it may be gather'd, that the Sea-Water reflects
-back the violet and blue-making Rays most easily, and lets the
-red-making Rays pass most freely and copiously to great Depths. For
-thereby the Sun's direct Light at all great Depths, by reason of the
-predominating red-making Rays, must appear red; and the greater the
-Depth is, the fuller and intenser must that red be. And at such Depths
-as the violet-making Rays scarce penetrate unto, the blue-making,
-green-making, and yellow-making Rays being reflected from below more
-copiously than the red-making ones, must compound a green.
-
-Now, if there be two Liquors of full Colours, suppose a red and blue,
-and both of them so thick as suffices to make their Colours sufficiently
-full; though either Liquor be sufficiently transparent apart, yet will
-you not be able to see through both together. For, if only the
-red-making Rays pass through one Liquor, and only the blue-making
-through the other, no Rays can pass through both. This Mr. _Hook_ tried
-casually with Glass Wedges filled with red and blue Liquors, and was
-surprized at the unexpected Event, the reason of it being then unknown;
-which makes me trust the more to his Experiment, though I have not tried
-it my self. But he that would repeat it, must take care the Liquors be
-of very good and full Colours.
-
-Now, whilst Bodies become coloured by reflecting or transmitting this or
-that sort of Rays more copiously than the rest, it is to be conceived
-that they stop and stifle in themselves the Rays which they do not
-reflect or transmit. For, if Gold be foliated and held between your Eye
-and the Light, the Light looks of a greenish blue, and therefore massy
-Gold lets into its Body the blue-making Rays to be reflected to and fro
-within it till they be stopp'd and stifled, whilst it reflects the
-yellow-making outwards, and thereby looks yellow. And much after the
-same manner that Leaf Gold is yellow by reflected, and blue by
-transmitted Light, and massy Gold is yellow in all Positions of the Eye;
-there are some Liquors, as the Tincture of _Lignum Nephriticum_, and
-some sorts of Glass which transmit one sort of Light most copiously, and
-reflect another sort, and thereby look of several Colours, according to
-the Position of the Eye to the Light. But, if these Liquors or Glasses
-were so thick and massy that no Light could get through them, I question
-not but they would like all other opake Bodies appear of one and the
-same Colour in all Positions of the Eye, though this I cannot yet affirm
-by Experience. For all colour'd Bodies, so far as my Observation
-reaches, may be seen through if made sufficiently thin, and therefore
-are in some measure transparent, and differ only in degrees of
-Transparency from tinged transparent Liquors; these Liquors, as well as
-those Bodies, by a sufficient Thickness becoming opake. A transparent
-Body which looks of any Colour by transmitted Light, may also look of
-the same Colour by reflected Light, the Light of that Colour being
-reflected by the farther Surface of the Body, or by the Air beyond it.
-And then the reflected Colour will be diminished, and perhaps cease, by
-making the Body very thick, and pitching it on the backside to diminish
-the Reflexion of its farther Surface, so that the Light reflected from
-the tinging Particles may predominate. In such Cases, the Colour of the
-reflected Light will be apt to vary from that of the Light transmitted.
-But whence it is that tinged Bodies and Liquors reflect some sort of
-Rays, and intromit or transmit other sorts, shall be said in the next
-Book. In this Proposition I content my self to have put it past dispute,
-that Bodies have such Properties, and thence appear colour'd.
-
-
-_PROP._ XI. PROB. VI.
-
-_By mixing colour'd Lights to compound a beam of Light of the same
-Colour and Nature with a beam of the Sun's direct Light, and therein to
-experience the Truth of the foregoing Propositions._
-
-[Illustration: FIG. 16.]
-
-Let ABC _abc_ [in _Fig._ 16.] represent a Prism, by which the Sun's
-Light let into a dark Chamber through the Hole F, may be refracted
-towards the Lens MN, and paint upon it at _p_, _q_, _r_, _s_, and _t_,
-the usual Colours violet, blue, green, yellow, and red, and let the
-diverging Rays by the Refraction of this Lens converge again towards X,
-and there, by the mixture of all those their Colours, compound a white
-according to what was shewn above. Then let another Prism DEG _deg_,
-parallel to the former, be placed at X, to refract that white Light
-upwards towards Y. Let the refracting Angles of the Prisms, and their
-distances from the Lens be equal, so that the Rays which converged from
-the Lens towards X, and without Refraction, would there have crossed and
-diverged again, may by the Refraction of the second Prism be reduced
-into Parallelism and diverge no more. For then those Rays will recompose
-a beam of white Light XY. If the refracting Angle of either Prism be the
-bigger, that Prism must be so much the nearer to the Lens. You will know
-when the Prisms and the Lens are well set together, by observing if the
-beam of Light XY, which comes out of the second Prism be perfectly white
-to the very edges of the Light, and at all distances from the Prism
-continue perfectly and totally white like a beam of the Sun's Light. For
-till this happens, the Position of the Prisms and Lens to one another
-must be corrected; and then if by the help of a long beam of Wood, as is
-represented in the Figure, or by a Tube, or some other such Instrument,
-made for that Purpose, they be made fast in that Situation, you may try
-all the same Experiments in this compounded beam of Light XY, which have
-been made in the Sun's direct Light. For this compounded beam of Light
-has the same appearance, and is endow'd with all the same Properties
-with a direct beam of the Sun's Light, so far as my Observation reaches.
-And in trying Experiments in this beam you may by stopping any of the
-Colours, _p_, _q_, _r_, _s_, and _t_, at the Lens, see how the Colours
-produced in the Experiments are no other than those which the Rays had
-at the Lens before they entered the Composition of this Beam: And by
-consequence, that they arise not from any new Modifications of the Light
-by Refractions and Reflexions, but from the various Separations and
-Mixtures of the Rays originally endow'd with their colour-making
-Qualities.
-
-So, for instance, having with a Lens 4-1/4 Inches broad, and two Prisms
-on either hand 6-1/4 Feet distant from the Lens, made such a beam of
-compounded Light; to examine the reason of the Colours made by Prisms, I
-refracted this compounded beam of Light XY with another Prism HIK _kh_,
-and thereby cast the usual Prismatick Colours PQRST upon the Paper LV
-placed behind. And then by stopping any of the Colours _p_, _q_, _r_,
-_s_, _t_, at the Lens, I found that the same Colour would vanish at the
-Paper. So if the Purple _p_ was stopp'd at the Lens, the Purple P upon
-the Paper would vanish, and the rest of the Colours would remain
-unalter'd, unless perhaps the blue, so far as some purple latent in it
-at the Lens might be separated from it by the following Refractions. And
-so by intercepting the green upon the Lens, the green R upon the Paper
-would vanish, and so of the rest; which plainly shews, that as the white
-beam of Light XY was compounded of several Lights variously colour'd at
-the Lens, so the Colours which afterwards emerge out of it by new
-Refractions are no other than those of which its Whiteness was
-compounded. The Refraction of the Prism HIK _kh_ generates the Colours
-PQRST upon the Paper, not by changing the colorific Qualities of the
-Rays, but by separating the Rays which had the very same colorific
-Qualities before they enter'd the Composition of the refracted beam of
-white Light XY. For otherwise the Rays which were of one Colour at the
-Lens might be of another upon the Paper, contrary to what we find.
-
-So again, to examine the reason of the Colours of natural Bodies, I
-placed such Bodies in the Beam of Light XY, and found that they all
-appeared there of those their own Colours which they have in Day-light,
-and that those Colours depend upon the Rays which had the same Colours
-at the Lens before they enter'd the Composition of that beam. Thus, for
-instance, Cinnaber illuminated by this beam appears of the same red
-Colour as in Day-light; and if at the Lens you intercept the
-green-making and blue-making Rays, its redness will become more full and
-lively: But if you there intercept the red-making Rays, it will not any
-longer appear red, but become yellow or green, or of some other Colour,
-according to the sorts of Rays which you do not intercept. So Gold in
-this Light XY appears of the same yellow Colour as in Day-light, but by
-intercepting at the Lens a due Quantity of the yellow-making Rays it
-will appear white like Silver (as I have tried) which shews that its
-yellowness arises from the Excess of the intercepted Rays tinging that
-Whiteness with their Colour when they are let pass. So the Infusion of
-_Lignum Nephriticum_ (as I have also tried) when held in this beam of
-Light XY, looks blue by the reflected Part of the Light, and red by the
-transmitted Part of it, as when 'tis view'd in Day-light; but if you
-intercept the blue at the Lens the Infusion will lose its reflected blue
-Colour, whilst its transmitted red remains perfect, and by the loss of
-some blue-making Rays, wherewith it was allay'd, becomes more intense
-and full. And, on the contrary, if the red and orange-making Rays be
-intercepted at the Lens, the Infusion will lose its transmitted red,
-whilst its blue will remain and become more full and perfect. Which
-shews, that the Infusion does not tinge the Rays with blue and red, but
-only transmits those most copiously which were red-making before, and
-reflects those most copiously which were blue-making before. And after
-the same manner may the Reasons of other Phænomena be examined, by
-trying them in this artificial beam of Light XY.
-
-FOOTNOTES:
-
-[I] See p. 59.
-
-[J] _See our_ Author's Lect. Optic. _Part_ II. _Sect._ II. _p._ 239.
-
-[K] _As is done in our_ Author's Lect. Optic. _Part_ I. _Sect._ III.
-_and_ IV. _and Part_ II. _Sect._ II.
-
-[L] _See our_ Author's Lect. Optic. _Part_ II. _Sect._ II. _pag._ 269,
-&c.
-
-[M] _This is demonstrated in our_ Author's Lect. Optic. _Part_ I.
-_Sect._ IV. _Prop._ 35 _and_ 36.
-
-
-
-
-THE
-
-SECOND BOOK
-
-OF
-
-OPTICKS
-
-
-
-
-_PART I._
-
-_Observations concerning the Reflexions, Refractions, and Colours of
-thin transparent Bodies._
-
-
-It has been observed by others, that transparent Substances, as Glass,
-Water, Air, &c. when made very thin by being blown into Bubbles, or
-otherwise formed into Plates, do exhibit various Colours according to
-their various thinness, altho' at a greater thickness they appear very
-clear and colourless. In the former Book I forbore to treat of these
-Colours, because they seemed of a more difficult Consideration, and were
-not necessary for establishing the Properties of Light there discoursed
-of. But because they may conduce to farther Discoveries for compleating
-the Theory of Light, especially as to the constitution of the parts of
-natural Bodies, on which their Colours or Transparency depend; I have
-here set down an account of them. To render this Discourse short and
-distinct, I have first described the principal of my Observations, and
-then consider'd and made use of them. The Observations are these.
-
-_Obs._ 1. Compressing two Prisms hard together that their sides (which
-by chance were a very little convex) might somewhere touch one another:
-I found the place in which they touched to become absolutely
-transparent, as if they had there been one continued piece of Glass. For
-when the Light fell so obliquely on the Air, which in other places was
-between them, as to be all reflected; it seemed in that place of contact
-to be wholly transmitted, insomuch that when look'd upon, it appeared
-like a black or dark spot, by reason that little or no sensible Light
-was reflected from thence, as from other places; and when looked through
-it seemed (as it were) a hole in that Air which was formed into a thin
-Plate, by being compress'd between the Glasses. And through this hole
-Objects that were beyond might be seen distinctly, which could not at
-all be seen through other parts of the Glasses where the Air was
-interjacent. Although the Glasses were a little convex, yet this
-transparent spot was of a considerable breadth, which breadth seemed
-principally to proceed from the yielding inwards of the parts of the
-Glasses, by reason of their mutual pressure. For by pressing them very
-hard together it would become much broader than otherwise.
-
-_Obs._ 2. When the Plate of Air, by turning the Prisms about their
-common Axis, became so little inclined to the incident Rays, that some
-of them began to be transmitted, there arose in it many slender Arcs of
-Colours which at first were shaped almost like the Conchoid, as you see
-them delineated in the first Figure. And by continuing the Motion of the
-Prisms, these Arcs increased and bended more and more about the said
-transparent spot, till they were compleated into Circles or Rings
-incompassing it, and afterwards continually grew more and more
-contracted.
-
-[Illustration: FIG. 1.]
-
-These Arcs at their first appearance were of a violet and blue Colour,
-and between them were white Arcs of Circles, which presently by
-continuing the Motion of the Prisms became a little tinged in their
-inward Limbs with red and yellow, and to their outward Limbs the blue
-was adjacent. So that the order of these Colours from the central dark
-spot, was at that time white, blue, violet; black, red, orange, yellow,
-white, blue, violet, &c. But the yellow and red were much fainter than
-the blue and violet.
-
-The Motion of the Prisms about their Axis being continued, these Colours
-contracted more and more, shrinking towards the whiteness on either
-side of it, until they totally vanished into it. And then the Circles in
-those parts appear'd black and white, without any other Colours
-intermix'd. But by farther moving the Prisms about, the Colours again
-emerged out of the whiteness, the violet and blue at its inward Limb,
-and at its outward Limb the red and yellow. So that now their order from
-the central Spot was white, yellow, red; black; violet, blue, white,
-yellow, red, &c. contrary to what it was before.
-
-_Obs._ 3. When the Rings or some parts of them appeared only black and
-white, they were very distinct and well defined, and the blackness
-seemed as intense as that of the central Spot. Also in the Borders of
-the Rings, where the Colours began to emerge out of the whiteness, they
-were pretty distinct, which made them visible to a very great multitude.
-I have sometimes number'd above thirty Successions (reckoning every
-black and white Ring for one Succession) and seen more of them, which by
-reason of their smalness I could not number. But in other Positions of
-the Prisms, at which the Rings appeared of many Colours, I could not
-distinguish above eight or nine of them, and the Exterior of those were
-very confused and dilute.
-
-In these two Observations to see the Rings distinct, and without any
-other Colour than Black and white, I found it necessary to hold my Eye
-at a good distance from them. For by approaching nearer, although in the
-same inclination of my Eye to the Plane of the Rings, there emerged a
-bluish Colour out of the white, which by dilating it self more and more
-into the black, render'd the Circles less distinct, and left the white a
-little tinged with red and yellow. I found also by looking through a
-slit or oblong hole, which was narrower than the pupil of my Eye, and
-held close to it parallel to the Prisms, I could see the Circles much
-distincter and visible to a far greater number than otherwise.
-
-_Obs._ 4. To observe more nicely the order of the Colours which arose
-out of the white Circles as the Rays became less and less inclined to
-the Plate of Air; I took two Object-glasses, the one a Plano-convex for
-a fourteen Foot Telescope, and the other a large double Convex for one
-of about fifty Foot; and upon this, laying the other with its plane side
-downwards, I pressed them slowly together, to make the Colours
-successively emerge in the middle of the Circles, and then slowly lifted
-the upper Glass from the lower to make them successively vanish again in
-the same place. The Colour, which by pressing the Glasses together,
-emerged last in the middle of the other Colours, would upon its first
-appearance look like a Circle of a Colour almost uniform from the
-circumference to the center and by compressing the Glasses still more,
-grow continually broader until a new Colour emerged in its center, and
-thereby it became a Ring encompassing that new Colour. And by
-compressing the Glasses still more, the diameter of this Ring would
-increase, and the breadth of its Orbit or Perimeter decrease until
-another new Colour emerged in the center of the last: And so on until a
-third, a fourth, a fifth, and other following new Colours successively
-emerged there, and became Rings encompassing the innermost Colour, the
-last of which was the black Spot. And, on the contrary, by lifting up
-the upper Glass from the lower, the diameter of the Rings would
-decrease, and the breadth of their Orbit increase, until their Colours
-reached successively to the center; and then they being of a
-considerable breadth, I could more easily discern and distinguish their
-Species than before. And by this means I observ'd their Succession and
-Quantity to be as followeth.
-
-Next to the pellucid central Spot made by the contact of the Glasses
-succeeded blue, white, yellow, and red. The blue was so little in
-quantity, that I could not discern it in the Circles made by the Prisms,
-nor could I well distinguish any violet in it, but the yellow and red
-were pretty copious, and seemed about as much in extent as the white,
-and four or five times more than the blue. The next Circuit in order of
-Colours immediately encompassing these were violet, blue, green, yellow,
-and red: and these were all of them copious and vivid, excepting the
-green, which was very little in quantity, and seemed much more faint and
-dilute than the other Colours. Of the other four, the violet was the
-least in extent, and the blue less than the yellow or red. The third
-Circuit or Order was purple, blue, green, yellow, and red; in which the
-purple seemed more reddish than the violet in the former Circuit, and
-the green was much more conspicuous, being as brisk and copious as any
-of the other Colours, except the yellow, but the red began to be a
-little faded, inclining very much to purple. After this succeeded the
-fourth Circuit of green and red. The green was very copious and lively,
-inclining on the one side to blue, and on the other side to yellow. But
-in this fourth Circuit there was neither violet, blue, nor yellow, and
-the red was very imperfect and dirty. Also the succeeding Colours became
-more and more imperfect and dilute, till after three or four revolutions
-they ended in perfect whiteness. Their form, when the Glasses were most
-compress'd so as to make the black Spot appear in the center, is
-delineated in the second Figure; where _a_, _b_, _c_, _d_, _e_: _f_,
-_g_, _h_, _i_, _k_: _l_, _m_, _n_, _o_, _p_: _q_, _r_: _s_, _t_: _v_,
-_x_: _y_, _z_, denote the Colours reckon'd in order from the center,
-black, blue, white, yellow, red: violet, blue, green, yellow, red:
-purple, blue, green, yellow, red: green, red: greenish blue, red:
-greenish blue, pale red: greenish blue, reddish white.
-
-[Illustration: FIG. 2.]
-
-_Obs._ 5. To determine the interval of the Glasses, or thickness of the
-interjacent Air, by which each Colour was produced, I measured the
-Diameters of the first six Rings at the most lucid part of their Orbits,
-and squaring them, I found their Squares to be in the arithmetical
-Progression of the odd Numbers, 1, 3, 5, 7, 9, 11. And since one of
-these Glasses was plane, and the other spherical, their Intervals at
-those Rings must be in the same Progression. I measured also the
-Diameters of the dark or faint Rings between the more lucid Colours, and
-found their Squares to be in the arithmetical Progression of the even
-Numbers, 2, 4, 6, 8, 10, 12. And it being very nice and difficult to
-take these measures exactly; I repeated them divers times at divers
-parts of the Glasses, that by their Agreement I might be confirmed in
-them. And the same method I used in determining some others of the
-following Observations.
-
-_Obs._ 6. The Diameter of the sixth Ring at the most lucid part of its
-Orbit was 58/100 parts of an Inch, and the Diameter of the Sphere on
-which the double convex Object-glass was ground was about 102 Feet, and
-hence I gathered the thickness of the Air or Aereal Interval of the
-Glasses at that Ring. But some time after, suspecting that in making
-this Observation I had not determined the Diameter of the Sphere with
-sufficient accurateness, and being uncertain whether the Plano-convex
-Glass was truly plane, and not something concave or convex on that side
-which I accounted plane; and whether I had not pressed the Glasses
-together, as I often did, to make them touch; (For by pressing such
-Glasses together their parts easily yield inwards, and the Rings thereby
-become sensibly broader than they would be, did the Glasses keep their
-Figures.) I repeated the Experiment, and found the Diameter of the sixth
-lucid Ring about 55/100 parts of an Inch. I repeated the Experiment also
-with such an Object-glass of another Telescope as I had at hand. This
-was a double Convex ground on both sides to one and the same Sphere, and
-its Focus was distant from it 83-2/5 Inches. And thence, if the Sines of
-Incidence and Refraction of the bright yellow Light be assumed in
-proportion as 11 to 17, the Diameter of the Sphere to which the Glass
-was figured will by computation be found 182 Inches. This Glass I laid
-upon a flat one, so that the black Spot appeared in the middle of the
-Rings of Colours without any other Pressure than that of the weight of
-the Glass. And now measuring the Diameter of the fifth dark Circle as
-accurately as I could, I found it the fifth part of an Inch precisely.
-This Measure was taken with the points of a pair of Compasses on the
-upper Surface on the upper Glass, and my Eye was about eight or nine
-Inches distance from the Glass, almost perpendicularly over it, and the
-Glass was 1/6 of an Inch thick, and thence it is easy to collect that
-the true Diameter of the Ring between the Glasses was greater than its
-measur'd Diameter above the Glasses in the Proportion of 80 to 79, or
-thereabouts, and by consequence equal to 16/79 parts of an Inch, and its
-true Semi-diameter equal to 8/79 parts. Now as the Diameter of the
-Sphere (182 Inches) is to the Semi-diameter of this fifth dark Ring
-(8/79 parts of an Inch) so is this Semi-diameter to the thickness of the
-Air at this fifth dark Ring; which is therefore 32/567931 or
-100/1774784. Parts of an Inch; and the fifth Part thereof, _viz._ the
-1/88739 Part of an Inch, is the Thickness of the Air at the first of
-these dark Rings.
-
-The same Experiment I repeated with another double convex Object-glass
-ground on both sides to one and the same Sphere. Its Focus was distant
-from it 168-1/2 Inches, and therefore the Diameter of that Sphere was
-184 Inches. This Glass being laid upon the same plain Glass, the
-Diameter of the fifth of the dark Rings, when the black Spot in their
-Center appear'd plainly without pressing the Glasses, was by the measure
-of the Compasses upon the upper Glass 121/600 Parts of an Inch, and by
-consequence between the Glasses it was 1222/6000: For the upper Glass
-was 1/8 of an Inch thick, and my Eye was distant from it 8 Inches. And a
-third proportional to half this from the Diameter of the Sphere is
-5/88850 Parts of an Inch. This is therefore the Thickness of the Air at
-this Ring, and a fifth Part thereof, _viz._ the 1/88850th Part of an
-Inch is the Thickness thereof at the first of the Rings, as above.
-
-I tried the same Thing, by laying these Object-glasses upon flat Pieces
-of a broken Looking-glass, and found the same Measures of the Rings:
-Which makes me rely upon them till they can be determin'd more
-accurately by Glasses ground to larger Spheres, though in such Glasses
-greater care must be taken of a true Plane.
-
-These Dimensions were taken, when my Eye was placed almost
-perpendicularly over the Glasses, being about an Inch, or an Inch and a
-quarter, distant from the incident Rays, and eight Inches distant from
-the Glass; so that the Rays were inclined to the Glass in an Angle of
-about four Degrees. Whence by the following Observation you will
-understand, that had the Rays been perpendicular to the Glasses, the
-Thickness of the Air at these Rings would have been less in the
-Proportion of the Radius to the Secant of four Degrees, that is, of
-10000 to 10024. Let the Thicknesses found be therefore diminish'd in
-this Proportion, and they will become 1/88952 and 1/89063, or (to use
-the nearest round Number) the 1/89000th Part of an Inch. This is the
-Thickness of the Air at the darkest Part of the first dark Ring made by
-perpendicular Rays; and half this Thickness multiplied by the
-Progression, 1, 3, 5, 7, 9, 11, &c. gives the Thicknesses of the Air at
-the most luminous Parts of all the brightest Rings, _viz._ 1/178000,
-3/178000, 5/178000, 7/178000, &c. their arithmetical Means 2/178000,
-4/178000, 6/178000, &c. being its Thicknesses at the darkest Parts of
-all the dark ones.
-
-_Obs._ 7. The Rings were least, when my Eye was placed perpendicularly
-over the Glasses in the Axis of the Rings: And when I view'd them
-obliquely they became bigger, continually swelling as I removed my Eye
-farther from the Axis. And partly by measuring the Diameter of the same
-Circle at several Obliquities of my Eye, partly by other Means, as also
-by making use of the two Prisms for very great Obliquities, I found its
-Diameter, and consequently the Thickness of the Air at its Perimeter in
-all those Obliquities to be very nearly in the Proportions express'd in
-this Table.
-
--------------------+--------------------+----------+----------
-Angle of Incidence |Angle of Refraction |Diameter |Thickness
- on | into | of the | of the
- the Air. | the Air. | Ring. | Air.
--------------------+--------------------+----------+----------
- Deg. Min. | | |
- | | |
- 00 00 | 00 00 | 10 | 10
- | | |
- 06 26 | 10 00 | 10-1/13 | 10-2/13
- | | |
- 12 45 | 20 00 | 10-1/3 | 10-2/3
- | | |
- 18 49 | 30 00 | 10-3/4 | 11-1/2
- | | |
- 24 30 | 40 00 | 11-2/5 | 13
- | | |
- 29 37 | 50 00 | 12-1/2 | 15-1/2
- | | |
- 33 58 | 60 00 | 14 | 20
- | | |
- 35 47 | 65 00 | 15-1/4 | 23-1/4
- | | |
- 37 19 | 70 00 | 16-4/5 | 28-1/4
- | | |
- 38 33 | 75 00 | 19-1/4 | 37
- | | |
- 39 27 | 80 00 | 22-6/7 | 52-1/4
- | | |
- 40 00 | 85 00 | 29 | 84-1/12
- | | |
- 40 11 | 90 00 | 35 | 122-1/2
--------------------+--------------------+----------+----------
-
-In the two first Columns are express'd the Obliquities of the incident
-and emergent Rays to the Plate of the Air, that is, their Angles of
-Incidence and Refraction. In the third Column the Diameter of any
-colour'd Ring at those Obliquities is expressed in Parts, of which ten
-constitute that Diameter when the Rays are perpendicular. And in the
-fourth Column the Thickness of the Air at the Circumference of that Ring
-is expressed in Parts, of which also ten constitute its Thickness when
-the Rays are perpendicular.
-
-And from these Measures I seem to gather this Rule: That the Thickness
-of the Air is proportional to the Secant of an Angle, whose Sine is a
-certain mean Proportional between the Sines of Incidence and Refraction.
-And that mean Proportional, so far as by these Measures I can determine
-it, is the first of an hundred and six arithmetical mean Proportionals
-between those Sines counted from the bigger Sine, that is, from the Sine
-of Refraction when the Refraction is made out of the Glass into the
-Plate of Air, or from the Sine of Incidence when the Refraction is made
-out of the Plate of Air into the Glass.
-
-_Obs._ 8. The dark Spot in the middle of the Rings increased also by the
-Obliquation of the Eye, although almost insensibly. But, if instead of
-the Object-glasses the Prisms were made use of, its Increase was more
-manifest when viewed so obliquely that no Colours appear'd about it. It
-was least when the Rays were incident most obliquely on the interjacent
-Air, and as the obliquity decreased it increased more and more until the
-colour'd Rings appear'd, and then decreased again, but not so much as it
-increased before. And hence it is evident, that the Transparency was
-not only at the absolute Contact of the Glasses, but also where they had
-some little Interval. I have sometimes observed the Diameter of that
-Spot to be between half and two fifth parts of the Diameter of the
-exterior Circumference of the red in the first Circuit or Revolution of
-Colours when view'd almost perpendicularly; whereas when view'd
-obliquely it hath wholly vanish'd and become opake and white like the
-other parts of the Glass; whence it may be collected that the Glasses
-did then scarcely, or not at all, touch one another, and that their
-Interval at the perimeter of that Spot when view'd perpendicularly was
-about a fifth or sixth part of their Interval at the circumference of
-the said red.
-
-_Obs._ 9. By looking through the two contiguous Object-glasses, I found
-that the interjacent Air exhibited Rings of Colours, as well by
-transmitting Light as by reflecting it. The central Spot was now white,
-and from it the order of the Colours were yellowish red; black, violet,
-blue, white, yellow, red; violet, blue, green, yellow, red, &c. But
-these Colours were very faint and dilute, unless when the Light was
-trajected very obliquely through the Glasses: For by that means they
-became pretty vivid. Only the first yellowish red, like the blue in the
-fourth Observation, was so little and faint as scarcely to be discern'd.
-Comparing the colour'd Rings made by Reflexion, with these made by
-transmission of the Light; I found that white was opposite to black, red
-to blue, yellow to violet, and green to a Compound of red and violet.
-That is, those parts of the Glass were black when looked through, which
-when looked upon appeared white, and on the contrary. And so those which
-in one case exhibited blue, did in the other case exhibit red. And the
-like of the other Colours. The manner you have represented in the third
-Figure, where AB, CD, are the Surfaces of the Glasses contiguous at E,
-and the black Lines between them are their Distances in arithmetical
-Progression, and the Colours written above are seen by reflected Light,
-and those below by Light transmitted (p. 209).
-
-_Obs._ 10. Wetting the Object-glasses a little at their edges, the Water
-crept in slowly between them, and the Circles thereby became less and
-the Colours more faint: Insomuch that as the Water crept along, one half
-of them at which it first arrived would appear broken off from the other
-half, and contracted into a less Room. By measuring them I found the
-Proportions of their Diameters to the Diameters of the like Circles made
-by Air to be about seven to eight, and consequently the Intervals of the
-Glasses at like Circles, caused by those two Mediums Water and Air, are
-as about three to four. Perhaps it may be a general Rule, That if any
-other Medium more or less dense than Water be compress'd between the
-Glasses, their Intervals at the Rings caused thereby will be to their
-Intervals caused by interjacent Air, as the Sines are which measure the
-Refraction made out of that Medium into Air.
-
-_Obs._ 11. When the Water was between the Glasses, if I pressed the
-upper Glass variously at its edges to make the Rings move nimbly from
-one place to another, a little white Spot would immediately follow the
-center of them, which upon creeping in of the ambient Water into that
-place would presently vanish. Its appearance was such as interjacent Air
-would have caused, and it exhibited the same Colours. But it was not
-air, for where any Bubbles of Air were in the Water they would not
-vanish. The Reflexion must have rather been caused by a subtiler Medium,
-which could recede through the Glasses at the creeping in of the Water.
-
-_Obs._ 12. These Observations were made in the open Air. But farther to
-examine the Effects of colour'd Light falling on the Glasses, I darken'd
-the Room, and view'd them by Reflexion of the Colours of a Prism cast on
-a Sheet of white Paper, my Eye being so placed that I could see the
-colour'd Paper by Reflexion in the Glasses, as in a Looking-glass. And
-by this means the Rings became distincter and visible to a far greater
-number than in the open Air. I have sometimes seen more than twenty of
-them, whereas in the open Air I could not discern above eight or nine.
-
-[Illustration: FIG. 3.]
-
-_Obs._ 13. Appointing an Assistant to move the Prism to and fro about
-its Axis, that all the Colours might successively fall on that part of
-the Paper which I saw by Reflexion from that part of the Glasses, where
-the Circles appear'd, so that all the Colours might be successively
-reflected from the Circles to my Eye, whilst I held it immovable, I
-found the Circles which the red Light made to be manifestly bigger than
-those which were made by the blue and violet. And it was very pleasant
-to see them gradually swell or contract accordingly as the Colour of the
-Light was changed. The Interval of the Glasses at any of the Rings when
-they were made by the utmost red Light, was to their Interval at the
-same Ring when made by the utmost violet, greater than as 3 to 2, and
-less than as 13 to 8. By the most of my Observations it was as 14 to 9.
-And this Proportion seem'd very nearly the same in all Obliquities of my
-Eye; unless when two Prisms were made use of instead of the
-Object-glasses. For then at a certain great obliquity of my Eye, the
-Rings made by the several Colours seem'd equal, and at a greater
-obliquity those made by the violet would be greater than the same Rings
-made by the red: the Refraction of the Prism in this case causing the
-most refrangible Rays to fall more obliquely on that plate of the Air
-than the least refrangible ones. Thus the Experiment succeeded in the
-colour'd Light, which was sufficiently strong and copious to make the
-Rings sensible. And thence it may be gather'd, that if the most
-refrangible and least refrangible Rays had been copious enough to make
-the Rings sensible without the mixture of other Rays, the Proportion
-which here was 14 to 9 would have been a little greater, suppose 14-1/4
-or 14-1/3 to 9.
-
-_Obs._ 14. Whilst the Prism was turn'd about its Axis with an uniform
-Motion, to make all the several Colours fall successively upon the
-Object-glasses, and thereby to make the Rings contract and dilate: The
-Contraction or Dilatation of each Ring thus made by the variation of its
-Colour was swiftest in the red, and slowest in the violet, and in the
-intermediate Colours it had intermediate degrees of Celerity. Comparing
-the quantity of Contraction and Dilatation made by all the degrees of
-each Colour, I found that it was greatest in the red; less in the
-yellow, still less in the blue, and least in the violet. And to make as
-just an Estimation as I could of the Proportions of their Contractions
-or Dilatations, I observ'd that the whole Contraction or Dilatation of
-the Diameter of any Ring made by all the degrees of red, was to that of
-the Diameter of the same Ring made by all the degrees of violet, as
-about four to three, or five to four, and that when the Light was of the
-middle Colour between yellow and green, the Diameter of the Ring was
-very nearly an arithmetical Mean between the greatest Diameter of the
-same Ring made by the outmost red, and the least Diameter thereof made
-by the outmost violet: Contrary to what happens in the Colours of the
-oblong Spectrum made by the Refraction of a Prism, where the red is most
-contracted, the violet most expanded, and in the midst of all the
-Colours is the Confine of green and blue. And hence I seem to collect
-that the thicknesses of the Air between the Glasses there, where the
-Ring is successively made by the limits of the five principal Colours
-(red, yellow, green, blue, violet) in order (that is, by the extreme
-red, by the limit of red and yellow in the middle of the orange, by the
-limit of yellow and green, by the limit of green and blue, by the limit
-of blue and violet in the middle of the indigo, and by the extreme
-violet) are to one another very nearly as the sixth lengths of a Chord
-which found the Notes in a sixth Major, _sol_, _la_, _mi_, _fa_, _sol_,
-_la_. But it agrees something better with the Observation to say, that
-the thicknesses of the Air between the Glasses there, where the Rings
-are successively made by the limits of the seven Colours, red, orange,
-yellow, green, blue, indigo, violet in order, are to one another as the
-Cube Roots of the Squares of the eight lengths of a Chord, which found
-the Notes in an eighth, _sol_, _la_, _fa_, _sol_, _la_, _mi_, _fa_,
-_sol_; that is, as the Cube Roots of the Squares of the Numbers, 1, 8/9,
-5/6, 3/4, 2/3, 3/5, 9/16, 1/2.
-
-_Obs._ 15. These Rings were not of various Colours like those made in
-the open Air, but appeared all over of that prismatick Colour only with
-which they were illuminated. And by projecting the prismatick Colours
-immediately upon the Glasses, I found that the Light which fell on the
-dark Spaces which were between the Colour'd Rings was transmitted
-through the Glasses without any variation of Colour. For on a white
-Paper placed behind, it would paint Rings of the same Colour with those
-which were reflected, and of the bigness of their immediate Spaces. And
-from thence the origin of these Rings is manifest; namely, that the Air
-between the Glasses, according to its various thickness, is disposed in
-some places to reflect, and in others to transmit the Light of any one
-Colour (as you may see represented in the fourth Figure) and in the same
-place to reflect that of one Colour where it transmits that of another.
-
-[Illustration: FIG. 4.]
-
-_Obs._ 16. The Squares of the Diameters of these Rings made by any
-prismatick Colour were in arithmetical Progression, as in the fifth
-Observation. And the Diameter of the sixth Circle, when made by the
-citrine yellow, and viewed almost perpendicularly was about 58/100 parts
-of an Inch, or a little less, agreeable to the sixth Observation.
-
-The precedent Observations were made with a rarer thin Medium,
-terminated by a denser, such as was Air or Water compress'd between two
-Glasses. In those that follow are set down the Appearances of a denser
-Medium thin'd within a rarer, such as are Plates of Muscovy Glass,
-Bubbles of Water, and some other thin Substances terminated on all sides
-with air.
-
-_Obs._ 17. If a Bubble be blown with Water first made tenacious by
-dissolving a little Soap in it, 'tis a common Observation, that after a
-while it will appear tinged with a great variety of Colours. To defend
-these Bubbles from being agitated by the external Air (whereby their
-Colours are irregularly moved one among another, so that no accurate
-Observation can be made of them,) as soon as I had blown any of them I
-cover'd it with a clear Glass, and by that means its Colours emerged in
-a very regular order, like so many concentrick Rings encompassing the
-top of the Bubble. And as the Bubble grew thinner by the continual
-subsiding of the Water, these Rings dilated slowly and overspread the
-whole Bubble, descending in order to the bottom of it, where they
-vanish'd successively. In the mean while, after all the Colours were
-emerged at the top, there grew in the center of the Rings a small round
-black Spot, like that in the first Observation, which continually
-dilated it self till it became sometimes more than 1/2 or 3/4 of an Inch
-in breadth before the Bubble broke. At first I thought there had been no
-Light reflected from the Water in that place, but observing it more
-curiously, I saw within it several smaller round Spots, which appeared
-much blacker and darker than the rest, whereby I knew that there was
-some Reflexion at the other places which were not so dark as those
-Spots. And by farther Tryal I found that I could see the Images of some
-things (as of a Candle or the Sun) very faintly reflected, not only from
-the great black Spot, but also from the little darker Spots which were
-within it.
-
-Besides the aforesaid colour'd Rings there would often appear small
-Spots of Colours, ascending and descending up and down the sides of the
-Bubble, by reason of some Inequalities in the subsiding of the Water.
-And sometimes small black Spots generated at the sides would ascend up
-to the larger black Spot at the top of the Bubble, and unite with it.
-
-_Obs._ 18. Because the Colours of these Bubbles were more extended and
-lively than those of the Air thinn'd between two Glasses, and so more
-easy to be distinguish'd, I shall here give you a farther description of
-their order, as they were observ'd in viewing them by Reflexion of the
-Skies when of a white Colour, whilst a black substance was placed
-behind the Bubble. And they were these, red, blue; red, blue; red, blue;
-red, green; red, yellow, green, blue, purple; red, yellow, green, blue,
-violet; red, yellow, white, blue, black.
-
-The three first Successions of red and blue were very dilute and dirty,
-especially the first, where the red seem'd in a manner to be white.
-Among these there was scarce any other Colour sensible besides red and
-blue, only the blues (and principally the second blue) inclined a little
-to green.
-
-The fourth red was also dilute and dirty, but not so much as the former
-three; after that succeeded little or no yellow, but a copious green,
-which at first inclined a little to yellow, and then became a pretty
-brisk and good willow green, and afterwards changed to a bluish Colour;
-but there succeeded neither blue nor violet.
-
-The fifth red at first inclined very much to purple, and afterwards
-became more bright and brisk, but yet not very pure. This was succeeded
-with a very bright and intense yellow, which was but little in quantity,
-and soon chang'd to green: But that green was copious and something more
-pure, deep and lively, than the former green. After that follow'd an
-excellent blue of a bright Sky-colour, and then a purple, which was less
-in quantity than the blue, and much inclined to red.
-
-The sixth red was at first of a very fair and lively scarlet, and soon
-after of a brighter Colour, being very pure and brisk, and the best of
-all the reds. Then after a lively orange follow'd an intense bright and
-copious yellow, which was also the best of all the yellows, and this
-changed first to a greenish yellow, and then to a greenish blue; but the
-green between the yellow and the blue, was very little and dilute,
-seeming rather a greenish white than a green. The blue which succeeded
-became very good, and of a very bright Sky-colour, but yet something
-inferior to the former blue; and the violet was intense and deep with
-little or no redness in it. And less in quantity than the blue.
-
-In the last red appeared a tincture of scarlet next to violet, which
-soon changed to a brighter Colour, inclining to an orange; and the
-yellow which follow'd was at first pretty good and lively, but
-afterwards it grew more dilute until by degrees it ended in perfect
-whiteness. And this whiteness, if the Water was very tenacious and
-well-temper'd, would slowly spread and dilate it self over the greater
-part of the Bubble; continually growing paler at the top, where at
-length it would crack in many places, and those cracks, as they dilated,
-would appear of a pretty good, but yet obscure and dark Sky-colour; the
-white between the blue Spots diminishing, until it resembled the Threds
-of an irregular Net-work, and soon after vanish'd, and left all the
-upper part of the Bubble of the said dark blue Colour. And this Colour,
-after the aforesaid manner, dilated it self downwards, until sometimes
-it hath overspread the whole Bubble. In the mean while at the top, which
-was of a darker blue than the bottom, and appear'd also full of many
-round blue Spots, something darker than the rest, there would emerge
-one or more very black Spots, and within those, other Spots of an
-intenser blackness, which I mention'd in the former Observation; and
-these continually dilated themselves until the Bubble broke.
-
-If the Water was not very tenacious, the black Spots would break forth
-in the white, without any sensible intervention of the blue. And
-sometimes they would break forth within the precedent yellow, or red, or
-perhaps within the blue of the second order, before the intermediate
-Colours had time to display themselves.
-
-By this description you may perceive how great an affinity these Colours
-have with those of Air described in the fourth Observation, although set
-down in a contrary order, by reason that they begin to appear when the
-Bubble is thickest, and are most conveniently reckon'd from the lowest
-and thickest part of the Bubble upwards.
-
-_Obs._ 19. Viewing in several oblique Positions of my Eye the Rings of
-Colours emerging on the top of the Bubble, I found that they were
-sensibly dilated by increasing the obliquity, but yet not so much by far
-as those made by thinn'd Air in the seventh Observation. For there they
-were dilated so much as, when view'd most obliquely, to arrive at a part
-of the Plate more than twelve times thicker than that where they
-appear'd when viewed perpendicularly; whereas in this case the thickness
-of the Water, at which they arrived when viewed most obliquely, was to
-that thickness which exhibited them by perpendicular Rays, something
-less than as 8 to 5. By the best of my Observations it was between 15
-and 15-1/2 to 10; an increase about 24 times less than in the other
-case.
-
-Sometimes the Bubble would become of an uniform thickness all over,
-except at the top of it near the black Spot, as I knew, because it would
-exhibit the same appearance of Colours in all Positions of the Eye. And
-then the Colours which were seen at its apparent circumference by the
-obliquest Rays, would be different from those that were seen in other
-places, by Rays less oblique to it. And divers Spectators might see the
-same part of it of differing Colours, by viewing it at very differing
-Obliquities. Now observing how much the Colours at the same places of
-the Bubble, or at divers places of equal thickness, were varied by the
-several Obliquities of the Rays; by the assistance of the 4th, 14th,
-16th and 18th Observations, as they are hereafter explain'd, I collect
-the thickness of the Water requisite to exhibit any one and the same
-Colour, at several Obliquities, to be very nearly in the Proportion
-expressed in this Table.
-
------------------+------------------+----------------
- Incidence on | Refraction into | Thickness of
- the Water. | the Water. | the Water.
------------------+------------------+----------------
- Deg. Min. | Deg. Min. |
- | |
- 00 00 | 00 00 | 10
- | |
- 15 00 | 11 11 | 10-1/4
- | |
- 30 00 | 22 1 | 10-4/5
- | |
- 45 00 | 32 2 | 11-4/5
- | |
- 60 00 | 40 30 | 13
- | |
- 75 00 | 46 25 | 14-1/2
- | |
- 90 00 | 48 35 | 15-1/5
------------------+------------------+----------------
-
-In the two first Columns are express'd the Obliquities of the Rays to
-the Superficies of the Water, that is, their Angles of Incidence and
-Refraction. Where I suppose, that the Sines which measure them are in
-round Numbers, as 3 to 4, though probably the Dissolution of Soap in the
-Water, may a little alter its refractive Virtue. In the third Column,
-the Thickness of the Bubble, at which any one Colour is exhibited in
-those several Obliquities, is express'd in Parts, of which ten
-constitute its Thickness when the Rays are perpendicular. And the Rule
-found by the seventh Observation agrees well with these Measures, if
-duly apply'd; namely, that the Thickness of a Plate of Water requisite
-to exhibit one and the same Colour at several Obliquities of the Eye, is
-proportional to the Secant of an Angle, whose Sine is the first of an
-hundred and six arithmetical mean Proportionals between the Sines of
-Incidence and Refraction counted from the lesser Sine, that is, from the
-Sine of Refraction when the Refraction is made out of Air into Water,
-otherwise from the Sine of Incidence.
-
-I have sometimes observ'd, that the Colours which arise on polish'd
-Steel by heating it, or on Bell-metal, and some other metalline
-Substances, when melted and pour'd on the Ground, where they may cool in
-the open Air, have, like the Colours of Water-bubbles, been a little
-changed by viewing them at divers Obliquities, and particularly that a
-deep blue, or violet, when view'd very obliquely, hath been changed to a
-deep red. But the Changes of these Colours are not so great and
-sensible as of those made by Water. For the Scoria, or vitrified Part of
-the Metal, which most Metals when heated or melted do continually
-protrude, and send out to their Surface, and which by covering the
-Metals in form of a thin glassy Skin, causes these Colours, is much
-denser than Water; and I find that the Change made by the Obliquation of
-the Eye is least in Colours of the densest thin Substances.
-
-_Obs._ 20. As in the ninth Observation, so here, the Bubble, by
-transmitted Light, appear'd of a contrary Colour to that, which it
-exhibited by Reflexion. Thus when the Bubble being look'd on by the
-Light of the Clouds reflected from it, seemed red at its apparent
-Circumference, if the Clouds at the same time, or immediately after,
-were view'd through it, the Colour at its Circumference would be blue.
-And, on the contrary, when by reflected Light it appeared blue, it would
-appear red by transmitted Light.
-
-_Obs._ 21. By wetting very thin Plates of _Muscovy_ Glass, whose
-thinness made the like Colours appear, the Colours became more faint and
-languid, especially by wetting the Plates on that side opposite to the
-Eye: But I could not perceive any variation of their Species. So then
-the thickness of a Plate requisite to produce any Colour, depends only
-on the density of the Plate, and not on that of the ambient Medium. And
-hence, by the 10th and 16th Observations, may be known the thickness
-which Bubbles of Water, or Plates of _Muscovy_ Glass, or other
-Substances, have at any Colour produced by them.
-
-_Obs._ 22. A thin transparent Body, which is denser than its ambient
-Medium, exhibits more brisk and vivid Colours than that which is so much
-rarer; as I have particularly observed in the Air and Glass. For blowing
-Glass very thin at a Lamp Furnace, those Plates encompassed with Air did
-exhibit Colours much more vivid than those of Air made thin between two
-Glasses.
-
-_Obs._ 23. Comparing the quantity of Light reflected from the several
-Rings, I found that it was most copious from the first or inmost, and in
-the exterior Rings became gradually less and less. Also the whiteness of
-the first Ring was stronger than that reflected from those parts of the
-thin Medium or Plate which were without the Rings; as I could manifestly
-perceive by viewing at a distance the Rings made by the two
-Object-glasses; or by comparing two Bubbles of Water blown at distant
-Times, in the first of which the Whiteness appear'd, which succeeded all
-the Colours, and in the other, the Whiteness which preceded them all.
-
-_Obs._ 24. When the two Object-glasses were lay'd upon one another, so
-as to make the Rings of the Colours appear, though with my naked Eye I
-could not discern above eight or nine of those Rings, yet by viewing
-them through a Prism I have seen a far greater Multitude, insomuch that
-I could number more than forty, besides many others, that were so very
-small and close together, that I could not keep my Eye steady on them
-severally so as to number them, but by their Extent I have sometimes
-estimated them to be more than an hundred. And I believe the Experiment
-may be improved to the Discovery of far greater Numbers. For they seem
-to be really unlimited, though visible only so far as they can be
-separated by the Refraction of the Prism, as I shall hereafter explain.
-
-[Illustration: FIG. 5.]
-
-But it was but one side of these Rings, namely, that towards which the
-Refraction was made, which by that Refraction was render'd distinct, and
-the other side became more confused than when view'd by the naked Eye,
-insomuch that there I could not discern above one or two, and sometimes
-none of those Rings, of which I could discern eight or nine with my
-naked Eye. And their Segments or Arcs, which on the other side appear'd
-so numerous, for the most part exceeded not the third Part of a Circle.
-If the Refraction was very great, or the Prism very distant from the
-Object-glasses, the middle Part of those Arcs became also confused, so
-as to disappear and constitute an even Whiteness, whilst on either side
-their Ends, as also the whole Arcs farthest from the Center, became
-distincter than before, appearing in the Form as you see them design'd
-in the fifth Figure.
-
-The Arcs, where they seem'd distinctest, were only white and black
-successively, without any other Colours intermix'd. But in other Places
-there appeared Colours, whose Order was inverted by the refraction in
-such manner, that if I first held the Prism very near the
-Object-glasses, and then gradually removed it farther off towards my
-Eye, the Colours of the 2d, 3d, 4th, and following Rings, shrunk towards
-the white that emerged between them, until they wholly vanish'd into it
-at the middle of the Arcs, and afterwards emerged again in a contrary
-Order. But at the Ends of the Arcs they retain'd their Order unchanged.
-
-I have sometimes so lay'd one Object-glass upon the other, that to the
-naked Eye they have all over seem'd uniformly white, without the least
-Appearance of any of the colour'd Rings; and yet by viewing them through
-a Prism, great Multitudes of those Rings have discover'd themselves. And
-in like manner Plates of _Muscovy_ Glass, and Bubbles of Glass blown at
-a Lamp-Furnace, which were not so thin as to exhibit any Colours to the
-naked Eye, have through the Prism exhibited a great Variety of them
-ranged irregularly up and down in the Form of Waves. And so Bubbles of
-Water, before they began to exhibit their Colours to the naked Eye of a
-Bystander, have appeared through a Prism, girded about with many
-parallel and horizontal Rings; to produce which Effect, it was necessary
-to hold the Prism parallel, or very nearly parallel to the Horizon, and
-to dispose it so that the Rays might be refracted upwards.
-
-
-
-
-THE
-
-SECOND BOOK
-
-OF
-
-OPTICKS
-
-
-_PART II._
-
-_Remarks upon the foregoing Observations._
-
-
-Having given my Observations of these Colours, before I make use of them
-to unfold the Causes of the Colours of natural Bodies, it is convenient
-that by the simplest of them, such as are the 2d, 3d, 4th, 9th, 12th,
-18th, 20th, and 24th, I first explain the more compounded. And first to
-shew how the Colours in the fourth and eighteenth Observations are
-produced, let there be taken in any Right Line from the Point Y, [in
-_Fig._ 6.] the Lengths YA, YB, YC, YD, YE, YF, YG, YH, in proportion to
-one another, as the Cube-Roots of the Squares of the Numbers, 1/2, 9/16,
-3/5, 2/3, 3/4, 5/6, 8/9, 1, whereby the Lengths of a Musical Chord to
-sound all the Notes in an eighth are represented; that is, in the
-Proportion of the Numbers 6300, 6814, 7114, 7631, 8255, 8855, 9243,
-10000. And at the Points A, B, C, D, E, F, G, H, let Perpendiculars
-A[Greek: a], B[Greek: b], &c. be erected, by whose Intervals the Extent
-of the several Colours set underneath against them, is to be
-represented. Then divide the Line _A[Greek: a]_ in such Proportion as
-the Numbers 1, 2, 3, 5, 6, 7, 9, 10, 11, &c. set at the Points of
-Division denote. And through those Divisions from Y draw Lines 1I, 2K,
-3L, 5M, 6N, 7O, &c.
-
-Now, if A2 be supposed to represent the Thickness of any thin
-transparent Body, at which the outmost Violet is most copiously
-reflected in the first Ring, or Series of Colours, then by the 13th
-Observation, HK will represent its Thickness, at which the utmost Red is
-most copiously reflected in the same Series. Also by the 5th and 16th
-Observations, A6 and HN will denote the Thicknesses at which those
-extreme Colours are most copiously reflected in the second Series, and
-A10 and HQ the Thicknesses at which they are most copiously reflected in
-the third Series, and so on. And the Thickness at which any of the
-intermediate Colours are reflected most copiously, will, according to
-the 14th Observation, be defined by the distance of the Line AH from the
-intermediate parts of the Lines 2K, 6N, 10Q, &c. against which the Names
-of those Colours are written below.
-
-[Illustration: FIG. 6.]
-
-But farther, to define the Latitude of these Colours in each Ring or
-Series, let A1 design the least thickness, and A3 the greatest
-thickness, at which the extreme violet in the first Series is reflected,
-and let HI, and HL, design the like limits for the extreme red, and let
-the intermediate Colours be limited by the intermediate parts of the
-Lines 1I, and 3L, against which the Names of those Colours are written,
-and so on: But yet with this caution, that the Reflexions be supposed
-strongest at the intermediate Spaces, 2K, 6N, 10Q, &c. and from thence
-to decrease gradually towards these limits, 1I, 3L, 5M, 7O, &c. on
-either side; where you must not conceive them to be precisely limited,
-but to decay indefinitely. And whereas I have assign'd the same Latitude
-to every Series, I did it, because although the Colours in the first
-Series seem to be a little broader than the rest, by reason of a
-stronger Reflexion there, yet that inequality is so insensible as
-scarcely to be determin'd by Observation.
-
-Now according to this Description, conceiving that the Rays originally
-of several Colours are by turns reflected at the Spaces 1I, L3, 5M, O7,
-9PR11, &c. and transmitted at the Spaces AHI1, 3LM5, 7OP9, &c. it is
-easy to know what Colour must in the open Air be exhibited at any
-thickness of a transparent thin Body. For if a Ruler be applied parallel
-to AH, at that distance from it by which the thickness of the Body is
-represented, the alternate Spaces 1IL3, 5MO7, &c. which it crosseth will
-denote the reflected original Colours, of which the Colour exhibited in
-the open Air is compounded. Thus if the constitution of the green in the
-third Series of Colours be desired, apply the Ruler as you see at
-[Greek: prsph], and by its passing through some of the blue at [Greek:
-p] and yellow at [Greek: s], as well as through the green at [Greek: r],
-you may conclude that the green exhibited at that thickness of the Body
-is principally constituted of original green, but not without a mixture
-of some blue and yellow.
-
-By this means you may know how the Colours from the center of the Rings
-outward ought to succeed in order as they were described in the 4th and
-18th Observations. For if you move the Ruler gradually from AH through
-all distances, having pass'd over the first Space which denotes little
-or no Reflexion to be made by thinnest Substances, it will first arrive
-at 1 the violet, and then very quickly at the blue and green, which
-together with that violet compound blue, and then at the yellow and red,
-by whose farther addition that blue is converted into whiteness, which
-whiteness continues during the transit of the edge of the Ruler from I
-to 3, and after that by the successive deficience of its component
-Colours, turns first to compound yellow, and then to red, and last of
-all the red ceaseth at L. Then begin the Colours of the second Series,
-which succeed in order during the transit of the edge of the Ruler from
-5 to O, and are more lively than before, because more expanded and
-severed. And for the same reason instead of the former white there
-intercedes between the blue and yellow a mixture of orange, yellow,
-green, blue and indigo, all which together ought to exhibit a dilute and
-imperfect green. So the Colours of the third Series all succeed in
-order; first, the violet, which a little interferes with the red of the
-second order, and is thereby inclined to a reddish purple; then the blue
-and green, which are less mix'd with other Colours, and consequently
-more lively than before, especially the green: Then follows the yellow,
-some of which towards the green is distinct and good, but that part of
-it towards the succeeding red, as also that red is mix'd with the violet
-and blue of the fourth Series, whereby various degrees of red very much
-inclining to purple are compounded. This violet and blue, which should
-succeed this red, being mixed with, and hidden in it, there succeeds a
-green. And this at first is much inclined to blue, but soon becomes a
-good green, the only unmix'd and lively Colour in this fourth Series.
-For as it verges towards the yellow, it begins to interfere with the
-Colours of the fifth Series, by whose mixture the succeeding yellow and
-red are very much diluted and made dirty, especially the yellow, which
-being the weaker Colour is scarce able to shew it self. After this the
-several Series interfere more and more, and their Colours become more
-and more intermix'd, till after three or four more revolutions (in which
-the red and blue predominate by turns) all sorts of Colours are in all
-places pretty equally blended, and compound an even whiteness.
-
-And since by the 15th Observation the Rays endued with one Colour are
-transmitted, where those of another Colour are reflected, the reason of
-the Colours made by the transmitted Light in the 9th and 20th
-Observations is from hence evident.
-
-If not only the Order and Species of these Colours, but also the precise
-thickness of the Plate, or thin Body at which they are exhibited, be
-desired in parts of an Inch, that may be also obtained by assistance of
-the 6th or 16th Observations. For according to those Observations the
-thickness of the thinned Air, which between two Glasses exhibited the
-most luminous parts of the first six Rings were 1/178000, 3/178000,
-5/178000, 7/178000, 9/178000, 11/178000 parts of an Inch. Suppose the
-Light reflected most copiously at these thicknesses be the bright
-citrine yellow, or confine of yellow and orange, and these thicknesses
-will be F[Greek: l], F[Greek: m], F[Greek: u], F[Greek: x], F[Greek: o],
-F[Greek: t]. And this being known, it is easy to determine what
-thickness of Air is represented by G[Greek: ph], or by any other
-distance of the Ruler from AH.
-
-But farther, since by the 10th Observation the thickness of Air was to
-the thickness of Water, which between the same Glasses exhibited the
-same Colour, as 4 to 3, and by the 21st Observation the Colours of thin
-Bodies are not varied by varying the ambient Medium; the thickness of a
-Bubble of Water, exhibiting any Colour, will be 3/4 of the thickness of
-Air producing the same Colour. And so according to the same 10th and
-21st Observations, the thickness of a Plate of Glass, whose Refraction
-of the mean refrangible Ray, is measured by the proportion of the Sines
-31 to 20, may be 20/31 of the thickness of Air producing the same
-Colours; and the like of other Mediums. I do not affirm, that this
-proportion of 20 to 31, holds in all the Rays; for the Sines of other
-sorts of Rays have other Proportions. But the differences of those
-Proportions are so little that I do not here consider them. On these
-Grounds I have composed the following Table, wherein the thickness of
-Air, Water, and Glass, at which each Colour is most intense and
-specifick, is expressed in parts of an Inch divided into ten hundred
-thousand equal parts.
-
-Now if this Table be compared with the 6th Scheme, you will there see
-the constitution of each Colour, as to its Ingredients, or the original
-Colours of which it is compounded, and thence be enabled to judge of its
-Intenseness or Imperfection; which may suffice in explication of the 4th
-and 18th Observations, unless it be farther desired to delineate the
-manner how the Colours appear, when the two Object-glasses are laid upon
-one another. To do which, let there be described a large Arc of a
-Circle, and a streight Line which may touch that Arc, and parallel to
-that Tangent several occult Lines, at such distances from it, as the
-Numbers set against the several Colours in the Table denote. For the
-Arc, and its Tangent, will represent the Superficies of the Glasses
-terminating the interjacent Air; and the places where the occult Lines
-cut the Arc will show at what distances from the center, or Point of
-contact, each Colour is reflected.
-
-_The thickness of colour'd Plates and Particles of_
- _____________|_______________
- / \
- Air. Water. Glass.
- |---------+----------+----------+
- {Very black | 1/2 | 3/8 | 10/31 |
- {Black | 1 | 3/4 | 20/31 |
- {Beginning of | | | |
- { Black | 2 | 1-1/2 | 1-2/7 |
-Their Colours of the {Blue | 2-2/5 | 1-4/5 | 1-11/22 |
-first Order, {White | 5-1/4 | 3-7/8 | 3-2/5 |
- {Yellow | 7-1/9 | 5-1/3 | 4-3/5 |
- {Orange | 8 | 6 | 5-1/6 |
- {Red | 9 | 6-3/4 | 5-4/5 |
- |---------+----------+----------|
- {Violet | 11-1/6 | 8-3/8 | 7-1/5 |
- {Indigo | 12-5/6 | 9-5/8 | 8-2/11 |
- {Blue | 14 | 10-1/2 | 9 |
- {Green | 15-1/8 | 11-2/3 | 9-5/7 |
-Of the second order, {Yellow | 16-2/7 | 12-1/5 | 10-2/5 |
- {Orange | 17-2/9 | 13 | 11-1/9 |
- {Bright red | 18-1/3 | 13-3/4 | 11-5/6 |
- {Scarlet | 19-2/3 | 14-3/4 | 12-2/3 |
- |---------+----------+----------|
- {Purple | 21 | 15-3/4 | 13-11/20 |
- {Indigo | 22-1/10 | 16-4/7 | 14-1/4 |
- {Blue | 23-2/5 | 17-11/20 | 15-1/10 |
-Of the third Order, {Green | 25-1/5 | 18-9/10 | 16-1/4 |
- {Yellow | 27-1/7 | 20-1/3 | 17-1/2 |
- {Red | 29 | 21-3/4 | 18-5/7 |
- {Bluish red | 32 | 24 | 20-2/3 |
- |---------+----------+----------|
- {Bluish green | 34 | 25-1/2 | 22 |
- {Green | 35-2/7 | 26-1/2 | 22-3/4 |
-Of the fourth Order, {Yellowish green | 36 | 27 | 23-2/9 |
- {Red | 40-1/3 | 30-1/4 | 26 |
- |---------+----------+----------|
- {Greenish blue | 46 | 34-1/2 | 29-2/3 |
-Of the fifth Order, {Red | 52-1/2 | 39-3/8 | 34 |
- |---------+----------+----------|
- {Greenish blue | 58-3/4 | 44 | 38 |
-Of the sixth Order, {Red | 65 | 48-3/4 | 42 |
- |---------+----------+----------|
-Of the seventh Order, {Greenish blue | 71 | 53-1/4 | 45-4/5 |
- {Ruddy White | 77 | 57-3/4 | 49-2/3 |
- |---------+----------+----------|
-
-There are also other Uses of this Table: For by its assistance the
-thickness of the Bubble in the 19th Observation was determin'd by the
-Colours which it exhibited. And so the bigness of the parts of natural
-Bodies may be conjectured by their Colours, as shall be hereafter shewn.
-Also, if two or more very thin Plates be laid one upon another, so as to
-compose one Plate equalling them all in thickness, the resulting Colour
-may be hereby determin'd. For instance, Mr. _Hook_ observed, as is
-mentioned in his _Micrographia_, that a faint yellow Plate of _Muscovy_
-Glass laid upon a blue one, constituted a very deep purple. The yellow
-of the first Order is a faint one, and the thickness of the Plate
-exhibiting it, according to the Table is 4-3/5, to which add 9, the
-thickness exhibiting blue of the second Order, and the Sum will be
-13-3/5, which is the thickness exhibiting the purple of the third Order.
-
-To explain, in the next place, the circumstances of the 2d and 3d
-Observations; that is, how the Rings of the Colours may (by turning the
-Prisms about their common Axis the contrary way to that expressed in
-those Observations) be converted into white and black Rings, and
-afterwards into Rings of Colours again, the Colours of each Ring lying
-now in an inverted order; it must be remember'd, that those Rings of
-Colours are dilated by the obliquation of the Rays to the Air which
-intercedes the Glasses, and that according to the Table in the 7th
-Observation, their Dilatation or Increase of their Diameter is most
-manifest and speedy when they are obliquest. Now the Rays of yellow
-being more refracted by the first Superficies of the said Air than those
-of red, are thereby made more oblique to the second Superficies, at
-which they are reflected to produce the colour'd Rings, and consequently
-the yellow Circle in each Ring will be more dilated than the red; and
-the Excess of its Dilatation will be so much the greater, by how much
-the greater is the obliquity of the Rays, until at last it become of
-equal extent with the red of the same Ring. And for the same reason the
-green, blue and violet, will be also so much dilated by the still
-greater obliquity of their Rays, as to become all very nearly of equal
-extent with the red, that is, equally distant from the center of the
-Rings. And then all the Colours of the same Ring must be co-incident,
-and by their mixture exhibit a white Ring. And these white Rings must
-have black and dark Rings between them, because they do not spread and
-interfere with one another, as before. And for that reason also they
-must become distincter, and visible to far greater numbers. But yet the
-violet being obliquest will be something more dilated, in proportion to
-its extent, than the other Colours, and so very apt to appear at the
-exterior Verges of the white.
-
-Afterwards, by a greater obliquity of the Rays, the violet and blue
-become more sensibly dilated than the red and yellow, and so being
-farther removed from the center of the Rings, the Colours must emerge
-out of the white in an order contrary to that which they had before; the
-violet and blue at the exterior Limbs of each Ring, and the red and
-yellow at the interior. And the violet, by reason of the greatest
-obliquity of its Rays, being in proportion most of all expanded, will
-soonest appear at the exterior Limb of each white Ring, and become more
-conspicuous than the rest. And the several Series of Colours belonging
-to the several Rings, will, by their unfolding and spreading, begin
-again to interfere, and thereby render the Rings less distinct, and not
-visible to so great numbers.
-
-If instead of the Prisms the Object-glasses be made use of, the Rings
-which they exhibit become not white and distinct by the obliquity of the
-Eye, by reason that the Rays in their passage through that Air which
-intercedes the Glasses are very nearly parallel to those Lines in which
-they were first incident on the Glasses, and consequently the Rays
-endued with several Colours are not inclined one more than another to
-that Air, as it happens in the Prisms.
-
-There is yet another circumstance of these Experiments to be consider'd,
-and that is why the black and white Rings which when view'd at a
-distance appear distinct, should not only become confused by viewing
-them near at hand, but also yield a violet Colour at both the edges of
-every white Ring. And the reason is, that the Rays which enter the Eye
-at several parts of the Pupil, have several Obliquities to the Glasses,
-and those which are most oblique, if consider'd apart, would represent
-the Rings bigger than those which are the least oblique. Whence the
-breadth of the Perimeter of every white Ring is expanded outwards by the
-obliquest Rays, and inwards by the least oblique. And this Expansion is
-so much the greater by how much the greater is the difference of the
-Obliquity; that is, by how much the Pupil is wider, or the Eye nearer to
-the Glasses. And the breadth of the violet must be most expanded,
-because the Rays apt to excite a Sensation of that Colour are most
-oblique to a second or farther Superficies of the thinn'd Air at which
-they are reflected, and have also the greatest variation of Obliquity,
-which makes that Colour soonest emerge out of the edges of the white.
-And as the breadth of every Ring is thus augmented, the dark Intervals
-must be diminish'd, until the neighbouring Rings become continuous, and
-are blended, the exterior first, and then those nearer the center; so
-that they can no longer be distinguish'd apart, but seem to constitute
-an even and uniform whiteness.
-
-Among all the Observations there is none accompanied with so odd
-circumstances as the twenty-fourth. Of those the principal are, that in
-thin Plates, which to the naked Eye seem of an even and uniform
-transparent whiteness, without any terminations of Shadows, the
-Refraction of a Prism should make Rings of Colours appear, whereas it
-usually makes Objects appear colour'd only there where they are
-terminated with Shadows, or have parts unequally luminous; and that it
-should make those Rings exceedingly distinct and white, although it
-usually renders Objects confused and coloured. The Cause of these things
-you will understand by considering, that all the Rings of Colours are
-really in the Plate, when view'd with the naked Eye, although by reason
-of the great breadth of their Circumferences they so much interfere and
-are blended together, that they seem to constitute an uniform whiteness.
-But when the Rays pass through the Prism to the Eye, the Orbits of the
-several Colours in every Ring are refracted, some more than others,
-according to their degrees of Refrangibility: By which means the Colours
-on one side of the Ring (that is in the circumference on one side of its
-center), become more unfolded and dilated, and those on the other side
-more complicated and contracted. And where by a due Refraction they are
-so much contracted, that the several Rings become narrower than to
-interfere with one another, they must appear distinct, and also white,
-if the constituent Colours be so much contracted as to be wholly
-co-incident. But on the other side, where the Orbit of every Ring is
-made broader by the farther unfolding of its Colours, it must interfere
-more with other Rings than before, and so become less distinct.
-
-[Illustration: FIG. 7.]
-
-To explain this a little farther, suppose the concentrick Circles AV,
-and BX, [in _Fig._ 7.] represent the red and violet of any Order, which,
-together with the intermediate Colours, constitute any one of these
-Rings. Now these being view'd through a Prism, the violet Circle BX,
-will, by a greater Refraction, be farther translated from its place than
-the red AV, and so approach nearer to it on that side of the Circles,
-towards which the Refractions are made. For instance, if the red be
-translated to _av_, the violet may be translated to _bx_, so as to
-approach nearer to it at _x_ than before; and if the red be farther
-translated to av, the violet may be so much farther translated to bx as
-to convene with it at x; and if the red be yet farther translated to
-[Greek: aY], the violet may be still so much farther translated to
-[Greek: bx] as to pass beyond it at [Greek: x], and convene with it at
-_e_ and _f_. And this being understood not only of the red and violet,
-but of all the other intermediate Colours, and also of every revolution
-of those Colours, you will easily perceive how those of the same
-revolution or order, by their nearness at _xv_ and [Greek: Yx], and
-their coincidence at xv, _e_ and _f_, ought to constitute pretty
-distinct Arcs of Circles, especially at xv, or at _e_ and _f_; and that
-they will appear severally at _x_[Greek: u] and at xv exhibit whiteness
-by their coincidence, and again appear severally at [Greek: Yx], but yet
-in a contrary order to that which they had before, and still retain
-beyond _e_ and _f_. But on the other side, at _ab_, ab, or [Greek: ab],
-these Colours must become much more confused by being dilated and spread
-so as to interfere with those of other Orders. And the same confusion
-will happen at [Greek: Ux] between _e_ and _f_, if the Refraction be
-very great, or the Prism very distant from the Object-glasses: In which
-case no parts of the Rings will be seen, save only two little Arcs at
-_e_ and _f_, whose distance from one another will be augmented by
-removing the Prism still farther from the Object-glasses: And these
-little Arcs must be distinctest and whitest at their middle, and at
-their ends, where they begin to grow confused, they must be colour'd.
-And the Colours at one end of every Arc must be in a contrary order to
-those at the other end, by reason that they cross in the intermediate
-white; namely, their ends, which verge towards [Greek: Ux], will be red
-and yellow on that side next the center, and blue and violet on the
-other side. But their other ends which verge from [Greek: Ux], will on
-the contrary be blue and violet on that side towards the center, and on
-the other side red and yellow.
-
-Now as all these things follow from the properties of Light by a
-mathematical way of reasoning, so the truth of them may be manifested by
-Experiments. For in a dark Room, by viewing these Rings through a Prism,
-by reflexion of the several prismatick Colours, which an assistant
-causes to move to and fro upon a Wall or Paper from whence they are
-reflected, whilst the Spectator's Eye, the Prism, and the
-Object-glasses, (as in the 13th Observation,) are placed steady; the
-Position of the Circles made successively by the several Colours, will
-be found such, in respect of one another, as I have described in the
-Figures _abxv_, or abxv, or _[Greek: abxU]_. And by the same method the
-truth of the Explications of other Observations may be examined.
-
-By what hath been said, the like Phænomena of Water and thin Plates of
-Glass may be understood. But in small fragments of those Plates there is
-this farther observable, that where they lie flat upon a Table, and are
-turned about their centers whilst they are view'd through a Prism, they
-will in some postures exhibit Waves of various Colours; and some of them
-exhibit these Waves in one or two Positions only, but the most of them
-do in all Positions exhibit them, and make them for the most part appear
-almost all over the Plates. The reason is, that the Superficies of such
-Plates are not even, but have many Cavities and Swellings, which, how
-shallow soever, do a little vary the thickness of the Plate. For at the
-several sides of those Cavities, for the Reasons newly described, there
-ought to be produced Waves in several postures of the Prism. Now though
-it be but some very small and narrower parts of the Glass, by which
-these Waves for the most part are caused, yet they may seem to extend
-themselves over the whole Glass, because from the narrowest of those
-parts there are Colours of several Orders, that is, of several Rings,
-confusedly reflected, which by Refraction of the Prism are unfolded,
-separated, and, according to their degrees of Refraction, dispersed to
-several places, so as to constitute so many several Waves, as there were
-divers orders of Colours promiscuously reflected from that part of the
-Glass.
-
-These are the principal Phænomena of thin Plates or Bubbles, whose
-Explications depend on the properties of Light, which I have heretofore
-deliver'd. And these you see do necessarily follow from them, and agree
-with them, even to their very least circumstances; and not only so, but
-do very much tend to their proof. Thus, by the 24th Observation it
-appears, that the Rays of several Colours, made as well by thin Plates
-or Bubbles, as by Refractions of a Prism, have several degrees of
-Refrangibility; whereby those of each order, which at the reflexion from
-the Plate or Bubble are intermix'd with those of other orders, are
-separated from them by Refraction, and associated together so as to
-become visible by themselves like Arcs of Circles. For if the Rays were
-all alike refrangible, 'tis impossible that the whiteness, which to the
-naked Sense appears uniform, should by Refraction have its parts
-transposed and ranged into those black and white Arcs.
-
-It appears also that the unequal Refractions of difform Rays proceed not
-from any contingent irregularities; such as are Veins, an uneven Polish,
-or fortuitous Position of the Pores of Glass; unequal and casual Motions
-in the Air or Æther, the spreading, breaking, or dividing the same Ray
-into many diverging parts; or the like. For, admitting any such
-irregularities, it would be impossible for Refractions to render those
-Rings so very distinct, and well defined, as they do in the 24th
-Observation. It is necessary therefore that every Ray have its proper
-and constant degree of Refrangibility connate with it, according to
-which its refraction is ever justly and regularly perform'd; and that
-several Rays have several of those degrees.
-
-And what is said of their Refrangibility may be also understood of their
-Reflexibility, that is, of their Dispositions to be reflected, some at a
-greater, and others at a less thickness of thin Plates or Bubbles;
-namely, that those Dispositions are also connate with the Rays, and
-immutable; as may appear by the 13th, 14th, and 15th Observations,
-compared with the fourth and eighteenth.
-
-By the Precedent Observations it appears also, that whiteness is a
-dissimilar mixture of all Colours, and that Light is a mixture of Rays
-endued with all those Colours. For, considering the multitude of the
-Rings of Colours in the 3d, 12th, and 24th Observations, it is manifest,
-that although in the 4th and 18th Observations there appear no more than
-eight or nine of those Rings, yet there are really a far greater number,
-which so much interfere and mingle with one another, as after those
-eight or nine revolutions to dilute one another wholly, and constitute
-an even and sensibly uniform whiteness. And consequently that whiteness
-must be allow'd a mixture of all Colours, and the Light which conveys it
-to the Eye must be a mixture of Rays endued with all those Colours.
-
-But farther; by the 24th Observation it appears, that there is a
-constant relation between Colours and Refrangibility; the most
-refrangible Rays being violet, the least refrangible red, and those of
-intermediate Colours having proportionably intermediate degrees of
-Refrangibility. And by the 13th, 14th, and 15th Observations, compared
-with the 4th or 18th there appears to be the same constant relation
-between Colour and Reflexibility; the violet being in like circumstances
-reflected at least thicknesses of any thin Plate or Bubble, the red at
-greatest thicknesses, and the intermediate Colours at intermediate
-thicknesses. Whence it follows, that the colorifick Dispositions of
-Rays are also connate with them, and immutable; and by consequence, that
-all the Productions and Appearances of Colours in the World are derived,
-not from any physical Change caused in Light by Refraction or Reflexion,
-but only from the various Mixtures or Separations of Rays, by virtue of
-their different Refrangibility or Reflexibility. And in this respect the
-Science of Colours becomes a Speculation as truly mathematical as any
-other part of Opticks. I mean, so far as they depend on the Nature of
-Light, and are not produced or alter'd by the Power of Imagination, or
-by striking or pressing the Eye.
-
-
-
-
-THE
-
-SECOND BOOK
-
-OF
-
-OPTICKS
-
-
-_PART III._
-
-_Of the permanent Colours of natural Bodies, and the Analogy between
-them and the Colours of thin transparent Plates._
-
-I am now come to another part of this Design, which is to consider how
-the Phænomena of thin transparent Plates stand related to those of all
-other natural Bodies. Of these Bodies I have already told you that they
-appear of divers Colours, accordingly as they are disposed to reflect
-most copiously the Rays originally endued with those Colours. But their
-Constitutions, whereby they reflect some Rays more copiously than
-others, remain to be discover'd; and these I shall endeavour to manifest
-in the following Propositions.
-
-
-PROP. I.
-
-_Those Superficies of transparent Bodies reflect the greatest quantity
-of Light, which have the greatest refracting Power; that is, which
-intercede Mediums that differ most in their refractive Densities. And in
-the Confines of equally refracting Mediums there is no Reflexion._
-
-The Analogy between Reflexion and Refraction will appear by considering,
-that when Light passeth obliquely out of one Medium into another which
-refracts from the perpendicular, the greater is the difference of their
-refractive Density, the less Obliquity of Incidence is requisite to
-cause a total Reflexion. For as the Sines are which measure the
-Refraction, so is the Sine of Incidence at which the total Reflexion
-begins, to the Radius of the Circle; and consequently that Angle of
-Incidence is least where there is the greatest difference of the Sines.
-Thus in the passing of Light out of Water into Air, where the Refraction
-is measured by the Ratio of the Sines 3 to 4, the total Reflexion begins
-when the Angle of Incidence is about 48 Degrees 35 Minutes. In passing
-out of Glass into Air, where the Refraction is measured by the Ratio of
-the Sines 20 to 31, the total Reflexion begins when the Angle of
-Incidence is 40 Degrees 10 Minutes; and so in passing out of Crystal, or
-more strongly refracting Mediums into Air, there is still a less
-obliquity requisite to cause a total reflexion. Superficies therefore
-which refract most do soonest reflect all the Light which is incident on
-them, and so must be allowed most strongly reflexive.
-
-But the truth of this Proposition will farther appear by observing, that
-in the Superficies interceding two transparent Mediums, (such as are
-Air, Water, Oil, common Glass, Crystal, metalline Glasses, Island
-Glasses, white transparent Arsenick, Diamonds, &c.) the Reflexion is
-stronger or weaker accordingly, as the Superficies hath a greater or
-less refracting Power. For in the Confine of Air and Sal-gem 'tis
-stronger than in the Confine of Air and Water, and still stronger in the
-Confine of Air and common Glass or Crystal, and stronger in the Confine
-of Air and a Diamond. If any of these, and such like transparent Solids,
-be immerged in Water, its Reflexion becomes, much weaker than before;
-and still weaker if they be immerged in the more strongly refracting
-Liquors of well rectified Oil of Vitriol or Spirit of Turpentine. If
-Water be distinguish'd into two parts by any imaginary Surface, the
-Reflexion in the Confine of those two parts is none at all. In the
-Confine of Water and Ice 'tis very little; in that of Water and Oil 'tis
-something greater; in that of Water and Sal-gem still greater; and in
-that of Water and Glass, or Crystal or other denser Substances still
-greater, accordingly as those Mediums differ more or less in their
-refracting Powers. Hence in the Confine of common Glass and Crystal,
-there ought to be a weak Reflexion, and a stronger Reflexion in the
-Confine of common and metalline Glass; though I have not yet tried
-this. But in the Confine of two Glasses of equal density, there is not
-any sensible Reflexion; as was shewn in the first Observation. And the
-same may be understood of the Superficies interceding two Crystals, or
-two Liquors, or any other Substances in which no Refraction is caused.
-So then the reason why uniform pellucid Mediums (such as Water, Glass,
-or Crystal,) have no sensible Reflexion but in their external
-Superficies, where they are adjacent to other Mediums of a different
-density, is because all their contiguous parts have one and the same
-degree of density.
-
-
-PROP. II.
-
-_The least parts of almost all natural Bodies are in some measure
-transparent: And the Opacity of those Bodies ariseth from the multitude
-of Reflexions caused in their internal Parts._
-
-That this is so has been observed by others, and will easily be granted
-by them that have been conversant with Microscopes. And it may be also
-tried by applying any substance to a hole through which some Light is
-immitted into a dark Room. For how opake soever that Substance may seem
-in the open Air, it will by that means appear very manifestly
-transparent, if it be of a sufficient thinness. Only white metalline
-Bodies must be excepted, which by reason of their excessive density seem
-to reflect almost all the Light incident on their first Superficies;
-unless by solution in Menstruums they be reduced into very small
-Particles, and then they become transparent.
-
-
-PROP. III.
-
-_Between the parts of opake and colour'd Bodies are many Spaces, either
-empty, or replenish'd with Mediums of other Densities; as Water between
-the tinging Corpuscles wherewith any Liquor is impregnated, Air between
-the aqueous Globules that constitute Clouds or Mists; and for the most
-part Spaces void of both Air and Water, but yet perhaps not wholly void
-of all Substance, between the parts of hard Bodies._
-
-The truth of this is evinced by the two precedent Propositions: For by
-the second Proposition there are many Reflexions made by the internal
-parts of Bodies, which, by the first Proposition, would not happen if
-the parts of those Bodies were continued without any such Interstices
-between them; because Reflexions are caused only in Superficies, which
-intercede Mediums of a differing density, by _Prop._ 1.
-
-But farther, that this discontinuity of parts is the principal Cause of
-the opacity of Bodies, will appear by considering, that opake Substances
-become transparent by filling their Pores with any Substance of equal or
-almost equal density with their parts. Thus Paper dipped in Water or
-Oil, the _Oculus Mundi_ Stone steep'd in Water, Linnen Cloth oiled or
-varnish'd, and many other Substances soaked in such Liquors as will
-intimately pervade their little Pores, become by that means more
-transparent than otherwise; so, on the contrary, the most transparent
-Substances, may, by evacuating their Pores, or separating their parts,
-be render'd sufficiently opake; as Salts or wet Paper, or the _Oculus
-Mundi_ Stone by being dried, Horn by being scraped, Glass by being
-reduced to Powder, or otherwise flawed; Turpentine by being stirred
-about with Water till they mix imperfectly, and Water by being form'd
-into many small Bubbles, either alone in the form of Froth, or by
-shaking it together with Oil of Turpentine, or Oil Olive, or with some
-other convenient Liquor, with which it will not perfectly incorporate.
-And to the increase of the opacity of these Bodies, it conduces
-something, that by the 23d Observation the Reflexions of very thin
-transparent Substances are considerably stronger than those made by the
-same Substances of a greater thickness.
-
-
-PROP. IV.
-
-_The Parts of Bodies and their Interstices must not be less than of some
-definite bigness, to render them opake and colour'd._
-
-For the opakest Bodies, if their parts be subtilly divided, (as Metals,
-by being dissolved in acid Menstruums, &c.) become perfectly
-transparent. And you may also remember, that in the eighth Observation
-there was no sensible reflexion at the Superficies of the
-Object-glasses, where they were very near one another, though they did
-not absolutely touch. And in the 17th Observation the Reflexion of the
-Water-bubble where it became thinnest was almost insensible, so as to
-cause very black Spots to appear on the top of the Bubble, by the want
-of reflected Light.
-
-On these grounds I perceive it is that Water, Salt, Glass, Stones, and
-such like Substances, are transparent. For, upon divers Considerations,
-they seem to be as full of Pores or Interstices between their parts as
-other Bodies are, but yet their Parts and Interstices to be too small to
-cause Reflexions in their common Surfaces.
-
-
-PROP. V.
-
-_The transparent parts of Bodies, according to their several sizes,
-reflect Rays of one Colour, and transmit those of another, on the same
-grounds that thin Plates or Bubbles do reflect or transmit those Rays.
-And this I take to be the ground of all their Colours._
-
-For if a thinn'd or plated Body, which being of an even thickness,
-appears all over of one uniform Colour, should be slit into Threads, or
-broken into Fragments, of the same thickness with the Plate; I see no
-reason why every Thread or Fragment should not keep its Colour, and by
-consequence why a heap of those Threads or Fragments should not
-constitute a Mass or Powder of the same Colour, which the Plate
-exhibited before it was broken. And the parts of all natural Bodies
-being like so many Fragments of a Plate, must on the same grounds
-exhibit the same Colours.
-
-Now, that they do so will appear by the affinity of their Properties.
-The finely colour'd Feathers of some Birds, and particularly those of
-Peacocks Tails, do, in the very same part of the Feather, appear of
-several Colours in several Positions of the Eye, after the very same
-manner that thin Plates were found to do in the 7th and 19th
-Observations, and therefore their Colours arise from the thinness of the
-transparent parts of the Feathers; that is, from the slenderness of the
-very fine Hairs, or _Capillamenta_, which grow out of the sides of the
-grosser lateral Branches or Fibres of those Feathers. And to the same
-purpose it is, that the Webs of some Spiders, by being spun very fine,
-have appeared colour'd, as some have observ'd, and that the colour'd
-Fibres of some Silks, by varying the Position of the Eye, do vary their
-Colour. Also the Colours of Silks, Cloths, and other Substances, which
-Water or Oil can intimately penetrate, become more faint and obscure by
-being immerged in those Liquors, and recover their Vigor again by being
-dried; much after the manner declared of thin Bodies in the 10th and
-21st Observations. Leaf-Gold, some sorts of painted Glass, the Infusion
-of _Lignum Nephriticum_, and some other Substances, reflect one Colour,
-and transmit another; like thin Bodies in the 9th and 20th Observations.
-And some of those colour'd Powders which Painters use, may have their
-Colours a little changed, by being very elaborately and finely ground.
-Where I see not what can be justly pretended for those changes, besides
-the breaking of their parts into less parts by that contrition, after
-the same manner that the Colour of a thin Plate is changed by varying
-its thickness. For which reason also it is that the colour'd Flowers of
-Plants and Vegetables, by being bruised, usually become more transparent
-than before, or at least in some degree or other change their Colours.
-Nor is it much less to my purpose, that, by mixing divers Liquors, very
-odd and remarkable Productions and Changes of Colours may be effected,
-of which no cause can be more obvious and rational than that the saline
-Corpuscles of one Liquor do variously act upon or unite with the tinging
-Corpuscles of another, so as to make them swell, or shrink, (whereby not
-only their bulk but their density also may be changed,) or to divide
-them into smaller Corpuscles, (whereby a colour'd Liquor may become
-transparent,) or to make many of them associate into one cluster,
-whereby two transparent Liquors may compose a colour'd one. For we see
-how apt those saline Menstruums are to penetrate and dissolve Substances
-to which they are applied, and some of them to precipitate what others
-dissolve. In like manner, if we consider the various Phænomena of the
-Atmosphere, we may observe, that when Vapours are first raised, they
-hinder not the transparency of the Air, being divided into parts too
-small to cause any Reflexion in their Superficies. But when in order to
-compose drops of Rain they begin to coalesce and constitute Globules of
-all intermediate sizes, those Globules, when they become of convenient
-size to reflect some Colours and transmit others, may constitute Clouds
-of various Colours according to their sizes. And I see not what can be
-rationally conceived in so transparent a Substance as Water for the
-production of these Colours, besides the various sizes of its fluid and
-globular Parcels.
-
-
-PROP. VI.
-
-_The parts of Bodies on which their Colours depend, are denser than the
-Medium which pervades their Interstices._
-
-This will appear by considering, that the Colour of a Body depends not
-only on the Rays which are incident perpendicularly on its parts, but on
-those also which are incident at all other Angles. And that according to
-the 7th Observation, a very little variation of obliquity will change
-the reflected Colour, where the thin Body or small Particles is rarer
-than the ambient Medium, insomuch that such a small Particle will at
-diversly oblique Incidences reflect all sorts of Colours, in so great a
-variety that the Colour resulting from them all, confusedly reflected
-from a heap of such Particles, must rather be a white or grey than any
-other Colour, or at best it must be but a very imperfect and dirty
-Colour. Whereas if the thin Body or small Particle be much denser than
-the ambient Medium, the Colours, according to the 19th Observation, are
-so little changed by the variation of obliquity, that the Rays which
-are reflected least obliquely may predominate over the rest, so much as
-to cause a heap of such Particles to appear very intensely of their
-Colour.
-
-It conduces also something to the confirmation of this Proposition,
-that, according to the 22d Observation, the Colours exhibited by the
-denser thin Body within the rarer, are more brisk than those exhibited
-by the rarer within the denser.
-
-
-PROP. VII.
-
-_The bigness of the component parts of natural Bodies may be conjectured
-by their Colours._
-
-For since the parts of these Bodies, by _Prop._ 5. do most probably
-exhibit the same Colours with a Plate of equal thickness, provided they
-have the same refractive density; and since their parts seem for the
-most part to have much the same density with Water or Glass, as by many
-circumstances is obvious to collect; to determine the sizes of those
-parts, you need only have recourse to the precedent Tables, in which the
-thickness of Water or Glass exhibiting any Colour is expressed. Thus if
-it be desired to know the diameter of a Corpuscle, which being of equal
-density with Glass shall reflect green of the third Order; the Number
-16-1/4 shews it to be (16-1/4)/10000 parts of an Inch.
-
-The greatest difficulty is here to know of what Order the Colour of any
-Body is. And for this end we must have recourse to the 4th and 18th
-Observations; from whence may be collected these particulars.
-
-_Scarlets_, and other _reds_, _oranges_, and _yellows_, if they be pure
-and intense, are most probably of the second order. Those of the first
-and third order also may be pretty good; only the yellow of the first
-order is faint, and the orange and red of the third Order have a great
-Mixture of violet and blue.
-
-There may be good _Greens_ of the fourth Order, but the purest are of
-the third. And of this Order the green of all Vegetables seems to be,
-partly by reason of the Intenseness of their Colours, and partly because
-when they wither some of them turn to a greenish yellow, and others to a
-more perfect yellow or orange, or perhaps to red, passing first through
-all the aforesaid intermediate Colours. Which Changes seem to be
-effected by the exhaling of the Moisture which may leave the tinging
-Corpuscles more dense, and something augmented by the Accretion of the
-oily and earthy Part of that Moisture. Now the green, without doubt, is
-of the same Order with those Colours into which it changeth, because the
-Changes are gradual, and those Colours, though usually not very full,
-yet are often too full and lively to be of the fourth Order.
-
-_Blues_ and _Purples_ may be either of the second or third Order, but
-the best are of the third. Thus the Colour of Violets seems to be of
-that Order, because their Syrup by acid Liquors turns red, and by
-urinous and alcalizate turns green. For since it is of the Nature of
-Acids to dissolve or attenuate, and of Alcalies to precipitate or
-incrassate, if the Purple Colour of the Syrup was of the second Order,
-an acid Liquor by attenuating its tinging Corpuscles would change it to
-a red of the first Order, and an Alcali by incrassating them would
-change it to a green of the second Order; which red and green,
-especially the green, seem too imperfect to be the Colours produced by
-these Changes. But if the said Purple be supposed of the third Order,
-its Change to red of the second, and green of the third, may without any
-Inconvenience be allow'd.
-
-If there be found any Body of a deeper and less reddish Purple than that
-of the Violets, its Colour most probably is of the second Order. But yet
-there being no Body commonly known whose Colour is constantly more deep
-than theirs, I have made use of their Name to denote the deepest and
-least reddish Purples, such as manifestly transcend their Colour in
-purity.
-
-The _blue_ of the first Order, though very faint and little, may
-possibly be the Colour of some Substances; and particularly the azure
-Colour of the Skies seems to be of this Order. For all Vapours when they
-begin to condense and coalesce into small Parcels, become first of that
-Bigness, whereby such an Azure must be reflected before they can
-constitute Clouds of other Colours. And so this being the first Colour
-which Vapours begin to reflect, it ought to be the Colour of the finest
-and most transparent Skies, in which Vapours are not arrived to that
-Grossness requisite to reflect other Colours, as we find it is by
-Experience.
-
-_Whiteness_, if most intense and luminous, is that of the first Order,
-if less strong and luminous, a Mixture of the Colours of several Orders.
-Of this last kind is the Whiteness of Froth, Paper, Linnen, and most
-white Substances; of the former I reckon that of white Metals to be. For
-whilst the densest of Metals, Gold, if foliated, is transparent, and all
-Metals become transparent if dissolved in Menstruums or vitrified, the
-Opacity of white Metals ariseth not from their Density alone. They being
-less dense than Gold would be more transparent than it, did not some
-other Cause concur with their Density to make them opake. And this Cause
-I take to be such a Bigness of their Particles as fits them to reflect
-the white of the first order. For, if they be of other Thicknesses they
-may reflect other Colours, as is manifest by the Colours which appear
-upon hot Steel in tempering it, and sometimes upon the Surface of melted
-Metals in the Skin or Scoria which arises upon them in their cooling.
-And as the white of the first order is the strongest which can be made
-by Plates of transparent Substances, so it ought to be stronger in the
-denser Substances of Metals than in the rarer of Air, Water, and Glass.
-Nor do I see but that metallick Substances of such a Thickness as may
-fit them to reflect the white of the first order, may, by reason of
-their great Density (according to the Tenor of the first of these
-Propositions) reflect all the Light incident upon them, and so be as
-opake and splendent as it's possible for any Body to be. Gold, or Copper
-mix'd with less than half their Weight of Silver, or Tin, or Regulus of
-Antimony, in fusion, or amalgamed with a very little Mercury, become
-white; which shews both that the Particles of white Metals have much
-more Superficies, and so are smaller, than those of Gold and Copper, and
-also that they are so opake as not to suffer the Particles of Gold or
-Copper to shine through them. Now it is scarce to be doubted but that
-the Colours of Gold and Copper are of the second and third order, and
-therefore the Particles of white Metals cannot be much bigger than is
-requisite to make them reflect the white of the first order. The
-Volatility of Mercury argues that they are not much bigger, nor may they
-be much less, lest they lose their Opacity, and become either
-transparent as they do when attenuated by Vitrification, or by Solution
-in Menstruums, or black as they do when ground smaller, by rubbing
-Silver, or Tin, or Lead, upon other Substances to draw black Lines. The
-first and only Colour which white Metals take by grinding their
-Particles smaller, is black, and therefore their white ought to be that
-which borders upon the black Spot in the Center of the Rings of Colours,
-that is, the white of the first order. But, if you would hence gather
-the Bigness of metallick Particles, you must allow for their Density.
-For were Mercury transparent, its Density is such that the Sine of
-Incidence upon it (by my Computation) would be to the Sine of its
-Refraction, as 71 to 20, or 7 to 2. And therefore the Thickness of its
-Particles, that they may exhibit the same Colours with those of Bubbles
-of Water, ought to be less than the Thickness of the Skin of those
-Bubbles in the Proportion of 2 to 7. Whence it's possible, that the
-Particles of Mercury may be as little as the Particles of some
-transparent and volatile Fluids, and yet reflect the white of the first
-order.
-
-Lastly, for the production of _black_, the Corpuscles must be less than
-any of those which exhibit Colours. For at all greater sizes there is
-too much Light reflected to constitute this Colour. But if they be
-supposed a little less than is requisite to reflect the white and very
-faint blue of the first order, they will, according to the 4th, 8th,
-17th and 18th Observations, reflect so very little Light as to appear
-intensely black, and yet may perhaps variously refract it to and fro
-within themselves so long, until it happen to be stifled and lost, by
-which means they will appear black in all positions of the Eye without
-any transparency. And from hence may be understood why Fire, and the
-more subtile dissolver Putrefaction, by dividing the Particles of
-Substances, turn them to black, why small quantities of black Substances
-impart their Colour very freely and intensely to other Substances to
-which they are applied; the minute Particles of these, by reason of
-their very great number, easily overspreading the gross Particles of
-others; why Glass ground very elaborately with Sand on a Copper Plate,
-'till it be well polish'd, makes the Sand, together with what is worn
-off from the Glass and Copper, become very black: why black Substances
-do soonest of all others become hot in the Sun's Light and burn, (which
-Effect may proceed partly from the multitude of Refractions in a little
-room, and partly from the easy Commotion of so very small Corpuscles;)
-and why blacks are usually a little inclined to a bluish Colour. For
-that they are so may be seen by illuminating white Paper by Light
-reflected from black Substances. For the Paper will usually appear of a
-bluish white; and the reason is, that black borders in the obscure blue
-of the order described in the 18th Observation, and therefore reflects
-more Rays of that Colour than of any other.
-
-In these Descriptions I have been the more particular, because it is not
-impossible but that Microscopes may at length be improved to the
-discovery of the Particles of Bodies on which their Colours depend, if
-they are not already in some measure arrived to that degree of
-perfection. For if those Instruments are or can be so far improved as
-with sufficient distinctness to represent Objects five or six hundred
-times bigger than at a Foot distance they appear to our naked Eyes, I
-should hope that we might be able to discover some of the greatest of
-those Corpuscles. And by one that would magnify three or four thousand
-times perhaps they might all be discover'd, but those which produce
-blackness. In the mean while I see nothing material in this Discourse
-that may rationally be doubted of, excepting this Position: That
-transparent Corpuscles of the same thickness and density with a Plate,
-do exhibit the same Colour. And this I would have understood not without
-some Latitude, as well because those Corpuscles may be of irregular
-Figures, and many Rays must be obliquely incident on them, and so have
-a shorter way through them than the length of their Diameters, as
-because the straitness of the Medium put in on all sides within such
-Corpuscles may a little alter its Motions or other qualities on which
-the Reflexion depends. But yet I cannot much suspect the last, because I
-have observed of some small Plates of Muscovy Glass which were of an
-even thickness, that through a Microscope they have appeared of the same
-Colour at their edges and corners where the included Medium was
-terminated, which they appeared of in other places. However it will add
-much to our Satisfaction, if those Corpuscles can be discover'd with
-Microscopes; which if we shall at length attain to, I fear it will be
-the utmost improvement of this Sense. For it seems impossible to see the
-more secret and noble Works of Nature within the Corpuscles by reason of
-their transparency.
-
-
-PROP. VIII.
-
-_The Cause of Reflexion is not the impinging of Light on the solid or
-impervious parts of Bodies, as is commonly believed._
-
-This will appear by the following Considerations. First, That in the
-passage of Light out of Glass into Air there is a Reflexion as strong as
-in its passage out of Air into Glass, or rather a little stronger, and
-by many degrees stronger than in its passage out of Glass into Water.
-And it seems not probable that Air should have more strongly reflecting
-parts than Water or Glass. But if that should possibly be supposed, yet
-it will avail nothing; for the Reflexion is as strong or stronger when
-the Air is drawn away from the Glass, (suppose by the Air-Pump invented
-by _Otto Gueriet_, and improved and made useful by Mr. _Boyle_) as when
-it is adjacent to it. Secondly, If Light in its passage out of Glass
-into Air be incident more obliquely than at an Angle of 40 or 41 Degrees
-it is wholly reflected, if less obliquely it is in great measure
-transmitted. Now it is not to be imagined that Light at one degree of
-obliquity should meet with Pores enough in the Air to transmit the
-greater part of it, and at another degree of obliquity should meet with
-nothing but parts to reflect it wholly, especially considering that in
-its passage out of Air into Glass, how oblique soever be its Incidence,
-it finds Pores enough in the Glass to transmit a great part of it. If
-any Man suppose that it is not reflected by the Air, but by the outmost
-superficial parts of the Glass, there is still the same difficulty:
-Besides, that such a Supposition is unintelligible, and will also appear
-to be false by applying Water behind some part of the Glass instead of
-Air. For so in a convenient obliquity of the Rays, suppose of 45 or 46
-Degrees, at which they are all reflected where the Air is adjacent to
-the Glass, they shall be in great measure transmitted where the Water is
-adjacent to it; which argues, that their Reflexion or Transmission
-depends on the constitution of the Air and Water behind the Glass, and
-not on the striking of the Rays upon the parts of the Glass. Thirdly,
-If the Colours made by a Prism placed at the entrance of a Beam of Light
-into a darken'd Room be successively cast on a second Prism placed at a
-greater distance from the former, in such manner that they are all alike
-incident upon it, the second Prism may be so inclined to the incident
-Rays, that those which are of a blue Colour shall be all reflected by
-it, and yet those of a red Colour pretty copiously transmitted. Now if
-the Reflexion be caused by the parts of Air or Glass, I would ask, why
-at the same Obliquity of Incidence the blue should wholly impinge on
-those parts, so as to be all reflected, and yet the red find Pores
-enough to be in a great measure transmitted. Fourthly, Where two Glasses
-touch one another, there is no sensible Reflexion, as was declared in
-the first Observation; and yet I see no reason why the Rays should not
-impinge on the parts of Glass, as much when contiguous to other Glass as
-when contiguous to Air. Fifthly, When the top of a Water-Bubble (in the
-17th Observation,) by the continual subsiding and exhaling of the Water
-grew very thin, there was such a little and almost insensible quantity
-of Light reflected from it, that it appeared intensely black; whereas
-round about that black Spot, where the Water was thicker, the Reflexion
-was so strong as to make the Water seem very white. Nor is it only at
-the least thickness of thin Plates or Bubbles, that there is no manifest
-Reflexion, but at many other thicknesses continually greater and
-greater. For in the 15th Observation the Rays of the same Colour were by
-turns transmitted at one thickness, and reflected at another thickness,
-for an indeterminate number of Successions. And yet in the Superficies
-of the thinned Body, where it is of any one thickness, there are as many
-parts for the Rays to impinge on, as where it is of any other thickness.
-Sixthly, If Reflexion were caused by the parts of reflecting Bodies, it
-would be impossible for thin Plates or Bubbles, at one and the same
-place, to reflect the Rays of one Colour, and transmit those of another,
-as they do according to the 13th and 15th Observations. For it is not to
-be imagined that at one place the Rays which, for instance, exhibit a
-blue Colour, should have the fortune to dash upon the parts, and those
-which exhibit a red to hit upon the Pores of the Body; and then at
-another place, where the Body is either a little thicker or a little
-thinner, that on the contrary the blue should hit upon its pores, and
-the red upon its parts. Lastly, Were the Rays of Light reflected by
-impinging on the solid parts of Bodies, their Reflexions from polish'd
-Bodies could not be so regular as they are. For in polishing Glass with
-Sand, Putty, or Tripoly, it is not to be imagined that those Substances
-can, by grating and fretting the Glass, bring all its least Particles to
-an accurate Polish; so that all their Surfaces shall be truly plain or
-truly spherical, and look all the same way, so as together to compose
-one even Surface. The smaller the Particles of those Substances are, the
-smaller will be the Scratches by which they continually fret and wear
-away the Glass until it be polish'd; but be they never so small they can
-wear away the Glass no otherwise than by grating and scratching it, and
-breaking the Protuberances; and therefore polish it no otherwise than by
-bringing its roughness to a very fine Grain, so that the Scratches and
-Frettings of the Surface become too small to be visible. And therefore
-if Light were reflected by impinging upon the solid parts of the Glass,
-it would be scatter'd as much by the most polish'd Glass as by the
-roughest. So then it remains a Problem, how Glass polish'd by fretting
-Substances can reflect Light so regularly as it does. And this Problem
-is scarce otherwise to be solved, than by saying, that the Reflexion of
-a Ray is effected, not by a single point of the reflecting Body, but by
-some power of the Body which is evenly diffused all over its Surface,
-and by which it acts upon the Ray without immediate Contact. For that
-the parts of Bodies do act upon Light at a distance shall be shewn
-hereafter.
-
-Now if Light be reflected, not by impinging on the solid parts of
-Bodies, but by some other principle; it's probable that as many of its
-Rays as impinge on the solid parts of Bodies are not reflected but
-stifled and lost in the Bodies. For otherwise we must allow two sorts of
-Reflexions. Should all the Rays be reflected which impinge on the
-internal parts of clear Water or Crystal, those Substances would rather
-have a cloudy Colour than a clear Transparency. To make Bodies look
-black, it's necessary that many Rays be stopp'd, retained, and lost in
-them; and it seems not probable that any Rays can be stopp'd and
-stifled in them which do not impinge on their parts.
-
-And hence we may understand that Bodies are much more rare and porous
-than is commonly believed. Water is nineteen times lighter, and by
-consequence nineteen times rarer than Gold; and Gold is so rare as very
-readily and without the least opposition to transmit the magnetick
-Effluvia, and easily to admit Quicksilver into its Pores, and to let
-Water pass through it. For a concave Sphere of Gold filled with Water,
-and solder'd up, has, upon pressing the Sphere with great force, let the
-Water squeeze through it, and stand all over its outside in multitudes
-of small Drops, like Dew, without bursting or cracking the Body of the
-Gold, as I have been inform'd by an Eye witness. From all which we may
-conclude, that Gold has more Pores than solid parts, and by consequence
-that Water has above forty times more Pores than Parts. And he that
-shall find out an Hypothesis, by which Water may be so rare, and yet not
-be capable of compression by force, may doubtless by the same Hypothesis
-make Gold, and Water, and all other Bodies, as much rarer as he pleases;
-so that Light may find a ready passage through transparent Substances.
-
-The Magnet acts upon Iron through all dense Bodies not magnetick nor red
-hot, without any diminution of its Virtue; as for instance, through
-Gold, Silver, Lead, Glass, Water. The gravitating Power of the Sun is
-transmitted through the vast Bodies of the Planets without any
-diminution, so as to act upon all their parts to their very centers
-with the same Force and according to the same Laws, as if the part upon
-which it acts were not surrounded with the Body of the Planet, The Rays
-of Light, whether they be very small Bodies projected, or only Motion or
-Force propagated, are moved in right Lines; and whenever a Ray of Light
-is by any Obstacle turned out of its rectilinear way, it will never
-return into the same rectilinear way, unless perhaps by very great
-accident. And yet Light is transmitted through pellucid solid Bodies in
-right Lines to very great distances. How Bodies can have a sufficient
-quantity of Pores for producing these Effects is very difficult to
-conceive, but perhaps not altogether impossible. For the Colours of
-Bodies arise from the Magnitudes of the Particles which reflect them, as
-was explained above. Now if we conceive these Particles of Bodies to be
-so disposed amongst themselves, that the Intervals or empty Spaces
-between them may be equal in magnitude to them all; and that these
-Particles may be composed of other Particles much smaller, which have as
-much empty Space between them as equals all the Magnitudes of these
-smaller Particles: And that in like manner these smaller Particles are
-again composed of others much smaller, all which together are equal to
-all the Pores or empty Spaces between them; and so on perpetually till
-you come to solid Particles, such as have no Pores or empty Spaces
-within them: And if in any gross Body there be, for instance, three such
-degrees of Particles, the least of which are solid; this Body will have
-seven times more Pores than solid Parts. But if there be four such
-degrees of Particles, the least of which are solid, the Body will have
-fifteen times more Pores than solid Parts. If there be five degrees, the
-Body will have one and thirty times more Pores than solid Parts. If six
-degrees, the Body will have sixty and three times more Pores than solid
-Parts. And so on perpetually. And there are other ways of conceiving how
-Bodies may be exceeding porous. But what is really their inward Frame is
-not yet known to us.
-
-
-PROP. IX.
-
-_Bodies reflect and refract Light by one and the same power, variously
-exercised in various Circumstances._
-
-This appears by several Considerations. First, Because when Light goes
-out of Glass into Air, as obliquely as it can possibly do. If its
-Incidence be made still more oblique, it becomes totally reflected. For
-the power of the Glass after it has refracted the Light as obliquely as
-is possible, if the Incidence be still made more oblique, becomes too
-strong to let any of its Rays go through, and by consequence causes
-total Reflexions. Secondly, Because Light is alternately reflected and
-transmitted by thin Plates of Glass for many Successions, accordingly as
-the thickness of the Plate increases in an arithmetical Progression. For
-here the thickness of the Glass determines whether that Power by which
-Glass acts upon Light shall cause it to be reflected, or suffer it to
-be transmitted. And, Thirdly, because those Surfaces of transparent
-Bodies which have the greatest refracting power, reflect the greatest
-quantity of Light, as was shewn in the first Proposition.
-
-
-PROP. X.
-
-_If Light be swifter in Bodies than in Vacuo, in the proportion of the
-Sines which measure the Refraction of the Bodies, the Forces of the
-Bodies to reflect and refract Light, are very nearly proportional to the
-densities of the same Bodies; excepting that unctuous and sulphureous
-Bodies refract more than others of this same density._
-
-[Illustration: FIG. 8.]
-
-Let AB represent the refracting plane Surface of any Body, and IC a Ray
-incident very obliquely upon the Body in C, so that the Angle ACI may be
-infinitely little, and let CR be the refracted Ray. From a given Point B
-perpendicular to the refracting Surface erect BR meeting with the
-refracting Ray CR in R, and if CR represent the Motion of the refracted
-Ray, and this Motion be distinguish'd into two Motions CB and BR,
-whereof CB is parallel to the refracting Plane, and BR perpendicular to
-it: CB shall represent the Motion of the incident Ray, and BR the
-Motion generated by the Refraction, as Opticians have of late explain'd.
-
-Now if any Body or Thing, in moving through any Space of a given breadth
-terminated on both sides by two parallel Planes, be urged forward in all
-parts of that Space by Forces tending directly forwards towards the last
-Plane, and before its Incidence on the first Plane, had no Motion
-towards it, or but an infinitely little one; and if the Forces in all
-parts of that Space, between the Planes, be at equal distances from the
-Planes equal to one another, but at several distances be bigger or less
-in any given Proportion, the Motion generated by the Forces in the whole
-passage of the Body or thing through that Space shall be in a
-subduplicate Proportion of the Forces, as Mathematicians will easily
-understand. And therefore, if the Space of activity of the refracting
-Superficies of the Body be consider'd as such a Space, the Motion of the
-Ray generated by the refracting Force of the Body, during its passage
-through that Space, that is, the Motion BR, must be in subduplicate
-Proportion of that refracting Force. I say therefore, that the Square of
-the Line BR, and by consequence the refracting Force of the Body, is
-very nearly as the density of the same Body. For this will appear by the
-following Table, wherein the Proportion of the Sines which measure the
-Refractions of several Bodies, the Square of BR, supposing CB an unite,
-the Densities of the Bodies estimated by their Specifick Gravities, and
-their Refractive Power in respect of their Densities are set down in
-several Columns.
-
----------------------+----------------+----------------+----------+-----------
- | | | |
- | | The Square | The | The
- | | of BR, to | density | refractive
- | The Proportion | which the | and | Power of
- | of the Sines of| refracting | specifick| the Body
- | Incidence and | force of the | gravity | in respect
- The refracting | Refraction of | Body is | of the | of its
- Bodies. | yellow Light. | proportionate. | Body. | density.
----------------------+----------------+----------------+----------+-----------
-A Pseudo-Topazius, | | | |
- being a natural, | | | |
- pellucid, brittle, | 23 to 14 | 1'699 | 4'27 | 3979
- hairy Stone, of a | | | |
- yellow Colour. | | | |
-Air. | 3201 to 3200 | 0'000625 | 0'0012 | 5208
-Glass of Antimony. | 17 to 9 | 2'568 | 5'28 | 4864
-A Selenitis. | 61 to 41 | 1'213 | 2'252 | 5386
-Glass vulgar. | 31 to 20 | 1'4025 | 2'58 | 5436
-Crystal of the Rock. | 25 to 16 | 1'445 | 2'65 | 5450
-Island Crystal. | 5 to 3 | 1'778 | 2'72 | 6536
-Sal Gemmæ. | 17 to 11 | 1'388 | 2'143 | 6477
-Alume. | 35 to 24 | 1'1267 | 1'714 | 6570
-Borax. | 22 to 15 | 1'1511 | 1'714 | 6716
-Niter. | 32 to 21 | 1'345 | 1'9 | 7079
-Dantzick Vitriol. | 303 to 200 | 1'295 | 1'715 | 7551
-Oil of Vitriol. | 10 to 7 | 1'041 | 1'7 | 6124
-Rain Water. | 529 to 396 | 0'7845 | 1' | 7845
-Gum Arabick. | 31 to 21 | 1'179 | 1'375 | 8574
-Spirit of Wine well | | | |
- rectified. | 100 to 73 | 0'8765 | 0'866 | 10121
-Camphire. | 3 to 2 | 1'25 | 0'996 | 12551
-Oil Olive. | 22 to 15 | 1'1511 | 0'913 | 12607
-Linseed Oil. | 40 to 27 | 1'1948 | 0'932 | 12819
-Spirit of Turpentine.| 25 to 17 | 1'1626 | 0'874 | 13222
-Amber. | 14 to 9 | 1'42 | 1'04 | 13654
-A Diamond. | 100 to 41 | 4'949 | 3'4 | 14556
----------------------+----------------+----------------+----------+-----------
-
-The Refraction of the Air in this Table is determin'd by that of the
-Atmosphere observed by Astronomers. For, if Light pass through many
-refracting Substances or Mediums gradually denser and denser, and
-terminated with parallel Surfaces, the Sum of all the Refractions will
-be equal to the single Refraction which it would have suffer'd in
-passing immediately out of the first Medium into the last. And this
-holds true, though the Number of the refracting Substances be increased
-to Infinity, and the Distances from one another as much decreased, so
-that the Light may be refracted in every Point of its Passage, and by
-continual Refractions bent into a Curve-Line. And therefore the whole
-Refraction of Light in passing through the Atmosphere from the highest
-and rarest Part thereof down to the lowest and densest Part, must be
-equal to the Refraction which it would suffer in passing at like
-Obliquity out of a Vacuum immediately into Air of equal Density with
-that in the lowest Part of the Atmosphere.
-
-Now, although a Pseudo-Topaz, a Selenitis, Rock Crystal, Island Crystal,
-Vulgar Glass (that is, Sand melted together) and Glass of Antimony,
-which are terrestrial stony alcalizate Concretes, and Air which probably
-arises from such Substances by Fermentation, be Substances very
-differing from one another in Density, yet by this Table, they have
-their refractive Powers almost in the same Proportion to one another as
-their Densities are, excepting that the Refraction of that strange
-Substance, Island Crystal is a little bigger than the rest. And
-particularly Air, which is 3500 Times rarer than the Pseudo-Topaz, and
-4400 Times rarer than Glass of Antimony, and 2000 Times rarer than the
-Selenitis, Glass vulgar, or Crystal of the Rock, has notwithstanding its
-rarity the same refractive Power in respect of its Density which those
-very dense Substances have in respect of theirs, excepting so far as
-those differ from one another.
-
-Again, the Refraction of Camphire, Oil Olive, Linseed Oil, Spirit of
-Turpentine and Amber, which are fat sulphureous unctuous Bodies, and a
-Diamond, which probably is an unctuous Substance coagulated, have their
-refractive Powers in Proportion to one another as their Densities
-without any considerable Variation. But the refractive Powers of these
-unctuous Substances are two or three Times greater in respect of their
-Densities than the refractive Powers of the former Substances in respect
-of theirs.
-
-Water has a refractive Power in a middle degree between those two sorts
-of Substances, and probably is of a middle nature. For out of it grow
-all vegetable and animal Substances, which consist as well of
-sulphureous fat and inflamable Parts, as of earthy lean and alcalizate
-ones.
-
-Salts and Vitriols have refractive Powers in a middle degree between
-those of earthy Substances and Water, and accordingly are composed of
-those two sorts of Substances. For by distillation and rectification of
-their Spirits a great Part of them goes into Water, and a great Part
-remains behind in the form of a dry fix'd Earth capable of
-Vitrification.
-
-Spirit of Wine has a refractive Power in a middle degree between those
-of Water and oily Substances, and accordingly seems to be composed of
-both, united by Fermentation; the Water, by means of some saline Spirits
-with which 'tis impregnated, dissolving the Oil, and volatizing it by
-the Action. For Spirit of Wine is inflamable by means of its oily Parts,
-and being distilled often from Salt of Tartar, grow by every
-distillation more and more aqueous and phlegmatick. And Chymists
-observe, that Vegetables (as Lavender, Rue, Marjoram, &c.) distilled
-_per se_, before fermentation yield Oils without any burning Spirits,
-but after fermentation yield ardent Spirits without Oils: Which shews,
-that their Oil is by fermentation converted into Spirit. They find also,
-that if Oils be poured in a small quantity upon fermentating Vegetables,
-they distil over after fermentation in the form of Spirits.
-
-So then, by the foregoing Table, all Bodies seem to have their
-refractive Powers proportional to their Densities, (or very nearly;)
-excepting so far as they partake more or less of sulphureous oily
-Particles, and thereby have their refractive Power made greater or less.
-Whence it seems rational to attribute the refractive Power of all Bodies
-chiefly, if not wholly, to the sulphureous Parts with which they abound.
-For it's probable that all Bodies abound more or less with Sulphurs. And
-as Light congregated by a Burning-glass acts most upon sulphureous
-Bodies, to turn them into Fire and Flame; so, since all Action is
-mutual, Sulphurs ought to act most upon Light. For that the action
-between Light and Bodies is mutual, may appear from this Consideration;
-That the densest Bodies which refract and reflect Light most strongly,
-grow hottest in the Summer Sun, by the action of the refracted or
-reflected Light.
-
-I have hitherto explain'd the power of Bodies to reflect and refract,
-and shew'd, that thin transparent Plates, Fibres, and Particles, do,
-according to their several thicknesses and densities, reflect several
-sorts of Rays, and thereby appear of several Colours; and by consequence
-that nothing more is requisite for producing all the Colours of natural
-Bodies, than the several sizes and densities of their transparent
-Particles. But whence it is that these Plates, Fibres, and Particles,
-do, according to their several thicknesses and densities, reflect
-several sorts of Rays, I have not yet explain'd. To give some insight
-into this matter, and make way for understanding the next part of this
-Book, I shall conclude this part with a few more Propositions. Those
-which preceded respect the nature of Bodies, these the nature of Light:
-For both must be understood, before the reason of their Actions upon one
-another can be known. And because the last Proposition depended upon the
-velocity of Light, I will begin with a Proposition of that kind.
-
-
-PROP. XI.
-
-_Light is propagated from luminous Bodies in time, and spends about
-seven or eight Minutes of an Hour in passing from the Sun to the Earth._
-
-This was observed first by _Roemer_, and then by others, by means of the
-Eclipses of the Satellites of _Jupiter_. For these Eclipses, when the
-Earth is between the Sun and _Jupiter_, happen about seven or eight
-Minutes sooner than they ought to do by the Tables, and when the Earth
-is beyond the Sun they happen about seven or eight Minutes later than
-they ought to do; the reason being, that the Light of the Satellites has
-farther to go in the latter case than in the former by the Diameter of
-the Earth's Orbit. Some inequalities of time may arise from the
-Excentricities of the Orbs of the Satellites; but those cannot answer in
-all the Satellites, and at all times to the Position and Distance of the
-Earth from the Sun. The mean motions of _Jupiter_'s Satellites is also
-swifter in his descent from his Aphelium to his Perihelium, than in his
-ascent in the other half of his Orb. But this inequality has no respect
-to the position of the Earth, and in the three interior Satellites is
-insensible, as I find by computation from the Theory of their Gravity.
-
-
-PROP. XII.
-
-_Every Ray of Light in its passage through any refracting Surface is put
-into a certain transient Constitution or State, which in the progress of
-the Ray returns at equal Intervals, and disposes the Ray at every return
-to be easily transmitted through the next refracting Surface, and
-between the returns to be easily reflected by it._
-
-This is manifest by the 5th, 9th, 12th, and 15th Observations. For by
-those Observations it appears, that one and the same sort of Rays at
-equal Angles of Incidence on any thin transparent Plate, is alternately
-reflected and transmitted for many Successions accordingly as the
-thickness of the Plate increases in arithmetical Progression of the
-Numbers, 0, 1, 2, 3, 4, 5, 6, 7, 8, &c. so that if the first Reflexion
-(that which makes the first or innermost of the Rings of Colours there
-described) be made at the thickness 1, the Rays shall be transmitted at
-the thicknesses 0, 2, 4, 6, 8, 10, 12, &c. and thereby make the central
-Spot and Rings of Light, which appear by transmission, and be reflected
-at the thickness 1, 3, 5, 7, 9, 11, &c. and thereby make the Rings which
-appear by Reflexion. And this alternate Reflexion and Transmission, as I
-gather by the 24th Observation, continues for above an hundred
-vicissitudes, and by the Observations in the next part of this Book, for
-many thousands, being propagated from one Surface of a Glass Plate to
-the other, though the thickness of the Plate be a quarter of an Inch or
-above: So that this alternation seems to be propagated from every
-refracting Surface to all distances without end or limitation.
-
-This alternate Reflexion and Refraction depends on both the Surfaces of
-every thin Plate, because it depends on their distance. By the 21st
-Observation, if either Surface of a thin Plate of _Muscovy_ Glass be
-wetted, the Colours caused by the alternate Reflexion and Refraction
-grow faint, and therefore it depends on them both.
-
-It is therefore perform'd at the second Surface; for if it were
-perform'd at the first, before the Rays arrive at the second, it would
-not depend on the second.
-
-It is also influenced by some action or disposition, propagated from the
-first to the second, because otherwise at the second it would not depend
-on the first. And this action or disposition, in its propagation,
-intermits and returns by equal Intervals, because in all its progress it
-inclines the Ray at one distance from the first Surface to be reflected
-by the second, at another to be transmitted by it, and that by equal
-Intervals for innumerable vicissitudes. And because the Ray is disposed
-to Reflexion at the distances 1, 3, 5, 7, 9, &c. and to Transmission at
-the distances 0, 2, 4, 6, 8, 10, &c. (for its transmission through the
-first Surface, is at the distance 0, and it is transmitted through both
-together, if their distance be infinitely little or much less than 1)
-the disposition to be transmitted at the distances 2, 4, 6, 8, 10, &c.
-is to be accounted a return of the same disposition which the Ray first
-had at the distance 0, that is at its transmission through the first
-refracting Surface. All which is the thing I would prove.
-
-What kind of action or disposition this is; Whether it consists in a
-circulating or a vibrating motion of the Ray, or of the Medium, or
-something else, I do not here enquire. Those that are averse from
-assenting to any new Discoveries, but such as they can explain by an
-Hypothesis, may for the present suppose, that as Stones by falling upon
-Water put the Water into an undulating Motion, and all Bodies by
-percussion excite vibrations in the Air; so the Rays of Light, by
-impinging on any refracting or reflecting Surface, excite vibrations in
-the refracting or reflecting Medium or Substance, and by exciting them
-agitate the solid parts of the refracting or reflecting Body, and by
-agitating them cause the Body to grow warm or hot; that the vibrations
-thus excited are propagated in the refracting or reflecting Medium or
-Substance, much after the manner that vibrations are propagated in the
-Air for causing Sound, and move faster than the Rays so as to overtake
-them; and that when any Ray is in that part of the vibration which
-conspires with its Motion, it easily breaks through a refracting
-Surface, but when it is in the contrary part of the vibration which
-impedes its Motion, it is easily reflected; and, by consequence, that
-every Ray is successively disposed to be easily reflected, or easily
-transmitted, by every vibration which overtakes it. But whether this
-Hypothesis be true or false I do not here consider. I content my self
-with the bare Discovery, that the Rays of Light are by some cause or
-other alternately disposed to be reflected or refracted for many
-vicissitudes.
-
-
-DEFINITION.
-
-_The returns of the disposition of any Ray to be reflected I will call
-its_ Fits of easy Reflexion, _and those of its disposition to be
-transmitted its_ Fits of easy Transmission, _and the space it passes
-between every return and the next return, the_ Interval of its Fits.
-
-
-PROP. XIII.
-
-_The reason why the Surfaces of all thick transparent Bodies reflect
-part of the Light incident on them, and refract the rest, is, that some
-Rays at their Incidence are in Fits of easy Reflexion, and others in
-Fits of easy Transmission._
-
-This may be gather'd from the 24th Observation, where the Light
-reflected by thin Plates of Air and Glass, which to the naked Eye
-appear'd evenly white all over the Plate, did through a Prism appear
-waved with many Successions of Light and Darkness made by alternate Fits
-of easy Reflexion and easy Transmission, the Prism severing and
-distinguishing the Waves of which the white reflected Light was
-composed, as was explain'd above.
-
-And hence Light is in Fits of easy Reflexion and easy Transmission,
-before its Incidence on transparent Bodies. And probably it is put into
-such fits at its first emission from luminous Bodies, and continues in
-them during all its progress. For these Fits are of a lasting nature, as
-will appear by the next part of this Book.
-
-In this Proposition I suppose the transparent Bodies to be thick;
-because if the thickness of the Body be much less than the Interval of
-the Fits of easy Reflexion and Transmission of the Rays, the Body loseth
-its reflecting power. For if the Rays, which at their entering into the
-Body are put into Fits of easy Transmission, arrive at the farthest
-Surface of the Body before they be out of those Fits, they must be
-transmitted. And this is the reason why Bubbles of Water lose their
-reflecting power when they grow very thin; and why all opake Bodies,
-when reduced into very small parts, become transparent.
-
-
-PROP. XIV.
-
-_Those Surfaces of transparent Bodies, which if the Ray be in a Fit of
-Refraction do refract it most strongly, if the Ray be in a Fit of
-Reflexion do reflect it most easily._
-
-For we shewed above, in _Prop._ 8. that the cause of Reflexion is not
-the impinging of Light on the solid impervious parts of Bodies, but some
-other power by which those solid parts act on Light at a distance. We
-shewed also in _Prop._ 9. that Bodies reflect and refract Light by one
-and the same power, variously exercised in various circumstances; and in
-_Prop._ 1. that the most strongly refracting Surfaces reflect the most
-Light: All which compared together evince and rarify both this and the
-last Proposition.
-
-
-PROP. XV.
-
-_In any one and the same sort of Rays, emerging in any Angle out of any
-refracting Surface into one and the same Medium, the Interval of the
-following Fits of easy Reflexion and Transmission are either accurately
-or very nearly, as the Rectangle of the Secant of the Angle of
-Refraction, and of the Secant of another Angle, whose Sine is the first
-of 106 arithmetical mean Proportionals, between the Sines of Incidence
-and Refraction, counted from the Sine of Refraction._
-
-This is manifest by the 7th and 19th Observations.
-
-
-PROP. XVI.
-
-_In several sorts of Rays emerging in equal Angles out of any refracting
-Surface into the same Medium, the Intervals of the following Fits of
-easy Reflexion and easy Transmission are either accurately, or very
-nearly, as the Cube-Roots of the Squares of the lengths of a Chord,
-which found the Notes in an Eight_, sol, la, fa, sol, la, mi, fa, sol,
-_with all their intermediate degrees answering to the Colours of those
-Rays, according to the Analogy described in the seventh Experiment of
-the second Part of the first Book._
-
-This is manifest by the 13th and 14th Observations.
-
-
-PROP. XVII.
-
-_If Rays of any sort pass perpendicularly into several Mediums, the
-Intervals of the Fits of easy Reflexion and Transmission in any one
-Medium, are to those Intervals in any other, as the Sine of Incidence to
-the Sine of Refraction, when the Rays pass out of the first of those two
-Mediums into the second._
-
-This is manifest by the 10th Observation.
-
-
-PROP. XVIII.
-
-_If the Rays which paint the Colour in the Confine of yellow and orange
-pass perpendicularly out of any Medium into Air, the Intervals of their
-Fits of easy Reflexion are the 1/89000th part of an Inch. And of the
-same length are the Intervals of their Fits of easy Transmission._
-
-This is manifest by the 6th Observation. From these Propositions it is
-easy to collect the Intervals of the Fits of easy Reflexion and easy
-Transmission of any sort of Rays refracted in any angle into any Medium;
-and thence to know, whether the Rays shall be reflected or transmitted
-at their subsequent Incidence upon any other pellucid Medium. Which
-thing, being useful for understanding the next part of this Book, was
-here to be set down. And for the same reason I add the two following
-Propositions.
-
-
-PROP. XIX.
-
-_If any sort of Rays falling on the polite Surface of any pellucid
-Medium be reflected back, the Fits of easy Reflexion, which they have at
-the point of Reflexion, shall still continue to return; and the Returns
-shall be at distances from the point of Reflexion in the arithmetical
-progression of the Numbers 2, 4, 6, 8, 10, 12, &c. and between these
-Fits the Rays shall be in Fits of easy Transmission._
-
-For since the Fits of easy Reflexion and easy Transmission are of a
-returning nature, there is no reason why these Fits, which continued
-till the Ray arrived at the reflecting Medium, and there inclined the
-Ray to Reflexion, should there cease. And if the Ray at the point of
-Reflexion was in a Fit of easy Reflexion, the progression of the
-distances of these Fits from that point must begin from 0, and so be of
-the Numbers 0, 2, 4, 6, 8, &c. And therefore the progression of the
-distances of the intermediate Fits of easy Transmission, reckon'd from
-the same point, must be in the progression of the odd Numbers 1, 3, 5,
-7, 9, &c. contrary to what happens when the Fits are propagated from
-points of Refraction.
-
-
-PROP. XX.
-
-_The Intervals of the Fits of easy Reflexion and easy Transmission,
-propagated from points of Reflexion into any Medium, are equal to the
-Intervals of the like Fits, which the same Rays would have, if refracted
-into the same Medium in Angles of Refraction equal to their Angles of
-Reflexion._
-
-For when Light is reflected by the second Surface of thin Plates, it
-goes out afterwards freely at the first Surface to make the Rings of
-Colours which appear by Reflexion; and, by the freedom of its egress,
-makes the Colours of these Rings more vivid and strong than those which
-appear on the other side of the Plates by the transmitted Light. The
-reflected Rays are therefore in Fits of easy Transmission at their
-egress; which would not always happen, if the Intervals of the Fits
-within the Plate after Reflexion were not equal, both in length and
-number, to their Intervals before it. And this confirms also the
-proportions set down in the former Proposition. For if the Rays both in
-going in and out at the first Surface be in Fits of easy Transmission,
-and the Intervals and Numbers of those Fits between the first and second
-Surface, before and after Reflexion, be equal, the distances of the Fits
-of easy Transmission from either Surface, must be in the same
-progression after Reflexion as before; that is, from the first Surface
-which transmitted them in the progression of the even Numbers 0, 2, 4,
-6, 8, &c. and from the second which reflected them, in that of the odd
-Numbers 1, 3, 5, 7, &c. But these two Propositions will become much more
-evident by the Observations in the following part of this Book.
-
-
-
-
-THE
-
-SECOND BOOK
-
-OF
-
-OPTICKS
-
-
-_PART IV._
-
-_Observations concerning the Reflexions and Colours of thick transparent
-polish'd Plates._
-
-There is no Glass or Speculum how well soever polished, but, besides the
-Light which it refracts or reflects regularly, scatters every way
-irregularly a faint Light, by means of which the polish'd Surface, when
-illuminated in a dark room by a beam of the Sun's Light, may be easily
-seen in all positions of the Eye. There are certain Phænomena of this
-scatter'd Light, which when I first observed them, seem'd very strange
-and surprizing to me. My Observations were as follows.
-
-_Obs._ 1. The Sun shining into my darken'd Chamber through a hole one
-third of an Inch wide, I let the intromitted beam of Light fall
-perpendicularly upon a Glass Speculum ground concave on one side and
-convex on the other, to a Sphere of five Feet and eleven Inches Radius,
-and Quick-silver'd over on the convex side. And holding a white opake
-Chart, or a Quire of Paper at the center of the Spheres to which the
-Speculum was ground, that is, at the distance of about five Feet and
-eleven Inches from the Speculum, in such manner, that the beam of Light
-might pass through a little hole made in the middle of the Chart to the
-Speculum, and thence be reflected back to the same hole: I observed upon
-the Chart four or five concentric Irises or Rings of Colours, like
-Rain-bows, encompassing the hole much after the manner that those, which
-in the fourth and following Observations of the first part of this Book
-appear'd between the Object-glasses, encompassed the black Spot, but yet
-larger and fainter than those. These Rings as they grew larger and
-larger became diluter and fainter, so that the fifth was scarce visible.
-Yet sometimes, when the Sun shone very clear, there appear'd faint
-Lineaments of a sixth and seventh. If the distance of the Chart from the
-Speculum was much greater or much less than that of six Feet, the Rings
-became dilute and vanish'd. And if the distance of the Speculum from the
-Window was much greater than that of six Feet, the reflected beam of
-Light would be so broad at the distance of six Feet from the Speculum
-where the Rings appear'd, as to obscure one or two of the innermost
-Rings. And therefore I usually placed the Speculum at about six Feet
-from the Window; so that its Focus might there fall in with the center
-of its concavity at the Rings upon the Chart. And this Posture is always
-to be understood in the following Observations where no other is
-express'd.
-
-_Obs._ 2. The Colours of these Rain-bows succeeded one another from the
-center outwards, in the same form and order with those which were made
-in the ninth Observation of the first Part of this Book by Light not
-reflected, but transmitted through the two Object-glasses. For, first,
-there was in their common center a white round Spot of faint Light,
-something broader than the reflected beam of Light, which beam sometimes
-fell upon the middle of the Spot, and sometimes by a little inclination
-of the Speculum receded from the middle, and left the Spot white to the
-center.
-
-This white Spot was immediately encompassed with a dark grey or russet,
-and that dark grey with the Colours of the first Iris; which Colours on
-the inside next the dark grey were a little violet and indigo, and next
-to that a blue, which on the outside grew pale, and then succeeded a
-little greenish yellow, and after that a brighter yellow, and then on
-the outward edge of the Iris a red which on the outside inclined to
-purple.
-
-This Iris was immediately encompassed with a second, whose Colours were
-in order from the inside outwards, purple, blue, green, yellow, light
-red, a red mix'd with purple.
-
-Then immediately follow'd the Colours of the third Iris, which were in
-order outwards a green inclining to purple, a good green, and a red more
-bright than that of the former Iris.
-
-The fourth and fifth Iris seem'd of a bluish green within, and red
-without, but so faintly that it was difficult to discern the Colours.
-
-_Obs._ 3. Measuring the Diameters of these Rings upon the Chart as
-accurately as I could, I found them also in the same proportion to one
-another with the Rings made by Light transmitted through the two
-Object-glasses. For the Diameters of the four first of the bright Rings
-measured between the brightest parts of their Orbits, at the distance of
-six Feet from the Speculum were 1-11/16, 2-3/8, 2-11/12, 3-3/8 Inches,
-whose Squares are in arithmetical progression of the numbers 1, 2, 3, 4.
-If the white circular Spot in the middle be reckon'd amongst the Rings,
-and its central Light, where it seems to be most luminous, be put
-equipollent to an infinitely little Ring; the Squares of the Diameters
-of the Rings will be in the progression 0, 1, 2, 3, 4, &c. I measured
-also the Diameters of the dark Circles between these luminous ones, and
-found their Squares in the progression of the numbers 1/2, 1-1/2, 2-1/2,
-3-1/2, &c. the Diameters of the first four at the distance of six Feet
-from the Speculum, being 1-3/16, 2-1/16, 2-2/3, 3-3/20 Inches. If the
-distance of the Chart from the Speculum was increased or diminished, the
-Diameters of the Circles were increased or diminished proportionally.
-
-_Obs._ 4. By the analogy between these Rings and those described in the
-Observations of the first Part of this Book, I suspected that there
-were many more of them which spread into one another, and by interfering
-mix'd their Colours, and diluted one another so that they could not be
-seen apart. I viewed them therefore through a Prism, as I did those in
-the 24th Observation of the first Part of this Book. And when the Prism
-was so placed as by refracting the Light of their mix'd Colours to
-separate them, and distinguish the Rings from one another, as it did
-those in that Observation, I could then see them distincter than before,
-and easily number eight or nine of them, and sometimes twelve or
-thirteen. And had not their Light been so very faint, I question not but
-that I might have seen many more.
-
-_Obs._ 5. Placing a Prism at the Window to refract the intromitted beam
-of Light, and cast the oblong Spectrum of Colours on the Speculum: I
-covered the Speculum with a black Paper which had in the middle of it a
-hole to let any one of the Colours pass through to the Speculum, whilst
-the rest were intercepted by the Paper. And now I found Rings of that
-Colour only which fell upon the Speculum. If the Speculum was
-illuminated with red, the Rings were totally red with dark Intervals, if
-with blue they were totally blue, and so of the other Colours. And when
-they were illuminated with any one Colour, the Squares of their
-Diameters measured between their most luminous Parts, were in the
-arithmetical Progression of the Numbers, 0, 1, 2, 3, 4 and the Squares
-of the Diameters of their dark Intervals in the Progression of the
-intermediate Numbers 1/2, 1-1/2, 2-1/2, 3-1/2. But if the Colour was
-varied, they varied their Magnitude. In the red they were largest, in
-the indigo and violet least, and in the intermediate Colours yellow,
-green, and blue, they were of several intermediate Bignesses answering
-to the Colour, that is, greater in yellow than in green, and greater in
-green than in blue. And hence I knew, that when the Speculum was
-illuminated with white Light, the red and yellow on the outside of the
-Rings were produced by the least refrangible Rays, and the blue and
-violet by the most refrangible, and that the Colours of each Ring spread
-into the Colours of the neighbouring Rings on either side, after the
-manner explain'd in the first and second Part of this Book, and by
-mixing diluted one another so that they could not be distinguish'd,
-unless near the Center where they were least mix'd. For in this
-Observation I could see the Rings more distinctly, and to a greater
-Number than before, being able in the yellow Light to number eight or
-nine of them, besides a faint shadow of a tenth. To satisfy my self how
-much the Colours of the several Rings spread into one another, I
-measured the Diameters of the second and third Rings, and found them
-when made by the Confine of the red and orange to be to the same
-Diameters when made by the Confine of blue and indigo, as 9 to 8, or
-thereabouts. For it was hard to determine this Proportion accurately.
-Also the Circles made successively by the red, yellow, and green,
-differ'd more from one another than those made successively by the
-green, blue, and indigo. For the Circle made by the violet was too dark
-to be seen. To carry on the Computation, let us therefore suppose that
-the Differences of the Diameters of the Circles made by the outmost red,
-the Confine of red and orange, the Confine of orange and yellow, the
-Confine of yellow and green, the Confine of green and blue, the Confine
-of blue and indigo, the Confine of indigo and violet, and outmost
-violet, are in proportion as the Differences of the Lengths of a
-Monochord which sound the Tones in an Eight; _sol_, _la_, _fa_, _sol_,
-_la_, _mi_, _fa_, _sol_, that is, as the Numbers 1/9, 1/18, 1/12, 1/12,
-2/27, 1/27, 1/18. And if the Diameter of the Circle made by the Confine
-of red and orange be 9A, and that of the Circle made by the Confine of
-blue and indigo be 8A as above; their difference 9A-8A will be to the
-difference of the Diameters of the Circles made by the outmost red, and
-by the Confine of red and orange, as 1/18 + 1/12 + 1/12 + 2/27 to 1/9,
-that is as 8/27 to 1/9, or 8 to 3, and to the difference of the Circles
-made by the outmost violet, and by the Confine of blue and indigo, as
-1/18 + 1/12 + 1/12 + 2/27 to 1/27 + 1/18, that is, as 8/27 to 5/54, or
-as 16 to 5. And therefore these differences will be 3/8A and 5/16A. Add
-the first to 9A and subduct the last from 8A, and you will have the
-Diameters of the Circles made by the least and most refrangible Rays
-75/8A and ((61-1/2)/8)A. These diameters are therefore to one another as
-75 to 61-1/2 or 50 to 41, and their Squares as 2500 to 1681, that is, as
-3 to 2 very nearly. Which proportion differs not much from the
-proportion of the Diameters of the Circles made by the outmost red and
-outmost violet, in the 13th Observation of the first part of this Book.
-
-_Obs._ 6. Placing my Eye where these Rings appear'd plainest, I saw the
-Speculum tinged all over with Waves of Colours, (red, yellow, green,
-blue;) like those which in the Observations of the first part of this
-Book appeared between the Object-glasses, and upon Bubbles of Water, but
-much larger. And after the manner of those, they were of various
-magnitudes in various Positions of the Eye, swelling and shrinking as I
-moved my Eye this way and that way. They were formed like Arcs of
-concentrick Circles, as those were; and when my Eye was over against the
-center of the concavity of the Speculum, (that is, 5 Feet and 10 Inches
-distant from the Speculum,) their common center was in a right Line with
-that center of concavity, and with the hole in the Window. But in other
-postures of my Eye their center had other positions. They appear'd by
-the Light of the Clouds propagated to the Speculum through the hole in
-the Window; and when the Sun shone through that hole upon the Speculum,
-his Light upon it was of the Colour of the Ring whereon it fell, but by
-its splendor obscured the Rings made by the Light of the Clouds, unless
-when the Speculum was removed to a great distance from the Window, so
-that his Light upon it might be broad and faint. By varying the position
-of my Eye, and moving it nearer to or farther from the direct beam of
-the Sun's Light, the Colour of the Sun's reflected Light constantly
-varied upon the Speculum, as it did upon my Eye, the same Colour always
-appearing to a Bystander upon my Eye which to me appear'd upon the
-Speculum. And thence I knew that the Rings of Colours upon the Chart
-were made by these reflected Colours, propagated thither from the
-Speculum in several Angles, and that their production depended not upon
-the termination of Light and Shadow.
-
-_Obs._ 7. By the Analogy of all these Phænomena with those of the like
-Rings of Colours described in the first part of this Book, it seemed to
-me that these Colours were produced by this thick Plate of Glass, much
-after the manner that those were produced by very thin Plates. For, upon
-trial, I found that if the Quick-silver were rubb'd off from the
-backside of the Speculum, the Glass alone would cause the same Rings of
-Colours, but much more faint than before; and therefore the Phænomenon
-depends not upon the Quick-silver, unless so far as the Quick-silver by
-increasing the Reflexion of the backside of the Glass increases the
-Light of the Rings of Colours. I found also that a Speculum of Metal
-without Glass made some Years since for optical uses, and very well
-wrought, produced none of those Rings; and thence I understood that
-these Rings arise not from one specular Surface alone, but depend upon
-the two Surfaces of the Plate of Glass whereof the Speculum was made,
-and upon the thickness of the Glass between them. For as in the 7th and
-19th Observations of the first part of this Book a thin Plate of Air,
-Water, or Glass of an even thickness appeared of one Colour when the
-Rays were perpendicular to it, of another when they were a little
-oblique, of another when more oblique, of another when still more
-oblique, and so on; so here, in the sixth Observation, the Light which
-emerged out of the Glass in several Obliquities, made the Glass appear
-of several Colours, and being propagated in those Obliquities to the
-Chart, there painted Rings of those Colours. And as the reason why a
-thin Plate appeared of several Colours in several Obliquities of the
-Rays, was, that the Rays of one and the same sort are reflected by the
-thin Plate at one obliquity and transmitted at another, and those of
-other sorts transmitted where these are reflected, and reflected where
-these are transmitted: So the reason why the thick Plate of Glass
-whereof the Speculum was made did appear of various Colours in various
-Obliquities, and in those Obliquities propagated those Colours to the
-Chart, was, that the Rays of one and the same sort did at one Obliquity
-emerge out of the Glass, at another did not emerge, but were reflected
-back towards the Quick-silver by the hither Surface of the Glass, and
-accordingly as the Obliquity became greater and greater, emerged and
-were reflected alternately for many Successions; and that in one and the
-same Obliquity the Rays of one sort were reflected, and those of another
-transmitted. This is manifest by the fifth Observation of this part of
-this Book. For in that Observation, when the Speculum was illuminated by
-any one of the prismatick Colours, that Light made many Rings of the
-same Colour upon the Chart with dark Intervals, and therefore at its
-emergence out of the Speculum was alternately transmitted and not
-transmitted from the Speculum to the Chart for many Successions,
-according to the various Obliquities of its Emergence. And when the
-Colour cast on the Speculum by the Prism was varied, the Rings became of
-the Colour cast on it, and varied their bigness with their Colour, and
-therefore the Light was now alternately transmitted and not transmitted
-from the Speculum to the Chart at other Obliquities than before. It
-seemed to me therefore that these Rings were of one and the same
-original with those of thin Plates, but yet with this difference, that
-those of thin Plates are made by the alternate Reflexions and
-Transmissions of the Rays at the second Surface of the Plate, after one
-passage through it; but here the Rays go twice through the Plate before
-they are alternately reflected and transmitted. First, they go through
-it from the first Surface to the Quick-silver, and then return through
-it from the Quick-silver to the first Surface, and there are either
-transmitted to the Chart or reflected back to the Quick-silver,
-accordingly as they are in their Fits of easy Reflexion or Transmission
-when they arrive at that Surface. For the Intervals of the Fits of the
-Rays which fall perpendicularly on the Speculum, and are reflected back
-in the same perpendicular Lines, by reason of the equality of these
-Angles and Lines, are of the same length and number within the Glass
-after Reflexion as before, by the 19th Proposition of the third part of
-this Book. And therefore since all the Rays that enter through the
-first Surface are in their Fits of easy Transmission at their entrance,
-and as many of these as are reflected by the second are in their Fits of
-easy Reflexion there, all these must be again in their Fits of easy
-Transmission at their return to the first, and by consequence there go
-out of the Glass to the Chart, and form upon it the white Spot of Light
-in the center of the Rings. For the reason holds good in all sorts of
-Rays, and therefore all sorts must go out promiscuously to that Spot,
-and by their mixture cause it to be white. But the Intervals of the Fits
-of those Rays which are reflected more obliquely than they enter, must
-be greater after Reflexion than before, by the 15th and 20th
-Propositions. And thence it may happen that the Rays at their return to
-the first Surface, may in certain Obliquities be in Fits of easy
-Reflexion, and return back to the Quick-silver, and in other
-intermediate Obliquities be again in Fits of easy Transmission, and so
-go out to the Chart, and paint on it the Rings of Colours about the
-white Spot. And because the Intervals of the Fits at equal obliquities
-are greater and fewer in the less refrangible Rays, and less and more
-numerous in the more refrangible, therefore the less refrangible at
-equal obliquities shall make fewer Rings than the more refrangible, and
-the Rings made by those shall be larger than the like number of Rings
-made by these; that is, the red Rings shall be larger than the yellow,
-the yellow than the green, the green than the blue, and the blue than
-the violet, as they were really found to be in the fifth Observation.
-And therefore the first Ring of all Colours encompassing the white Spot
-of Light shall be red without any violet within, and yellow, and green,
-and blue in the middle, as it was found in the second Observation; and
-these Colours in the second Ring, and those that follow, shall be more
-expanded, till they spread into one another, and blend one another by
-interfering.
-
-These seem to be the reasons of these Rings in general; and this put me
-upon observing the thickness of the Glass, and considering whether the
-dimensions and proportions of the Rings may be truly derived from it by
-computation.
-
-_Obs._ 8. I measured therefore the thickness of this concavo-convex
-Plate of Glass, and found it every where 1/4 of an Inch precisely. Now,
-by the sixth Observation of the first Part of this Book, a thin Plate of
-Air transmits the brightest Light of the first Ring, that is, the bright
-yellow, when its thickness is the 1/89000th part of an Inch; and by the
-tenth Observation of the same Part, a thin Plate of Glass transmits the
-same Light of the same Ring, when its thickness is less in proportion of
-the Sine of Refraction to the Sine of Incidence, that is, when its
-thickness is the 11/1513000th or 1/137545th part of an Inch, supposing
-the Sines are as 11 to 17. And if this thickness be doubled, it
-transmits the same bright Light of the second Ring; if tripled, it
-transmits that of the third, and so on; the bright yellow Light in all
-these cases being in its Fits of Transmission. And therefore if its
-thickness be multiplied 34386 times, so as to become 1/4 of an Inch, it
-transmits the same bright Light of the 34386th Ring. Suppose this be the
-bright yellow Light transmitted perpendicularly from the reflecting
-convex side of the Glass through the concave side to the white Spot in
-the center of the Rings of Colours on the Chart: And by a Rule in the
-7th and 19th Observations in the first Part of this Book, and by the
-15th and 20th Propositions of the third Part of this Book, if the Rays
-be made oblique to the Glass, the thickness of the Glass requisite to
-transmit the same bright Light of the same Ring in any obliquity, is to
-this thickness of 1/4 of an Inch, as the Secant of a certain Angle to
-the Radius, the Sine of which Angle is the first of an hundred and six
-arithmetical Means between the Sines of Incidence and Refraction,
-counted from the Sine of Incidence when the Refraction is made out of
-any plated Body into any Medium encompassing it; that is, in this case,
-out of Glass into Air. Now if the thickness of the Glass be increased by
-degrees, so as to bear to its first thickness, (_viz._ that of a quarter
-of an Inch,) the Proportions which 34386 (the number of Fits of the
-perpendicular Rays in going through the Glass towards the white Spot in
-the center of the Rings,) hath to 34385, 34384, 34383, and 34382, (the
-numbers of the Fits of the oblique Rays in going through the Glass
-towards the first, second, third, and fourth Rings of Colours,) and if
-the first thickness be divided into 100000000 equal parts, the increased
-thicknesses will be 100002908, 100005816, 100008725, and 100011633, and
-the Angles of which these thicknesses are Secants will be 26´ 13´´, 37´
-5´´, 45´ 6´´, and 52´ 26´´, the Radius being 100000000; and the Sines of
-these Angles are 762, 1079, 1321, and 1525, and the proportional Sines
-of Refraction 1172, 1659, 2031, and 2345, the Radius being 100000. For
-since the Sines of Incidence out of Glass into Air are to the Sines of
-Refraction as 11 to 17, and to the above-mentioned Secants as 11 to the
-first of 106 arithmetical Means between 11 and 17, that is, as 11 to
-11-6/106, those Secants will be to the Sines of Refraction as 11-6/106,
-to 17, and by this Analogy will give these Sines. So then, if the
-obliquities of the Rays to the concave Surface of the Glass be such that
-the Sines of their Refraction in passing out of the Glass through that
-Surface into the Air be 1172, 1659, 2031, 2345, the bright Light of the
-34386th Ring shall emerge at the thicknesses of the Glass, which are to
-1/4 of an Inch as 34386 to 34385, 34384, 34383, 34382, respectively. And
-therefore, if the thickness in all these Cases be 1/4 of an Inch (as it
-is in the Glass of which the Speculum was made) the bright Light of the
-34385th Ring shall emerge where the Sine of Refraction is 1172, and that
-of the 34384th, 34383th, and 34382th Ring where the Sine is 1659, 2031,
-and 2345 respectively. And in these Angles of Refraction the Light of
-these Rings shall be propagated from the Speculum to the Chart, and
-there paint Rings about the white central round Spot of Light which we
-said was the Light of the 34386th Ring. And the Semidiameters of these
-Rings shall subtend the Angles of Refraction made at the
-Concave-Surface of the Speculum, and by consequence their Diameters
-shall be to the distance of the Chart from the Speculum as those Sines
-of Refraction doubled are to the Radius, that is, as 1172, 1659, 2031,
-and 2345, doubled are to 100000. And therefore, if the distance of the
-Chart from the Concave-Surface of the Speculum be six Feet (as it was in
-the third of these Observations) the Diameters of the Rings of this
-bright yellow Light upon the Chart shall be 1'688, 2'389, 2'925, 3'375
-Inches: For these Diameters are to six Feet, as the above-mention'd
-Sines doubled are to the Radius. Now, these Diameters of the bright
-yellow Rings, thus found by Computation are the very same with those
-found in the third of these Observations by measuring them, _viz._ with
-1-11/16, 2-3/8, 2-11/12, and 3-3/8 Inches, and therefore the Theory of
-deriving these Rings from the thickness of the Plate of Glass of which
-the Speculum was made, and from the Obliquity of the emerging Rays
-agrees with the Observation. In this Computation I have equalled the
-Diameters of the bright Rings made by Light of all Colours, to the
-Diameters of the Rings made by the bright yellow. For this yellow makes
-the brightest Part of the Rings of all Colours. If you desire the
-Diameters of the Rings made by the Light of any other unmix'd Colour,
-you may find them readily by putting them to the Diameters of the bright
-yellow ones in a subduplicate Proportion of the Intervals of the Fits of
-the Rays of those Colours when equally inclined to the refracting or
-reflecting Surface which caused those Fits, that is, by putting the
-Diameters of the Rings made by the Rays in the Extremities and Limits of
-the seven Colours, red, orange, yellow, green, blue, indigo, violet,
-proportional to the Cube-roots of the Numbers, 1, 8/9, 5/6, 3/4, 2/3,
-3/5, 9/16, 1/2, which express the Lengths of a Monochord sounding the
-Notes in an Eighth: For by this means the Diameters of the Rings of
-these Colours will be found pretty nearly in the same Proportion to one
-another, which they ought to have by the fifth of these Observations.
-
-And thus I satisfy'd my self, that these Rings were of the same kind and
-Original with those of thin Plates, and by consequence that the Fits or
-alternate Dispositions of the Rays to be reflected and transmitted are
-propagated to great distances from every reflecting and refracting
-Surface. But yet to put the matter out of doubt, I added the following
-Observation.
-
-_Obs._ 9. If these Rings thus depend on the thickness of the Plate of
-Glass, their Diameters at equal distances from several Speculums made of
-such concavo-convex Plates of Glass as are ground on the same Sphere,
-ought to be reciprocally in a subduplicate Proportion of the thicknesses
-of the Plates of Glass. And if this Proportion be found true by
-experience it will amount to a demonstration that these Rings (like
-those formed in thin Plates) do depend on the thickness of the Glass. I
-procured therefore another concavo-convex Plate of Glass ground on both
-sides to the same Sphere with the former Plate. Its thickness was 5/62
-Parts of an Inch; and the Diameters of the three first bright Rings
-measured between the brightest Parts of their Orbits at the distance of
-six Feet from the Glass were 3·4-1/6·5-1/8· Inches. Now, the thickness
-of the other Glass being 1/4 of an Inch was to the thickness of this
-Glass as 1/4 to 5/62, that is as 31 to 10, or 310000000 to 100000000,
-and the Roots of these Numbers are 17607 and 10000, and in the
-Proportion of the first of these Roots to the second are the Diameters
-of the bright Rings made in this Observation by the thinner Glass,
-3·4-1/6·5-1/8, to the Diameters of the same Rings made in the third of
-these Observations by the thicker Glass 1-11/16, 2-3/8. 2-11/12, that
-is, the Diameters of the Rings are reciprocally in a subduplicate
-Proportion of the thicknesses of the Plates of Glass.
-
-So then in Plates of Glass which are alike concave on one side, and
-alike convex on the other side, and alike quick-silver'd on the convex
-sides, and differ in nothing but their thickness, the Diameters of the
-Rings are reciprocally in a subduplicate Proportion of the thicknesses
-of the Plates. And this shews sufficiently that the Rings depend on both
-the Surfaces of the Glass. They depend on the convex Surface, because
-they are more luminous when that Surface is quick-silver'd over than
-when it is without Quick-silver. They depend also upon the concave
-Surface, because without that Surface a Speculum makes them not. They
-depend on both Surfaces, and on the distances between them, because
-their bigness is varied by varying only that distance. And this
-dependence is of the same kind with that which the Colours of thin
-Plates have on the distance of the Surfaces of those Plates, because the
-bigness of the Rings, and their Proportion to one another, and the
-variation of their bigness arising from the variation of the thickness
-of the Glass, and the Orders of their Colours, is such as ought to
-result from the Propositions in the end of the third Part of this Book,
-derived from the Phænomena of the Colours of thin Plates set down in the
-first Part.
-
-There are yet other Phænomena of these Rings of Colours, but such as
-follow from the same Propositions, and therefore confirm both the Truth
-of those Propositions, and the Analogy between these Rings and the Rings
-of Colours made by very thin Plates. I shall subjoin some of them.
-
-_Obs._ 10. When the beam of the Sun's Light was reflected back from the
-Speculum not directly to the hole in the Window, but to a place a little
-distant from it, the common center of that Spot, and of all the Rings of
-Colours fell in the middle way between the beam of the incident Light,
-and the beam of the reflected Light, and by consequence in the center of
-the spherical concavity of the Speculum, whenever the Chart on which the
-Rings of Colours fell was placed at that center. And as the beam of
-reflected Light by inclining the Speculum receded more and more from the
-beam of incident Light and from the common center of the colour'd Rings
-between them, those Rings grew bigger and bigger, and so also did the
-white round Spot, and new Rings of Colours emerged successively out of
-their common center, and the white Spot became a white Ring
-encompassing them; and the incident and reflected beams of Light always
-fell upon the opposite parts of this white Ring, illuminating its
-Perimeter like two mock Suns in the opposite parts of an Iris. So then
-the Diameter of this Ring, measured from the middle of its Light on one
-side to the middle of its Light on the other side, was always equal to
-the distance between the middle of the incident beam of Light, and the
-middle of the reflected beam measured at the Chart on which the Rings
-appeared: And the Rays which form'd this Ring were reflected by the
-Speculum in Angles equal to their Angles of Incidence, and by
-consequence to their Angles of Refraction at their entrance into the
-Glass, but yet their Angles of Reflexion were not in the same Planes
-with their Angles of Incidence.
-
-_Obs._ 11. The Colours of the new Rings were in a contrary order to
-those of the former, and arose after this manner. The white round Spot
-of Light in the middle of the Rings continued white to the center till
-the distance of the incident and reflected beams at the Chart was about
-7/8 parts of an Inch, and then it began to grow dark in the middle. And
-when that distance was about 1-3/16 of an Inch, the white Spot was
-become a Ring encompassing a dark round Spot which in the middle
-inclined to violet and indigo. And the luminous Rings encompassing it
-were grown equal to those dark ones which in the four first Observations
-encompassed them, that is to say, the white Spot was grown a white Ring
-equal to the first of those dark Rings, and the first of those luminous
-Rings was now grown equal to the second of those dark ones, and the
-second of those luminous ones to the third of those dark ones, and so
-on. For the Diameters of the luminous Rings were now 1-3/16, 2-1/16,
-2-2/3, 3-3/20, &c. Inches.
-
-When the distance between the incident and reflected beams of Light
-became a little bigger, there emerged out of the middle of the dark Spot
-after the indigo a blue, and then out of that blue a pale green, and
-soon after a yellow and red. And when the Colour at the center was
-brightest, being between yellow and red, the bright Rings were grown
-equal to those Rings which in the four first Observations next
-encompassed them; that is to say, the white Spot in the middle of those
-Rings was now become a white Ring equal to the first of those bright
-Rings, and the first of those bright ones was now become equal to the
-second of those, and so on. For the Diameters of the white Ring, and of
-the other luminous Rings encompassing it, were now 1-11/16, 2-3/8,
-2-11/12, 3-3/8, &c. or thereabouts.
-
-When the distance of the two beams of Light at the Chart was a little
-more increased, there emerged out of the middle in order after the red,
-a purple, a blue, a green, a yellow, and a red inclining much to purple,
-and when the Colour was brightest being between yellow and red, the
-former indigo, blue, green, yellow and red, were become an Iris or Ring
-of Colours equal to the first of those luminous Rings which appeared in
-the four first Observations, and the white Ring which was now become
-the second of the luminous Rings was grown equal to the second of those,
-and the first of those which was now become the third Ring was become
-equal to the third of those, and so on. For their Diameters were
-1-11/16, 2-3/8, 2-11/12, 3-3/8 Inches, the distance of the two beams of
-Light, and the Diameter of the white Ring being 2-3/8 Inches.
-
-When these two beams became more distant there emerged out of the middle
-of the purplish red, first a darker round Spot, and then out of the
-middle of that Spot a brighter. And now the former Colours (purple,
-blue, green, yellow, and purplish red) were become a Ring equal to the
-first of the bright Rings mentioned in the four first Observations, and
-the Rings about this Ring were grown equal to the Rings about that
-respectively; the distance between the two beams of Light and the
-Diameter of the white Ring (which was now become the third Ring) being
-about 3 Inches.
-
-The Colours of the Rings in the middle began now to grow very dilute,
-and if the distance between the two Beams was increased half an Inch, or
-an Inch more, they vanish'd whilst the white Ring, with one or two of
-the Rings next it on either side, continued still visible. But if the
-distance of the two beams of Light was still more increased, these also
-vanished: For the Light which coming from several parts of the hole in
-the Window fell upon the Speculum in several Angles of Incidence, made
-Rings of several bignesses, which diluted and blotted out one another,
-as I knew by intercepting some part of that Light. For if I intercepted
-that part which was nearest to the Axis of the Speculum the Rings would
-be less, if the other part which was remotest from it they would be
-bigger.
-
-_Obs._ 12. When the Colours of the Prism were cast successively on the
-Speculum, that Ring which in the two last Observations was white, was of
-the same bigness in all the Colours, but the Rings without it were
-greater in the green than in the blue, and still greater in the yellow,
-and greatest in the red. And, on the contrary, the Rings within that
-white Circle were less in the green than in the blue, and still less in
-the yellow, and least in the red. For the Angles of Reflexion of those
-Rays which made this Ring, being equal to their Angles of Incidence, the
-Fits of every reflected Ray within the Glass after Reflexion are equal
-in length and number to the Fits of the same Ray within the Glass before
-its Incidence on the reflecting Surface. And therefore since all the
-Rays of all sorts at their entrance into the Glass were in a Fit of
-Transmission, they were also in a Fit of Transmission at their returning
-to the same Surface after Reflexion; and by consequence were
-transmitted, and went out to the white Ring on the Chart. This is the
-reason why that Ring was of the same bigness in all the Colours, and why
-in a mixture of all it appears white. But in Rays which are reflected in
-other Angles, the Intervals of the Fits of the least refrangible being
-greatest, make the Rings of their Colour in their progress from this
-white Ring, either outwards or inwards, increase or decrease by the
-greatest steps; so that the Rings of this Colour without are greatest,
-and within least. And this is the reason why in the last Observation,
-when the Speculum was illuminated with white Light, the exterior Rings
-made by all Colours appeared red without and blue within, and the
-interior blue without and red within.
-
-These are the Phænomena of thick convexo-concave Plates of Glass, which
-are every where of the same thickness. There are yet other Phænomena
-when these Plates are a little thicker on one side than on the other,
-and others when the Plates are more or less concave than convex, or
-plano-convex, or double-convex. For in all these cases the Plates make
-Rings of Colours, but after various manners; all which, so far as I have
-yet observed, follow from the Propositions in the end of the third part
-of this Book, and so conspire to confirm the truth of those
-Propositions. But the Phænomena are too various, and the Calculations
-whereby they follow from those Propositions too intricate to be here
-prosecuted. I content my self with having prosecuted this kind of
-Phænomena so far as to discover their Cause, and by discovering it to
-ratify the Propositions in the third Part of this Book.
-
-_Obs._ 13. As Light reflected by a Lens quick-silver'd on the backside
-makes the Rings of Colours above described, so it ought to make the like
-Rings of Colours in passing through a drop of Water. At the first
-Reflexion of the Rays within the drop, some Colours ought to be
-transmitted, as in the case of a Lens, and others to be reflected back
-to the Eye. For instance, if the Diameter of a small drop or globule of
-Water be about the 500th part of an Inch, so that a red-making Ray in
-passing through the middle of this globule has 250 Fits of easy
-Transmission within the globule, and that all the red-making Rays which
-are at a certain distance from this middle Ray round about it have 249
-Fits within the globule, and all the like Rays at a certain farther
-distance round about it have 248 Fits, and all those at a certain
-farther distance 247 Fits, and so on; these concentrick Circles of Rays
-after their transmission, falling on a white Paper, will make
-concentrick Rings of red upon the Paper, supposing the Light which
-passes through one single globule, strong enough to be sensible. And, in
-like manner, the Rays of other Colours will make Rings of other Colours.
-Suppose now that in a fair Day the Sun shines through a thin Cloud of
-such globules of Water or Hail, and that the globules are all of the
-same bigness; and the Sun seen through this Cloud shall appear
-encompassed with the like concentrick Rings of Colours, and the Diameter
-of the first Ring of red shall be 7-1/4 Degrees, that of the second
-10-1/4 Degrees, that of the third 12 Degrees 33 Minutes. And accordingly
-as the Globules of Water are bigger or less, the Rings shall be less or
-bigger. This is the Theory, and Experience answers it. For in _June_
-1692, I saw by reflexion in a Vessel of stagnating Water three Halos,
-Crowns, or Rings of Colours about the Sun, like three little Rain-bows,
-concentrick to his Body. The Colours of the first or innermost Crown
-were blue next the Sun, red without, and white in the middle between the
-blue and red. Those of the second Crown were purple and blue within, and
-pale red without, and green in the middle. And those of the third were
-pale blue within, and pale red without; these Crowns enclosed one
-another immediately, so that their Colours proceeded in this continual
-order from the Sun outward: blue, white, red; purple, blue, green, pale
-yellow and red; pale blue, pale red. The Diameter of the second Crown
-measured from the middle of the yellow and red on one side of the Sun,
-to the middle of the same Colour on the other side was 9-1/3 Degrees, or
-thereabouts. The Diameters of the first and third I had not time to
-measure, but that of the first seemed to be about five or six Degrees,
-and that of the third about twelve. The like Crowns appear sometimes
-about the Moon; for in the beginning of the Year 1664, _Febr._ 19th at
-Night, I saw two such Crowns about her. The Diameter of the first or
-innermost was about three Degrees, and that of the second about five
-Degrees and an half. Next about the Moon was a Circle of white, and next
-about that the inner Crown, which was of a bluish green within next the
-white, and of a yellow and red without, and next about these Colours
-were blue and green on the inside of the outward Crown, and red on the
-outside of it. At the same time there appear'd a Halo about 22 Degrees
-35´ distant from the center of the Moon. It was elliptical, and its long
-Diameter was perpendicular to the Horizon, verging below farthest from
-the Moon. I am told that the Moon has sometimes three or more
-concentrick Crowns of Colours encompassing one another next about her
-Body. The more equal the globules of Water or Ice are to one another,
-the more Crowns of Colours will appear, and the Colours will be the more
-lively. The Halo at the distance of 22-1/2 Degrees from the Moon is of
-another sort. By its being oval and remoter from the Moon below than
-above, I conclude, that it was made by Refraction in some sort of Hail
-or Snow floating in the Air in an horizontal posture, the refracting
-Angle being about 58 or 60 Degrees.
-
-
-
-
-THE
-
-THIRD BOOK
-
-OF
-
-OPTICKS
-
-
-_PART I._
-
-_Observations concerning the Inflexions of the Rays of Light, and the
-Colours made thereby._
-
-Grimaldo has inform'd us, that if a beam of the Sun's Light be let into
-a dark Room through a very small hole, the Shadows of things in this
-Light will be larger than they ought to be if the Rays went on by the
-Bodies in straight Lines, and that these Shadows have three parallel
-Fringes, Bands or Ranks of colour'd Light adjacent to them. But if the
-Hole be enlarged the Fringes grow broad and run into one another, so
-that they cannot be distinguish'd. These broad Shadows and Fringes have
-been reckon'd by some to proceed from the ordinary refraction of the
-Air, but without due examination of the Matter. For the circumstances of
-the Phænomenon, so far as I have observed them, are as follows.
-
-_Obs._ 1. I made in a piece of Lead a small Hole with a Pin, whose
-breadth was the 42d part of an Inch. For 21 of those Pins laid together
-took up the breadth of half an Inch. Through this Hole I let into my
-darken'd Chamber a beam of the Sun's Light, and found that the Shadows
-of Hairs, Thred, Pins, Straws, and such like slender Substances placed
-in this beam of Light, were considerably broader than they ought to be,
-if the Rays of Light passed on by these Bodies in right Lines. And
-particularly a Hair of a Man's Head, whose breadth was but the 280th
-part of an Inch, being held in this Light, at the distance of about
-twelve Feet from the Hole, did cast a Shadow which at the distance of
-four Inches from the Hair was the sixtieth part of an Inch broad, that
-is, above four times broader than the Hair, and at the distance of two
-Feet from the Hair was about the eight and twentieth part of an Inch
-broad, that is, ten times broader than the Hair, and at the distance of
-ten Feet was the eighth part of an Inch broad, that is 35 times broader.
-
-Nor is it material whether the Hair be encompassed with Air, or with any
-other pellucid Substance. For I wetted a polish'd Plate of Glass, and
-laid the Hair in the Water upon the Glass, and then laying another
-polish'd Plate of Glass upon it, so that the Water might fill up the
-space between the Glasses, I held them in the aforesaid beam of Light,
-so that the Light might pass through them perpendicularly, and the
-Shadow of the Hair was at the same distances as big as before. The
-Shadows of Scratches made in polish'd Plates of Glass were also much
-broader than they ought to be, and the Veins in polish'd Plates of Glass
-did also cast the like broad Shadows. And therefore the great breadth of
-these Shadows proceeds from some other cause than the Refraction of the
-Air.
-
-Let the Circle X [in _Fig._ 1.] represent the middle of the Hair; ADG,
-BEH, CFI, three Rays passing by one side of the Hair at several
-distances; KNQ, LOR, MPS, three other Rays passing by the other side of
-the Hair at the like distances; D, E, F, and N, O, P, the places where
-the Rays are bent in their passage by the Hair; G, H, I, and Q, R, S,
-the places where the Rays fall on a Paper GQ; IS the breadth of the
-Shadow of the Hair cast on the Paper, and TI, VS, two Rays passing to
-the Points I and S without bending when the Hair is taken away. And it's
-manifest that all the Light between these two Rays TI and VS is bent in
-passing by the Hair, and turned aside from the Shadow IS, because if any
-part of this Light were not bent it would fall on the Paper within the
-Shadow, and there illuminate the Paper, contrary to experience. And
-because when the Paper is at a great distance from the Hair, the Shadow
-is broad, and therefore the Rays TI and VS are at a great distance from
-one another, it follows that the Hair acts upon the Rays of Light at a
-good distance in their passing by it. But the Action is strongest on the
-Rays which pass by at least distances, and grows weaker and weaker
-accordingly as the Rays pass by at distances greater and greater, as is
-represented in the Scheme: For thence it comes to pass, that the Shadow
-of the Hair is much broader in proportion to the distance of the Paper
-from the Hair, when the Paper is nearer the Hair, than when it is at a
-great distance from it.
-
-_Obs._ 2. The Shadows of all Bodies (Metals, Stones, Glass, Wood, Horn,
-Ice, &c.) in this Light were border'd with three Parallel Fringes or
-Bands of colour'd Light, whereof that which was contiguous to the Shadow
-was broadest and most luminous, and that which was remotest from it was
-narrowest, and so faint, as not easily to be visible. It was difficult
-to distinguish the Colours, unless when the Light fell very obliquely
-upon a smooth Paper, or some other smooth white Body, so as to make them
-appear much broader than they would otherwise do. And then the Colours
-were plainly visible in this Order: The first or innermost Fringe was
-violet and deep blue next the Shadow, and then light blue, green, and
-yellow in the middle, and red without. The second Fringe was almost
-contiguous to the first, and the third to the second, and both were blue
-within, and yellow and red without, but their Colours were very faint,
-especially those of the third. The Colours therefore proceeded in this
-order from the Shadow; violet, indigo, pale blue, green, yellow, red;
-blue, yellow, red; pale blue, pale yellow and red. The Shadows made by
-Scratches and Bubbles in polish'd Plates of Glass were border'd with the
-like Fringes of colour'd Light. And if Plates of Looking-glass sloop'd
-off near the edges with a Diamond-cut, be held in the same beam of
-Light, the Light which passes through the parallel Planes of the Glass
-will be border'd with the like Fringes of Colours where those Planes
-meet with the Diamond-cut, and by this means there will sometimes appear
-four or five Fringes of Colours. Let AB, CD [in _Fig._ 2.] represent the
-parallel Planes of a Looking-glass, and BD the Plane of the Diamond-cut,
-making at B a very obtuse Angle with the Plane AB. And let all the Light
-between the Rays ENI and FBM pass directly through the parallel Planes
-of the Glass, and fall upon the Paper between I and M, and all the Light
-between the Rays GO and HD be refracted by the oblique Plane of the
-Diamond-cut BD, and fall upon the Paper between K and L; and the Light
-which passes directly through the parallel Planes of the Glass, and
-falls upon the Paper between I and M, will be border'd with three or
-more Fringes at M.
-
-[Illustration: FIG. 1.]
-
-[Illustration: FIG. 2.]
-
-So by looking on the Sun through a Feather or black Ribband held close
-to the Eye, several Rain-bows will appear; the Shadows which the Fibres
-or Threds cast on the _Tunica Retina_, being border'd with the like
-Fringes of Colours.
-
-_Obs._ 3. When the Hair was twelve Feet distant from this Hole, and its
-Shadow fell obliquely upon a flat white Scale of Inches and Parts of an
-Inch placed half a Foot beyond it, and also when the Shadow fell
-perpendicularly upon the same Scale placed nine Feet beyond it; I
-measured the breadth of the Shadow and Fringes as accurately as I could,
-and found them in Parts of an Inch as follows.
-
--------------------------------------------+-----------+--------
- | half a | Nine
- At the Distance of | Foot | Feet
--------------------------------------------+-----------+--------
-The breadth of the Shadow | 1/54 | 1/9
--------------------------------------------+-----------+--------
-The breadth between the Middles of the | 1/38 |
- brightest Light of the innermost Fringes | or |
- on either side the Shadow | 1/39 | 7/50
--------------------------------------------+-----------+--------
-The breadth between the Middles of the | |
- brightest Light of the middlemost Fringes| |
- on either side the Shadow | 1/23-1/2 | 4/17
--------------------------------------------+-----------+--------
-The breadth between the Middles of the | 1/18 |
- brightest Light of the outmost Fringes | or |
- on either side the Shadow | 1/18-1/2 | 3/10
--------------------------------------------+-----------+--------
-The distance between the Middles of the | |
- brightest Light of the first and second | |
- Fringes | 1/120 | 1/21
--------------------------------------------+-----------+--------
-The distance between the Middles of the | |
- brightest Light of the second and third | |
- Fringes | 1/170 | 1/31
--------------------------------------------+-----------+--------
-The breadth of the luminous Part (green, | |
- white, yellow, and red) of the first | |
- Fringe | 1/170 | 1/32
--------------------------------------------+-----------+--------
-The breadth of the darker Space between | |
- the first and second Fringes | 1/240 | 1/45
--------------------------------------------+-----------+--------
-The breadth of the luminous Part of the | |
- second Fringe | 1/290 | 1/55
--------------------------------------------+-----------+--------
-The breadth of the darker Space between | |
- the second and third Fringes | 1/340 | 1/63
--------------------------------------------+-----------+--------
-
-These Measures I took by letting the Shadow of the Hair, at half a Foot
-distance, fall so obliquely on the Scale, as to appear twelve times
-broader than when it fell perpendicularly on it at the same distance,
-and setting down in this Table the twelfth part of the Measures I then
-took.
-
-_Obs._ 4. When the Shadow and Fringes were cast obliquely upon a smooth
-white Body, and that Body was removed farther and farther from the Hair,
-the first Fringe began to appear and look brighter than the rest of the
-Light at the distance of less than a quarter of an Inch from the Hair,
-and the dark Line or Shadow between that and the second Fringe began to
-appear at a less distance from the Hair than that of the third part of
-an Inch. The second Fringe began to appear at a distance from the Hair
-of less than half an Inch, and the Shadow between that and the third
-Fringe at a distance less than an inch, and the third Fringe at a
-distance less than three Inches. At greater distances they became much
-more sensible, but kept very nearly the same proportion of their
-breadths and intervals which they had at their first appearing. For the
-distance between the middle of the first, and middle of the second
-Fringe, was to the distance between the middle of the second and middle
-of the third Fringe, as three to two, or ten to seven. And the last of
-these two distances was equal to the breadth of the bright Light or
-luminous part of the first Fringe. And this breadth was to the breadth
-of the bright Light of the second Fringe as seven to four, and to the
-dark Interval of the first and second Fringe as three to two, and to
-the like dark Interval between the second and third as two to one. For
-the breadths of the Fringes seem'd to be in the progression of the
-Numbers 1, sqrt(1/3), sqrt(1/5), and their Intervals to be in the
-same progression with them; that is, the Fringes and their Intervals
-together to be in the continual progression of the Numbers 1,
-sqrt(1/2), sqrt(1/3), sqrt(1/4), sqrt(1/5), or thereabouts. And
-these Proportions held the same very nearly at all distances from the
-Hair; the dark Intervals of the Fringes being as broad in proportion to
-the breadth of the Fringes at their first appearance as afterwards at
-great distances from the Hair, though not so dark and distinct.
-
-_Obs._ 5. The Sun shining into my darken'd Chamber through a hole a
-quarter of an Inch broad, I placed at the distance of two or three Feet
-from the Hole a Sheet of Pasteboard, which was black'd all over on both
-sides, and in the middle of it had a hole about three quarters of an
-Inch square for the Light to pass through. And behind the hole I
-fasten'd to the Pasteboard with Pitch the blade of a sharp Knife, to
-intercept some part of the Light which passed through the hole. The
-Planes of the Pasteboard and blade of the Knife were parallel to one
-another, and perpendicular to the Rays. And when they were so placed
-that none of the Sun's Light fell on the Pasteboard, but all of it
-passed through the hole to the Knife, and there part of it fell upon the
-blade of the Knife, and part of it passed by its edge; I let this part
-of the Light which passed by, fall on a white Paper two or three Feet
-beyond the Knife, and there saw two streams of faint Light shoot out
-both ways from the beam of Light into the shadow, like the Tails of
-Comets. But because the Sun's direct Light by its brightness upon the
-Paper obscured these faint streams, so that I could scarce see them, I
-made a little hole in the midst of the Paper for that Light to pass
-through and fall on a black Cloth behind it; and then I saw the two
-streams plainly. They were like one another, and pretty nearly equal in
-length, and breadth, and quantity of Light. Their Light at that end next
-the Sun's direct Light was pretty strong for the space of about a
-quarter of an Inch, or half an Inch, and in all its progress from that
-direct Light decreased gradually till it became insensible. The whole
-length of either of these streams measured upon the paper at the
-distance of three Feet from the Knife was about six or eight Inches; so
-that it subtended an Angle at the edge of the Knife of about 10 or 12,
-or at most 14 Degrees. Yet sometimes I thought I saw it shoot three or
-four Degrees farther, but with a Light so very faint that I could scarce
-perceive it, and suspected it might (in some measure at least) arise
-from some other cause than the two streams did. For placing my Eye in
-that Light beyond the end of that stream which was behind the Knife, and
-looking towards the Knife, I could see a line of Light upon its edge,
-and that not only when my Eye was in the line of the Streams, but also
-when it was without that line either towards the point of the Knife, or
-towards the handle. This line of Light appear'd contiguous to the edge
-of the Knife, and was narrower than the Light of the innermost Fringe,
-and narrowest when my Eye was farthest from the direct Light, and
-therefore seem'd to pass between the Light of that Fringe and the edge
-of the Knife, and that which passed nearest the edge to be most bent,
-though not all of it.
-
-_Obs._ 6. I placed another Knife by this, so that their edges might be
-parallel, and look towards one another, and that the beam of Light might
-fall upon both the Knives, and some part of it pass between their edges.
-And when the distance of their edges was about the 400th part of an
-Inch, the stream parted in the middle, and left a Shadow between the two
-parts. This Shadow was so black and dark that all the Light which passed
-between the Knives seem'd to be bent, and turn'd aside to the one hand
-or to the other. And as the Knives still approach'd one another the
-Shadow grew broader, and the streams shorter at their inward ends which
-were next the Shadow, until upon the contact of the Knives the whole
-Light vanish'd, leaving its place to the Shadow.
-
-And hence I gather that the Light which is least bent, and goes to the
-inward ends of the streams, passes by the edges of the Knives at the
-greatest distance, and this distance when the Shadow begins to appear
-between the streams, is about the 800th part of an Inch. And the Light
-which passes by the edges of the Knives at distances still less and
-less, is more and more bent, and goes to those parts of the streams
-which are farther and farther from the direct Light; because when the
-Knives approach one another till they touch, those parts of the streams
-vanish last which are farthest from the direct Light.
-
-_Obs._ 7. In the fifth Observation the Fringes did not appear, but by
-reason of the breadth of the hole in the Window became so broad as to
-run into one another, and by joining, to make one continued Light in the
-beginning of the streams. But in the sixth, as the Knives approached one
-another, a little before the Shadow appeared between the two streams,
-the Fringes began to appear on the inner ends of the Streams on either
-side of the direct Light; three on one side made by the edge of one
-Knife, and three on the other side made by the edge of the other Knife.
-They were distinctest when the Knives were placed at the greatest
-distance from the hole in the Window, and still became more distinct by
-making the hole less, insomuch that I could sometimes see a faint
-lineament of a fourth Fringe beyond the three above mention'd. And as
-the Knives continually approach'd one another, the Fringes grew
-distincter and larger, until they vanish'd. The outmost Fringe vanish'd
-first, and the middlemost next, and the innermost last. And after they
-were all vanish'd, and the line of Light which was in the middle between
-them was grown very broad, enlarging it self on both sides into the
-streams of Light described in the fifth Observation, the above-mention'd
-Shadow began to appear in the middle of this line, and divide it along
-the middle into two lines of Light, and increased until the whole Light
-vanish'd. This enlargement of the Fringes was so great that the Rays
-which go to the innermost Fringe seem'd to be bent above twenty times
-more when this Fringe was ready to vanish, than when one of the Knives
-was taken away.
-
-And from this and the former Observation compared, I gather, that the
-Light of the first Fringe passed by the edge of the Knife at a distance
-greater than the 800th part of an Inch, and the Light of the second
-Fringe passed by the edge of the Knife at a greater distance than the
-Light of the first Fringe did, and that of the third at a greater
-distance than that of the second, and that of the streams of Light
-described in the fifth and sixth Observations passed by the edges of the
-Knives at less distances than that of any of the Fringes.
-
-_Obs._ 8. I caused the edges of two Knives to be ground truly strait,
-and pricking their points into a Board so that their edges might look
-towards one another, and meeting near their points contain a rectilinear
-Angle, I fasten'd their Handles together with Pitch to make this Angle
-invariable. The distance of the edges of the Knives from one another at
-the distance of four Inches from the angular Point, where the edges of
-the Knives met, was the eighth part of an Inch; and therefore the Angle
-contain'd by the edges was about one Degree 54: The Knives thus fix'd
-together I placed in a beam of the Sun's Light, let into my darken'd
-Chamber through a Hole the 42d Part of an Inch wide, at the distance of
-10 or 15 Feet from the Hole, and let the Light which passed between
-their edges fall very obliquely upon a smooth white Ruler at the
-distance of half an Inch, or an Inch from the Knives, and there saw the
-Fringes by the two edges of the Knives run along the edges of the
-Shadows of the Knives in Lines parallel to those edges without growing
-sensibly broader, till they met in Angles equal to the Angle contained
-by the edges of the Knives, and where they met and joined they ended
-without crossing one another. But if the Ruler was held at a much
-greater distance from the Knives, the Fringes where they were farther
-from the Place of their Meeting, were a little narrower, and became
-something broader and broader as they approach'd nearer and nearer to
-one another, and after they met they cross'd one another, and then
-became much broader than before.
-
-Whence I gather that the distances at which the Fringes pass by the
-Knives are not increased nor alter'd by the approach of the Knives, but
-the Angles in which the Rays are there bent are much increased by that
-approach; and that the Knife which is nearest any Ray determines which
-way the Ray shall be bent, and the other Knife increases the bent.
-
-_Obs._ 9. When the Rays fell very obliquely upon the Ruler at the
-distance of the third Part of an Inch from the Knives, the dark Line
-between the first and second Fringe of the Shadow of one Knife, and the
-dark Line between the first and second Fringe of the Shadow of the other
-knife met with one another, at the distance of the fifth Part of an Inch
-from the end of the Light which passed between the Knives at the
-concourse of their edges. And therefore the distance of the edges of the
-Knives at the meeting of these dark Lines was the 160th Part of an Inch.
-For as four Inches to the eighth Part of an Inch, so is any Length of
-the edges of the Knives measured from the point of their concourse to
-the distance of the edges of the Knives at the end of that Length, and
-so is the fifth Part of an Inch to the 160th Part. So then the dark
-Lines above-mention'd meet in the middle of the Light which passes
-between the Knives where they are distant the 160th Part of an Inch, and
-the one half of that Light passes by the edge of one Knife at a distance
-not greater than the 320th Part of an Inch, and falling upon the Paper
-makes the Fringes of the Shadow of that Knife, and the other half passes
-by the edge of the other Knife, at a distance not greater than the 320th
-Part of an Inch, and falling upon the Paper makes the Fringes of the
-Shadow of the other Knife. But if the Paper be held at a distance from
-the Knives greater than the third Part of an Inch, the dark Lines
-above-mention'd meet at a greater distance than the fifth Part of an
-Inch from the end of the Light which passed between the Knives at the
-concourse of their edges; and therefore the Light which falls upon the
-Paper where those dark Lines meet passes between the Knives where the
-edges are distant above the 160th part of an Inch.
-
-For at another time, when the two Knives were distant eight Feet and
-five Inches from the little hole in the Window, made with a small Pin as
-above, the Light which fell upon the Paper where the aforesaid dark
-lines met, passed between the Knives, where the distance between their
-edges was as in the following Table, when the distance of the Paper from
-the Knives was also as follows.
-
------------------------------+------------------------------
- | Distances between the edges
- Distances of the Paper | of the Knives in millesimal
- from the Knives in Inches. | parts of an Inch.
------------------------------+------------------------------
- 1-1/2. | 0'012
- 3-1/3. | 0'020
- 8-3/5. | 0'034
- 32. | 0'057
- 96. | 0'081
- 131. | 0'087
-_____________________________|______________________________
-
-And hence I gather, that the Light which makes the Fringes upon the
-Paper is not the same Light at all distances of the Paper from the
-Knives, but when the Paper is held near the Knives, the Fringes are made
-by Light which passes by the edges of the Knives at a less distance, and
-is more bent than when the Paper is held at a greater distance from the
-Knives.
-
-[Illustration: FIG. 3.]
-
-_Obs._ 10. When the Fringes of the Shadows of the Knives fell
-perpendicularly upon a Paper at a great distance from the Knives, they
-were in the form of Hyperbola's, and their Dimensions were as follows.
-Let CA, CB [in _Fig._ 3.] represent Lines drawn upon the Paper parallel
-to the edges of the Knives, and between which all the Light would fall,
-if it passed between the edges of the Knives without inflexion; DE a
-Right Line drawn through C making the Angles ACD, BCE, equal to one
-another, and terminating all the Light which falls upon the Paper from
-the point where the edges of the Knives meet; _eis_, _fkt_, and _glv_,
-three hyperbolical Lines representing the Terminus of the Shadow of one
-of the Knives, the dark Line between the first and second Fringes of
-that Shadow, and the dark Line between the second and third Fringes of
-the same Shadow; _xip_, _ykq_, and _zlr_, three other hyperbolical Lines
-representing the Terminus of the Shadow of the other Knife, the dark
-Line between the first and second Fringes of that Shadow, and the dark
-line between the second and third Fringes of the same Shadow. And
-conceive that these three Hyperbola's are like and equal to the former
-three, and cross them in the points _i_, _k_, and _l_, and that the
-Shadows of the Knives are terminated and distinguish'd from the first
-luminous Fringes by the lines _eis_ and _xip_, until the meeting and
-crossing of the Fringes, and then those lines cross the Fringes in the
-form of dark lines, terminating the first luminous Fringes within side,
-and distinguishing them from another Light which begins to appear at
-_i_, and illuminates all the triangular space _ip_DE_s_ comprehended by
-these dark lines, and the right line DE. Of these Hyperbola's one
-Asymptote is the line DE, and their other Asymptotes are parallel to the
-lines CA and CB. Let _rv_ represent a line drawn any where upon the
-Paper parallel to the Asymptote DE, and let this line cross the right
-lines AC in _m_, and BC in _n_, and the six dark hyperbolical lines in
-_p_, _q_, _r_; _s_, _t_, _v_; and by measuring the distances _ps_, _qt_,
-_rv_, and thence collecting the lengths of the Ordinates _np_, _nq_,
-_nr_ or _ms_, _mt_, _mv_, and doing this at several distances of the
-line _rv_ from the Asymptote DD, you may find as many points of these
-Hyperbola's as you please, and thereby know that these curve lines are
-Hyperbola's differing little from the conical Hyperbola. And by
-measuring the lines C_i_, C_k_, C_l_, you may find other points of these
-Curves.
-
-For instance; when the Knives were distant from the hole in the Window
-ten Feet, and the Paper from the Knives nine Feet, and the Angle
-contained by the edges of the Knives to which the Angle ACB is equal,
-was subtended by a Chord which was to the Radius as 1 to 32, and the
-distance of the line _rv_ from the Asymptote DE was half an Inch: I
-measured the lines _ps_, _qt_, _rv_, and found them 0'35, 0'65, 0'98
-Inches respectively; and by adding to their halfs the line 1/2 _mn_,
-(which here was the 128th part of an Inch, or 0'0078 Inches,) the Sums
-_np_, _nq_, _nr_, were 0'1828, 0'3328, 0'4978 Inches. I measured also
-the distances of the brightest parts of the Fringes which run between
-_pq_ and _st_, _qr_ and _tv_, and next beyond _r_ and _v_, and found
-them 0'5, 0'8, and 1'17 Inches.
-
-_Obs._ 11. The Sun shining into my darken'd Room through a small round
-hole made in a Plate of Lead with a slender Pin, as above; I placed at
-the hole a Prism to refract the Light, and form on the opposite Wall the
-Spectrum of Colours, described in the third Experiment of the first
-Book. And then I found that the Shadows of all Bodies held in the
-colour'd Light between the Prism and the Wall, were border'd with
-Fringes of the Colour of that Light in which they were held. In the full
-red Light they were totally red without any sensible blue or violet, and
-in the deep blue Light they were totally blue without any sensible red
-or yellow; and so in the green Light they were totally green, excepting
-a little yellow and blue, which were mixed in the green Light of the
-Prism. And comparing the Fringes made in the several colour'd Lights, I
-found that those made in the red Light were largest, those made in the
-violet were least, and those made in the green were of a middle bigness.
-For the Fringes with which the Shadow of a Man's Hair were bordered,
-being measured cross the Shadow at the distance of six Inches from the
-Hair, the distance between the middle and most luminous part of the
-first or innermost Fringe on one side of the Shadow, and that of the
-like Fringe on the other side of the Shadow, was in the full red Light
-1/37-1/4 of an Inch, and in the full violet 7/46. And the like distance
-between the middle and most luminous parts of the second Fringes on
-either side the Shadow was in the full red Light 1/22, and in the violet
-1/27 of an Inch. And these distances of the Fringes held the same
-proportion at all distances from the Hair without any sensible
-variation.
-
-So then the Rays which made these Fringes in the red Light passed by the
-Hair at a greater distance than those did which made the like Fringes in
-the violet; and therefore the Hair in causing these Fringes acted alike
-upon the red Light or least refrangible Rays at a greater distance, and
-upon the violet or most refrangible Rays at a less distance, and by
-those actions disposed the red Light into Larger Fringes, and the violet
-into smaller, and the Lights of intermediate Colours into Fringes of
-intermediate bignesses without changing the Colour of any sort of Light.
-
-When therefore the Hair in the first and second of these Observations
-was held in the white beam of the Sun's Light, and cast a Shadow which
-was border'd with three Fringes of coloured Light, those Colours arose
-not from any new modifications impress'd upon the Rays of Light by the
-Hair, but only from the various inflexions whereby the several Sorts of
-Rays were separated from one another, which before separation, by the
-mixture of all their Colours, composed the white beam of the Sun's
-Light, but whenever separated compose Lights of the several Colours
-which they are originally disposed to exhibit. In this 11th Observation,
-where the Colours are separated before the Light passes by the Hair, the
-least refrangible Rays, which when separated from the rest make red,
-were inflected at a greater distance from the Hair, so as to make three
-red Fringes at a greater distance from the middle of the Shadow of the
-Hair; and the most refrangible Rays which when separated make violet,
-were inflected at a less distance from the Hair, so as to make three
-violet Fringes at a less distance from the middle of the Shadow of the
-Hair. And other Rays of intermediate degrees of Refrangibility were
-inflected at intermediate distances from the Hair, so as to make Fringes
-of intermediate Colours at intermediate distances from the middle of the
-Shadow of the Hair. And in the second Observation, where all the Colours
-are mix'd in the white Light which passes by the Hair, these Colours are
-separated by the various inflexions of the Rays, and the Fringes which
-they make appear all together, and the innermost Fringes being
-contiguous make one broad Fringe composed of all the Colours in due
-order, the violet lying on the inside of the Fringe next the Shadow, the
-red on the outside farthest from the Shadow, and the blue, green, and
-yellow, in the middle. And, in like manner, the middlemost Fringes of
-all the Colours lying in order, and being contiguous, make another broad
-Fringe composed of all the Colours; and the outmost Fringes of all the
-Colours lying in order, and being contiguous, make a third broad Fringe
-composed of all the Colours. These are the three Fringes of colour'd
-Light with which the Shadows of all Bodies are border'd in the second
-Observation.
-
-When I made the foregoing Observations, I design'd to repeat most of
-them with more care and exactness, and to make some new ones for
-determining the manner how the Rays of Light are bent in their passage
-by Bodies, for making the Fringes of Colours with the dark lines between
-them. But I was then interrupted, and cannot now think of taking these
-things into farther Consideration. And since I have not finish'd this
-part of my Design, I shall conclude with proposing only some Queries, in
-order to a farther search to be made by others.
-
-_Query_ 1. Do not Bodies act upon Light at a distance, and by their
-action bend its Rays; and is not this action (_cæteris paribus_)
-strongest at the least distance?
-
-_Qu._ 2. Do not the Rays which differ in Refrangibility differ also in
-Flexibity; and are they not by their different Inflexions separated from
-one another, so as after separation to make the Colours in the three
-Fringes above described? And after what manner are they inflected to
-make those Fringes?
-
-_Qu._ 3. Are not the Rays of Light in passing by the edges and sides of
-Bodies, bent several times backwards and forwards, with a motion like
-that of an Eel? And do not the three Fringes of colour'd Light
-above-mention'd arise from three such bendings?
-
-_Qu._ 4. Do not the Rays of Light which fall upon Bodies, and are
-reflected or refracted, begin to bend before they arrive at the Bodies;
-and are they not reflected, refracted, and inflected, by one and the
-same Principle, acting variously in various Circumstances?
-
-_Qu._ 5. Do not Bodies and Light act mutually upon one another; that is
-to say, Bodies upon Light in emitting, reflecting, refracting and
-inflecting it, and Light upon Bodies for heating them, and putting their
-parts into a vibrating motion wherein heat consists?
-
-_Qu._ 6. Do not black Bodies conceive heat more easily from Light than
-those of other Colours do, by reason that the Light falling on them is
-not reflected outwards, but enters the Bodies, and is often reflected
-and refracted within them, until it be stifled and lost?
-
-_Qu._ 7. Is not the strength and vigor of the action between Light and
-sulphureous Bodies observed above, one reason why sulphureous Bodies
-take fire more readily, and burn more vehemently than other Bodies do?
-
-_Qu._ 8. Do not all fix'd Bodies, when heated beyond a certain degree,
-emit Light and shine; and is not this Emission perform'd by the
-vibrating motions of their parts? And do not all Bodies which abound
-with terrestrial parts, and especially with sulphureous ones, emit Light
-as often as those parts are sufficiently agitated; whether that
-agitation be made by Heat, or by Friction, or Percussion, or
-Putrefaction, or by any vital Motion, or any other Cause? As for
-instance; Sea-Water in a raging Storm; Quick-silver agitated in _vacuo_;
-the Back of a Cat, or Neck of a Horse, obliquely struck or rubbed in a
-dark place; Wood, Flesh and Fish while they putrefy; Vapours arising
-from putrefy'd Waters, usually call'd _Ignes Fatui_; Stacks of moist Hay
-or Corn growing hot by fermentation; Glow-worms and the Eyes of some
-Animals by vital Motions; the vulgar _Phosphorus_ agitated by the
-attrition of any Body, or by the acid Particles of the Air; Amber and
-some Diamonds by striking, pressing or rubbing them; Scrapings of Steel
-struck off with a Flint; Iron hammer'd very nimbly till it become so hot
-as to kindle Sulphur thrown upon it; the Axletrees of Chariots taking
-fire by the rapid rotation of the Wheels; and some Liquors mix'd with
-one another whose Particles come together with an Impetus, as Oil of
-Vitriol distilled from its weight of Nitre, and then mix'd with twice
-its weight of Oil of Anniseeds. So also a Globe of Glass about 8 or 10
-Inches in diameter, being put into a Frame where it may be swiftly
-turn'd round its Axis, will in turning shine where it rubs against the
-palm of ones Hand apply'd to it: And if at the same time a piece of
-white Paper or white Cloth, or the end of ones Finger be held at the
-distance of about a quarter of an Inch or half an Inch from that part of
-the Glass where it is most in motion, the electrick Vapour which is
-excited by the friction of the Glass against the Hand, will by dashing
-against the white Paper, Cloth or Finger, be put into such an agitation
-as to emit Light, and make the white Paper, Cloth or Finger, appear
-lucid like a Glowworm; and in rushing out of the Glass will sometimes
-push against the finger so as to be felt. And the same things have been
-found by rubbing a long and large Cylinder or Glass or Amber with a
-Paper held in ones hand, and continuing the friction till the Glass grew
-warm.
-
-_Qu._ 9. Is not Fire a Body heated so hot as to emit Light copiously?
-For what else is a red hot Iron than Fire? And what else is a burning
-Coal than red hot Wood?
-
-_Qu._ 10. Is not Flame a Vapour, Fume or Exhalation heated red hot, that
-is, so hot as to shine? For Bodies do not flame without emitting a
-copious Fume, and this Fume burns in the Flame. The _Ignis Fatuus_ is a
-Vapour shining without heat, and is there not the same difference
-between this Vapour and Flame, as between rotten Wood shining without
-heat and burning Coals of Fire? In distilling hot Spirits, if the Head
-of the Still be taken off, the Vapour which ascends out of the Still
-will take fire at the Flame of a Candle, and turn into Flame, and the
-Flame will run along the Vapour from the Candle to the Still. Some
-Bodies heated by Motion, or Fermentation, if the heat grow intense, fume
-copiously, and if the heat be great enough the Fumes will shine and
-become Flame. Metals in fusion do not flame for want of a copious Fume,
-except Spelter, which fumes copiously, and thereby flames. All flaming
-Bodies, as Oil, Tallow, Wax, Wood, fossil Coals, Pitch, Sulphur, by
-flaming waste and vanish into burning Smoke, which Smoke, if the Flame
-be put out, is very thick and visible, and sometimes smells strongly,
-but in the Flame loses its smell by burning, and according to the nature
-of the Smoke the Flame is of several Colours, as that of Sulphur blue,
-that of Copper open'd with sublimate green, that of Tallow yellow, that
-of Camphire white. Smoke passing through Flame cannot but grow red hot,
-and red hot Smoke can have no other appearance than that of Flame. When
-Gun-powder takes fire, it goes away into Flaming Smoke. For the Charcoal
-and Sulphur easily take fire, and set fire to the Nitre, and the Spirit
-of the Nitre being thereby rarified into Vapour, rushes out with
-Explosion much after the manner that the Vapour of Water rushes out of
-an Æolipile; the Sulphur also being volatile is converted into Vapour,
-and augments the Explosion. And the acid Vapour of the Sulphur (namely
-that which distils under a Bell into Oil of Sulphur,) entring violently
-into the fix'd Body of the Nitre, sets loose the Spirit of the Nitre,
-and excites a great Fermentation, whereby the Heat is farther augmented,
-and the fix'd Body of the Nitre is also rarified into Fume, and the
-Explosion is thereby made more vehement and quick. For if Salt of Tartar
-be mix'd with Gun-powder, and that Mixture be warm'd till it takes fire,
-the Explosion will be more violent and quick than that of Gun-powder
-alone; which cannot proceed from any other cause than the action of the
-Vapour of the Gun-powder upon the Salt of Tartar, whereby that Salt is
-rarified. The Explosion of Gun-powder arises therefore from the violent
-action whereby all the Mixture being quickly and vehemently heated, is
-rarified and converted into Fume and Vapour: which Vapour, by the
-violence of that action, becoming so hot as to shine, appears in the
-form of Flame.
-
-_Qu._ 11. Do not great Bodies conserve their heat the longest, their
-parts heating one another, and may not great dense and fix'd Bodies,
-when heated beyond a certain degree, emit Light so copiously, as by the
-Emission and Re-action of its Light, and the Reflexions and Refractions
-of its Rays within its Pores to grow still hotter, till it comes to a
-certain period of heat, such as is that of the Sun? And are not the Sun
-and fix'd Stars great Earths vehemently hot, whose heat is conserved by
-the greatness of the Bodies, and the mutual Action and Reaction between
-them, and the Light which they emit, and whose parts are kept from
-fuming away, not only by their fixity, but also by the vast weight and
-density of the Atmospheres incumbent upon them; and very strongly
-compressing them, and condensing the Vapours and Exhalations which arise
-from them? For if Water be made warm in any pellucid Vessel emptied of
-Air, that Water in the _Vacuum_ will bubble and boil as vehemently as it
-would in the open Air in a Vessel set upon the Fire till it conceives a
-much greater heat. For the weight of the incumbent Atmosphere keeps down
-the Vapours, and hinders the Water from boiling, until it grow much
-hotter than is requisite to make it boil _in vacuo_. Also a mixture of
-Tin and Lead being put upon a red hot Iron _in vacuo_ emits a Fume and
-Flame, but the same Mixture in the open Air, by reason of the incumbent
-Atmosphere, does not so much as emit any Fume which can be perceived by
-Sight. In like manner the great weight of the Atmosphere which lies upon
-the Globe of the Sun may hinder Bodies there from rising up and going
-away from the Sun in the form of Vapours and Fumes, unless by means of a
-far greater heat than that which on the Surface of our Earth would very
-easily turn them into Vapours and Fumes. And the same great weight may
-condense those Vapours and Exhalations as soon as they shall at any time
-begin to ascend from the Sun, and make them presently fall back again
-into him, and by that action increase his Heat much after the manner
-that in our Earth the Air increases the Heat of a culinary Fire. And the
-same weight may hinder the Globe of the Sun from being diminish'd,
-unless by the Emission of Light, and a very small quantity of Vapours
-and Exhalations.
-
-_Qu._ 12. Do not the Rays of Light in falling upon the bottom of the Eye
-excite Vibrations in the _Tunica Retina_? Which Vibrations, being
-propagated along the solid Fibres of the optick Nerves into the Brain,
-cause the Sense of seeing. For because dense Bodies conserve their Heat
-a long time, and the densest Bodies conserve their Heat the longest, the
-Vibrations of their parts are of a lasting nature, and therefore may be
-propagated along solid Fibres of uniform dense Matter to a great
-distance, for conveying into the Brain the impressions made upon all the
-Organs of Sense. For that Motion which can continue long in one and the
-same part of a Body, can be propagated a long way from one part to
-another, supposing the Body homogeneal, so that the Motion may not be
-reflected, refracted, interrupted or disorder'd by any unevenness of the
-Body.
-
-_Qu._ 13. Do not several sorts of Rays make Vibrations of several
-bignesses, which according to their bignesses excite Sensations of
-several Colours, much after the manner that the Vibrations of the Air,
-according to their several bignesses excite Sensations of several
-Sounds? And particularly do not the most refrangible Rays excite the
-shortest Vibrations for making a Sensation of deep violet, the least
-refrangible the largest for making a Sensation of deep red, and the
-several intermediate sorts of Rays, Vibrations of several intermediate
-bignesses to make Sensations of the several intermediate Colours?
-
-_Qu._ 14. May not the harmony and discord of Colours arise from the
-proportions of the Vibrations propagated through the Fibres of the
-optick Nerves into the Brain, as the harmony and discord of Sounds arise
-from the proportions of the Vibrations of the Air? For some Colours, if
-they be view'd together, are agreeable to one another, as those of Gold
-and Indigo, and others disagree.
-
-_Qu._ 15. Are not the Species of Objects seen with both Eyes united
-where the optick Nerves meet before they come into the Brain, the Fibres
-on the right side of both Nerves uniting there, and after union going
-thence into the Brain in the Nerve which is on the right side of the
-Head, and the Fibres on the left side of both Nerves uniting in the same
-place, and after union going into the Brain in the Nerve which is on the
-left side of the Head, and these two Nerves meeting in the Brain in such
-a manner that their Fibres make but one entire Species or Picture, half
-of which on the right side of the Sensorium comes from the right side of
-both Eyes through the right side of both optick Nerves to the place
-where the Nerves meet, and from thence on the right side of the Head
-into the Brain, and the other half on the left side of the Sensorium
-comes in like manner from the left side of both Eyes. For the optick
-Nerves of such Animals as look the same way with both Eyes (as of Men,
-Dogs, Sheep, Oxen, &c.) meet before they come into the Brain, but the
-optick Nerves of such Animals as do not look the same way with both Eyes
-(as of Fishes, and of the Chameleon,) do not meet, if I am rightly
-inform'd.
-
-_Qu._ 16. When a Man in the dark presses either corner of his Eye with
-his Finger, and turns his Eye away from his Finger, he will see a Circle
-of Colours like those in the Feather of a Peacock's Tail. If the Eye and
-the Finger remain quiet these Colours vanish in a second Minute of Time,
-but if the Finger be moved with a quavering Motion they appear again. Do
-not these Colours arise from such Motions excited in the bottom of the
-Eye by the Pressure and Motion of the Finger, as, at other times are
-excited there by Light for causing Vision? And do not the Motions once
-excited continue about a Second of Time before they cease? And when a
-Man by a stroke upon his Eye sees a flash of Light, are not the like
-Motions excited in the _Retina_ by the stroke? And when a Coal of Fire
-moved nimbly in the circumference of a Circle, makes the whole
-circumference appear like a Circle of Fire; is it not because the
-Motions excited in the bottom of the Eye by the Rays of Light are of a
-lasting nature, and continue till the Coal of Fire in going round
-returns to its former place? And considering the lastingness of the
-Motions excited in the bottom of the Eye by Light, are they not of a
-vibrating nature?
-
-_Qu._ 17. If a stone be thrown into stagnating Water, the Waves excited
-thereby continue some time to arise in the place where the Stone fell
-into the Water, and are propagated from thence in concentrick Circles
-upon the Surface of the Water to great distances. And the Vibrations or
-Tremors excited in the Air by percussion, continue a little time to move
-from the place of percussion in concentrick Spheres to great distances.
-And in like manner, when a Ray of Light falls upon the Surface of any
-pellucid Body, and is there refracted or reflected, may not Waves of
-Vibrations, or Tremors, be thereby excited in the refracting or
-reflecting Medium at the point of Incidence, and continue to arise
-there, and to be propagated from thence as long as they continue to
-arise and be propagated, when they are excited in the bottom of the Eye
-by the Pressure or Motion of the Finger, or by the Light which comes
-from the Coal of Fire in the Experiments above-mention'd? and are not
-these Vibrations propagated from the point of Incidence to great
-distances? And do they not overtake the Rays of Light, and by overtaking
-them successively, do they not put them into the Fits of easy Reflexion
-and easy Transmission described above? For if the Rays endeavour to
-recede from the densest part of the Vibration, they may be alternately
-accelerated and retarded by the Vibrations overtaking them.
-
-_Qu._ 18. If in two large tall cylindrical Vessels of Glass inverted,
-two little Thermometers be suspended so as not to touch the Vessels, and
-the Air be drawn out of one of these Vessels, and these Vessels thus
-prepared be carried out of a cold place into a warm one; the Thermometer
-_in vacuo_ will grow warm as much, and almost as soon as the Thermometer
-which is not _in vacuo_. And when the Vessels are carried back into the
-cold place, the Thermometer _in vacuo_ will grow cold almost as soon as
-the other Thermometer. Is not the Heat of the warm Room convey'd through
-the _Vacuum_ by the Vibrations of a much subtiler Medium than Air, which
-after the Air was drawn out remained in the _Vacuum_? And is not this
-Medium the same with that Medium by which Light is refracted and
-reflected, and by whose Vibrations Light communicates Heat to Bodies,
-and is put into Fits of easy Reflexion and easy Transmission? And do not
-the Vibrations of this Medium in hot Bodies contribute to the
-intenseness and duration of their Heat? And do not hot Bodies
-communicate their Heat to contiguous cold ones, by the Vibrations of
-this Medium propagated from them into the cold ones? And is not this
-Medium exceedingly more rare and subtile than the Air, and exceedingly
-more elastick and active? And doth it not readily pervade all Bodies?
-And is it not (by its elastick force) expanded through all the Heavens?
-
-_Qu._ 19. Doth not the Refraction of Light proceed from the different
-density of this Æthereal Medium in different places, the Light receding
-always from the denser parts of the Medium? And is not the density
-thereof greater in free and open Spaces void of Air and other grosser
-Bodies, than within the Pores of Water, Glass, Crystal, Gems, and other
-compact Bodies? For when Light passes through Glass or Crystal, and
-falling very obliquely upon the farther Surface thereof is totally
-reflected, the total Reflexion ought to proceed rather from the density
-and vigour of the Medium without and beyond the Glass, than from the
-rarity and weakness thereof.
-
-_Qu._ 20. Doth not this Æthereal Medium in passing out of Water, Glass,
-Crystal, and other compact and dense Bodies into empty Spaces, grow
-denser and denser by degrees, and by that means refract the Rays of
-Light not in a point, but by bending them gradually in curve Lines? And
-doth not the gradual condensation of this Medium extend to some distance
-from the Bodies, and thereby cause the Inflexions of the Rays of Light,
-which pass by the edges of dense Bodies, at some distance from the
-Bodies?
-
-_Qu._ 21. Is not this Medium much rarer within the dense Bodies of the
-Sun, Stars, Planets and Comets, than in the empty celestial Spaces
-between them? And in passing from them to great distances, doth it not
-grow denser and denser perpetually, and thereby cause the gravity of
-those great Bodies towards one another, and of their parts towards the
-Bodies; every Body endeavouring to go from the denser parts of the
-Medium towards the rarer? For if this Medium be rarer within the Sun's
-Body than at its Surface, and rarer there than at the hundredth part of
-an Inch from its Body, and rarer there than at the fiftieth part of an
-Inch from its Body, and rarer there than at the Orb of _Saturn_; I see
-no reason why the Increase of density should stop any where, and not
-rather be continued through all distances from the Sun to _Saturn_, and
-beyond. And though this Increase of density may at great distances be
-exceeding slow, yet if the elastick force of this Medium be exceeding
-great, it may suffice to impel Bodies from the denser parts of the
-Medium towards the rarer, with all that power which we call Gravity. And
-that the elastick force of this Medium is exceeding great, may be
-gather'd from the swiftness of its Vibrations. Sounds move about 1140
-_English_ Feet in a second Minute of Time, and in seven or eight Minutes
-of Time they move about one hundred _English_ Miles. Light moves from
-the Sun to us in about seven or eight Minutes of Time, which distance is
-about 70,000,000 _English_ Miles, supposing the horizontal Parallax of
-the Sun to be about 12´´. And the Vibrations or Pulses of this Medium,
-that they may cause the alternate Fits of easy Transmission and easy
-Reflexion, must be swifter than Light, and by consequence above 700,000
-times swifter than Sounds. And therefore the elastick force of this
-Medium, in proportion to its density, must be above 700000 x 700000
-(that is, above 490,000,000,000) times greater than the elastick force
-of the Air is in proportion to its density. For the Velocities of the
-Pulses of elastick Mediums are in a subduplicate _Ratio_ of the
-Elasticities and the Rarities of the Mediums taken together.
-
-As Attraction is stronger in small Magnets than in great ones in
-proportion to their Bulk, and Gravity is greater in the Surfaces of
-small Planets than in those of great ones in proportion to their bulk,
-and small Bodies are agitated much more by electric attraction than
-great ones; so the smallness of the Rays of Light may contribute very
-much to the power of the Agent by which they are refracted. And so if
-any one should suppose that _Æther_ (like our Air) may contain Particles
-which endeavour to recede from one another (for I do not know what this
-_Æther_ is) and that its Particles are exceedingly smaller than those of
-Air, or even than those of Light: The exceeding smallness of its
-Particles may contribute to the greatness of the force by which those
-Particles may recede from one another, and thereby make that Medium
-exceedingly more rare and elastick than Air, and by consequence
-exceedingly less able to resist the motions of Projectiles, and
-exceedingly more able to press upon gross Bodies, by endeavouring to
-expand it self.
-
-_Qu._ 22. May not Planets and Comets, and all gross Bodies, perform
-their Motions more freely, and with less resistance in this Æthereal
-Medium than in any Fluid, which fills all Space adequately without
-leaving any Pores, and by consequence is much denser than Quick-silver
-or Gold? And may not its resistance be so small, as to be
-inconsiderable? For instance; If this _Æther_ (for so I will call it)
-should be supposed 700000 times more elastick than our Air, and above
-700000 times more rare; its resistance would be above 600,000,000 times
-less than that of Water. And so small a resistance would scarce make any
-sensible alteration in the Motions of the Planets in ten thousand
-Years. If any one would ask how a Medium can be so rare, let him tell me
-how the Air, in the upper parts of the Atmosphere, can be above an
-hundred thousand thousand times rarer than Gold. Let him also tell me,
-how an electrick Body can by Friction emit an Exhalation so rare and
-subtile, and yet so potent, as by its Emission to cause no sensible
-Diminution of the weight of the electrick Body, and to be expanded
-through a Sphere, whose Diameter is above two Feet, and yet to be able
-to agitate and carry up Leaf Copper, or Leaf Gold, at the distance of
-above a Foot from the electrick Body? And how the Effluvia of a Magnet
-can be so rare and subtile, as to pass through a Plate of Glass without
-any Resistance or Diminution of their Force, and yet so potent as to
-turn a magnetick Needle beyond the Glass?
-
-_Qu._ 23. Is not Vision perform'd chiefly by the Vibrations of this
-Medium, excited in the bottom of the Eye by the Rays of Light, and
-propagated through the solid, pellucid and uniform Capillamenta of the
-optick Nerves into the place of Sensation? And is not Hearing perform'd
-by the Vibrations either of this or some other Medium, excited in the
-auditory Nerves by the Tremors of the Air, and propagated through the
-solid, pellucid and uniform Capillamenta of those Nerves into the place
-of Sensation? And so of the other Senses.
-
-_Qu._ 24. Is not Animal Motion perform'd by the Vibrations of this
-Medium, excited in the Brain by the power of the Will, and propagated
-from thence through the solid, pellucid and uniform Capillamenta of the
-Nerves into the Muscles, for contracting and dilating them? I suppose
-that the Capillamenta of the Nerves are each of them solid and uniform,
-that the vibrating Motion of the Æthereal Medium may be propagated along
-them from one end to the other uniformly, and without interruption: For
-Obstructions in the Nerves create Palsies. And that they may be
-sufficiently uniform, I suppose them to be pellucid when view'd singly,
-tho' the Reflexions in their cylindrical Surfaces may make the whole
-Nerve (composed of many Capillamenta) appear opake and white. For
-opacity arises from reflecting Surfaces, such as may disturb and
-interrupt the Motions of this Medium.
-
-[Sidenote: _See the following Scheme, p. 356._]
-
-_Qu._ 25. Are there not other original Properties of the Rays of Light,
-besides those already described? An instance of another original
-Property we have in the Refraction of Island Crystal, described first by
-_Erasmus Bartholine_, and afterwards more exactly by _Hugenius_, in his
-Book _De la Lumiere_. This Crystal is a pellucid fissile Stone, clear as
-Water or Crystal of the Rock, and without Colour; enduring a red Heat
-without losing its transparency, and in a very strong Heat calcining
-without Fusion. Steep'd a Day or two in Water, it loses its natural
-Polish. Being rubb'd on Cloth, it attracts pieces of Straws and other
-light things, like Ambar or Glass; and with _Aqua fortis_ it makes an
-Ebullition. It seems to be a sort of Talk, and is found in form of an
-oblique Parallelopiped, with six parallelogram Sides and eight solid
-Angles. The obtuse Angles of the Parallelograms are each of them 101
-Degrees and 52 Minutes; the acute ones 78 Degrees and 8 Minutes. Two of
-the solid Angles opposite to one another, as C and E, are compassed each
-of them with three of these obtuse Angles, and each of the other six
-with one obtuse and two acute ones. It cleaves easily in planes parallel
-to any of its Sides, and not in any other Planes. It cleaves with a
-glossy polite Surface not perfectly plane, but with some little
-unevenness. It is easily scratch'd, and by reason of its softness it
-takes a Polish very difficultly. It polishes better upon polish'd
-Looking-glass than upon Metal, and perhaps better upon Pitch, Leather or
-Parchment. Afterwards it must be rubb'd with a little Oil or white of an
-Egg, to fill up its Scratches; whereby it will become very transparent
-and polite. But for several Experiments, it is not necessary to polish
-it. If a piece of this crystalline Stone be laid upon a Book, every
-Letter of the Book seen through it will appear double, by means of a
-double Refraction. And if any beam of Light falls either
-perpendicularly, or in any oblique Angle upon any Surface of this
-Crystal, it becomes divided into two beams by means of the same double
-Refraction. Which beams are of the same Colour with the incident beam of
-Light, and seem equal to one another in the quantity of their Light, or
-very nearly equal. One of these Refractions is perform'd by the usual
-Rule of Opticks, the Sine of Incidence out of Air into this Crystal
-being to the Sine of Refraction, as five to three. The other
-Refraction, which may be called the unusual Refraction, is perform'd by
-the following Rule.
-
-[Illustration: FIG. 4.]
-
-Let ADBC represent the refracting Surface of the Crystal, C the biggest
-solid Angle at that Surface, GEHF the opposite Surface, and CK a
-perpendicular on that Surface. This perpendicular makes with the edge of
-the Crystal CF, an Angle of 19 Degr. 3'. Join KF, and in it take KL, so
-that the Angle KCL be 6 Degr. 40'. and the Angle LCF 12 Degr. 23'. And
-if ST represent any beam of Light incident at T in any Angle upon the
-refracting Surface ADBC, let TV be the refracted beam determin'd by the
-given Portion of the Sines 5 to 3, according to the usual Rule of
-Opticks. Draw VX parallel and equal to KL. Draw it the same way from V
-in which L lieth from K; and joining TX, this line TX shall be the other
-refracted beam carried from T to X, by the unusual Refraction.
-
-If therefore the incident beam ST be perpendicular to the refracting
-Surface, the two beams TV and TX, into which it shall become divided,
-shall be parallel to the lines CK and CL; one of those beams going
-through the Crystal perpendicularly, as it ought to do by the usual Laws
-of Opticks, and the other TX by an unusual Refraction diverging from the
-perpendicular, and making with it an Angle VTX of about 6-2/3 Degrees,
-as is found by Experience. And hence, the Plane VTX, and such like
-Planes which are parallel to the Plane CFK, may be called the Planes of
-perpendicular Refraction. And the Coast towards which the lines KL and
-VX are drawn, may be call'd the Coast of unusual Refraction.
-
-In like manner Crystal of the Rock has a double Refraction: But the
-difference of the two Refractions is not so great and manifest as in
-Island Crystal.
-
-When the beam ST incident on Island Crystal is divided into two beams TV
-and TX, and these two beams arrive at the farther Surface of the Glass;
-the beam TV, which was refracted at the first Surface after the usual
-manner, shall be again refracted entirely after the usual manner at the
-second Surface; and the beam TX, which was refracted after the unusual
-manner in the first Surface, shall be again refracted entirely after the
-unusual manner in the second Surface; so that both these beams shall
-emerge out of the second Surface in lines parallel to the first incident
-beam ST.
-
-And if two pieces of Island Crystal be placed one after another, in such
-manner that all the Surfaces of the latter be parallel to all the
-corresponding Surfaces of the former: The Rays which are refracted after
-the usual manner in the first Surface of the first Crystal, shall be
-refracted after the usual manner in all the following Surfaces; and the
-Rays which are refracted after the unusual manner in the first Surface,
-shall be refracted after the unusual manner in all the following
-Surfaces. And the same thing happens, though the Surfaces of the
-Crystals be any ways inclined to one another, provided that their Planes
-of perpendicular Refraction be parallel to one another.
-
-And therefore there is an original difference in the Rays of Light, by
-means of which some Rays are in this Experiment constantly refracted
-after the usual manner, and others constantly after the unusual manner:
-For if the difference be not original, but arises from new Modifications
-impress'd on the Rays at their first Refraction, it would be alter'd by
-new Modifications in the three following Refractions; whereas it suffers
-no alteration, but is constant, and has the same effect upon the Rays in
-all the Refractions. The unusual Refraction is therefore perform'd by an
-original property of the Rays. And it remains to be enquired, whether
-the Rays have not more original Properties than are yet discover'd.
-
-_Qu._ 26. Have not the Rays of Light several sides, endued with several
-original Properties? For if the Planes of perpendicular Refraction of
-the second Crystal be at right Angles with the Planes of perpendicular
-Refraction of the first Crystal, the Rays which are refracted after the
-usual manner in passing through the first Crystal, will be all of them
-refracted after the unusual manner in passing through the second
-Crystal; and the Rays which are refracted after the unusual manner in
-passing through the first Crystal, will be all of them refracted after
-the usual manner in passing through the second Crystal. And therefore
-there are not two sorts of Rays differing in their nature from one
-another, one of which is constantly and in all Positions refracted after
-the usual manner, and the other constantly and in all Positions after
-the unusual manner. The difference between the two sorts of Rays in the
-Experiment mention'd in the 25th Question, was only in the Positions of
-the Sides of the Rays to the Planes of perpendicular Refraction. For one
-and the same Ray is here refracted sometimes after the usual, and
-sometimes after the unusual manner, according to the Position which its
-Sides have to the Crystals. If the Sides of the Ray are posited the same
-way to both Crystals, it is refracted after the same manner in them
-both: But if that side of the Ray which looks towards the Coast of the
-unusual Refraction of the first Crystal, be 90 Degrees from that side of
-the same Ray which looks toward the Coast of the unusual Refraction of
-the second Crystal, (which may be effected by varying the Position of
-the second Crystal to the first, and by consequence to the Rays of
-Light,) the Ray shall be refracted after several manners in the several
-Crystals. There is nothing more required to determine whether the Rays
-of Light which fall upon the second Crystal shall be refracted after
-the usual or after the unusual manner, but to turn about this Crystal,
-so that the Coast of this Crystal's unusual Refraction may be on this or
-on that side of the Ray. And therefore every Ray may be consider'd as
-having four Sides or Quarters, two of which opposite to one another
-incline the Ray to be refracted after the unusual manner, as often as
-either of them are turn'd towards the Coast of unusual Refraction; and
-the other two, whenever either of them are turn'd towards the Coast of
-unusual Refraction, do not incline it to be otherwise refracted than
-after the usual manner. The two first may therefore be call'd the Sides
-of unusual Refraction. And since these Dispositions were in the Rays
-before their Incidence on the second, third, and fourth Surfaces of the
-two Crystals, and suffered no alteration (so far as appears,) by the
-Refraction of the Rays in their passage through those Surfaces, and the
-Rays were refracted by the same Laws in all the four Surfaces; it
-appears that those Dispositions were in the Rays originally, and
-suffer'd no alteration by the first Refraction, and that by means of
-those Dispositions the Rays were refracted at their Incidence on the
-first Surface of the first Crystal, some of them after the usual, and
-some of them after the unusual manner, accordingly as their Sides of
-unusual Refraction were then turn'd towards the Coast of the unusual
-Refraction of that Crystal, or sideways from it.
-
-Every Ray of Light has therefore two opposite Sides, originally endued
-with a Property on which the unusual Refraction depends, and the other
-two opposite Sides not endued with that Property. And it remains to be
-enquired, whether there are not more Properties of Light by which the
-Sides of the Rays differ, and are distinguished from one another.
-
-In explaining the difference of the Sides of the Rays above mention'd, I
-have supposed that the Rays fall perpendicularly on the first Crystal.
-But if they fall obliquely on it, the Success is the same. Those Rays
-which are refracted after the usual manner in the first Crystal, will be
-refracted after the unusual manner in the second Crystal, supposing the
-Planes of perpendicular Refraction to be at right Angles with one
-another, as above; and on the contrary.
-
-If the Planes of the perpendicular Refraction of the two Crystals be
-neither parallel nor perpendicular to one another, but contain an acute
-Angle: The two beams of Light which emerge out of the first Crystal,
-will be each of them divided into two more at their Incidence on the
-second Crystal. For in this case the Rays in each of the two beams will
-some of them have their Sides of unusual Refraction, and some of them
-their other Sides turn'd towards the Coast of the unusual Refraction of
-the second Crystal.
-
-_Qu._ 27. Are not all Hypotheses erroneous which have hitherto been
-invented for explaining the Phænomena of Light, by new Modifications of
-the Rays? For those Phænomena depend not upon new Modifications, as has
-been supposed, but upon the original and unchangeable Properties of the
-Rays.
-
-_Qu._ 28. Are not all Hypotheses erroneous, in which Light is supposed
-to consist in Pression or Motion, propagated through a fluid Medium? For
-in all these Hypotheses the Phænomena of Light have been hitherto
-explain'd by supposing that they arise from new Modifications of the
-Rays; which is an erroneous Supposition.
-
-If Light consisted only in Pression propagated without actual Motion, it
-would not be able to agitate and heat the Bodies which refract and
-reflect it. If it consisted in Motion propagated to all distances in an
-instant, it would require an infinite force every moment, in every
-shining Particle, to generate that Motion. And if it consisted in
-Pression or Motion, propagated either in an instant or in time, it would
-bend into the Shadow. For Pression or Motion cannot be propagated in a
-Fluid in right Lines, beyond an Obstacle which stops part of the Motion,
-but will bend and spread every way into the quiescent Medium which lies
-beyond the Obstacle. Gravity tends downwards, but the Pressure of Water
-arising from Gravity tends every way with equal Force, and is propagated
-as readily, and with as much force sideways as downwards, and through
-crooked passages as through strait ones. The Waves on the Surface of
-stagnating Water, passing by the sides of a broad Obstacle which stops
-part of them, bend afterwards and dilate themselves gradually into the
-quiet Water behind the Obstacle. The Waves, Pulses or Vibrations of the
-Air, wherein Sounds consist, bend manifestly, though not so much as the
-Waves of Water. For a Bell or a Cannon may be heard beyond a Hill which
-intercepts the sight of the sounding Body, and Sounds are propagated as
-readily through crooked Pipes as through streight ones. But Light is
-never known to follow crooked Passages nor to bend into the Shadow. For
-the fix'd Stars by the Interposition of any of the Planets cease to be
-seen. And so do the Parts of the Sun by the Interposition of the Moon,
-_Mercury_ or _Venus_. The Rays which pass very near to the edges of any
-Body, are bent a little by the action of the Body, as we shew'd above;
-but this bending is not towards but from the Shadow, and is perform'd
-only in the passage of the Ray by the Body, and at a very small distance
-from it. So soon as the Ray is past the Body, it goes right on.
-
-[Sidenote: _Mais pour dire comment cela se fait, je n'ay rien trove
-jusqu' ici qui me satisfasse._ C. H. de la lumiere, c. 5, p. 91.]
-
-To explain the unusual Refraction of Island Crystal by Pression or
-Motion propagated, has not hitherto been attempted (to my knowledge)
-except by _Huygens_, who for that end supposed two several vibrating
-Mediums within that Crystal. But when he tried the Refractions in two
-successive pieces of that Crystal, and found them such as is mention'd
-above; he confessed himself at a loss for explaining them. For Pressions
-or Motions, propagated from a shining Body through an uniform Medium,
-must be on all sides alike; whereas by those Experiments it appears,
-that the Rays of Light have different Properties in their different
-Sides. He suspected that the Pulses of _Æther_ in passing through the
-first Crystal might receive certain new Modifications, which might
-determine them to be propagated in this or that Medium within the
-second Crystal, according to the Position of that Crystal. But what
-Modifications those might be he could not say, nor think of any thing
-satisfactory in that Point. And if he had known that the unusual
-Refraction depends not on new Modifications, but on the original and
-unchangeable Dispositions of the Rays, he would have found it as
-difficult to explain how those Dispositions which he supposed to be
-impress'd on the Rays by the first Crystal, could be in them before
-their Incidence on that Crystal, and in general, how all Rays emitted by
-shining Bodies, can have those Dispositions in them from the beginning.
-To me, at least, this seems inexplicable, if Light be nothing else than
-Pression or Motion propagated through _Æther_.
-
-And it is as difficult to explain by these Hypotheses, how Rays can be
-alternately in Fits of easy Reflexion and easy Transmission; unless
-perhaps one might suppose that there are in all Space two Æthereal
-vibrating Mediums, and that the Vibrations of one of them constitute
-Light, and the Vibrations of the other are swifter, and as often as they
-overtake the Vibrations of the first, put them into those Fits. But how
-two _Æthers_ can be diffused through all Space, one of which acts upon
-the other, and by consequence is re-acted upon, without retarding,
-shattering, dispersing and confounding one anothers Motions, is
-inconceivable. And against filling the Heavens with fluid Mediums,
-unless they be exceeding rare, a great Objection arises from the regular
-and very lasting Motions of the Planets and Comets in all manner of
-Courses through the Heavens. For thence it is manifest, that the Heavens
-are void of all sensible Resistance, and by consequence of all sensible
-Matter.
-
-For the resisting Power of fluid Mediums arises partly from the
-Attrition of the Parts of the Medium, and partly from the _Vis inertiæ_
-of the Matter. That part of the Resistance of a spherical Body which
-arises from the Attrition of the Parts of the Medium is very nearly as
-the Diameter, or, at the most, as the _Factum_ of the Diameter, and the
-Velocity of the spherical Body together. And that part of the Resistance
-which arises from the _Vis inertiæ_ of the Matter, is as the Square of
-that _Factum_. And by this difference the two sorts of Resistance may be
-distinguish'd from one another in any Medium; and these being
-distinguish'd, it will be found that almost all the Resistance of Bodies
-of a competent Magnitude moving in Air, Water, Quick-silver, and such
-like Fluids with a competent Velocity, arises from the _Vis inertiæ_ of
-the Parts of the Fluid.
-
-Now that part of the resisting Power of any Medium which arises from the
-Tenacity, Friction or Attrition of the Parts of the Medium, may be
-diminish'd by dividing the Matter into smaller Parts, and making the
-Parts more smooth and slippery: But that part of the Resistance which
-arises from the _Vis inertiæ_, is proportional to the Density of the
-Matter, and cannot be diminish'd by dividing the Matter into smaller
-Parts, nor by any other means than by decreasing the Density of the
-Medium. And for these Reasons the Density of fluid Mediums is very
-nearly proportional to their Resistance. Liquors which differ not much
-in Density, as Water, Spirit of Wine, Spirit of Turpentine, hot Oil,
-differ not much in Resistance. Water is thirteen or fourteen times
-lighter than Quick-silver and by consequence thirteen or fourteen times
-rarer, and its Resistance is less than that of Quick-silver in the same
-Proportion, or thereabouts, as I have found by Experiments made with
-Pendulums. The open Air in which we breathe is eight or nine hundred
-times lighter than Water, and by consequence eight or nine hundred times
-rarer, and accordingly its Resistance is less than that of Water in the
-same Proportion, or thereabouts; as I have also found by Experiments
-made with Pendulums. And in thinner Air the Resistance is still less,
-and at length, by ratifying the Air, becomes insensible. For small
-Feathers falling in the open Air meet with great Resistance, but in a
-tall Glass well emptied of Air, they fall as fast as Lead or Gold, as I
-have seen tried several times. Whence the Resistance seems still to
-decrease in proportion to the Density of the Fluid. For I do not find by
-any Experiments, that Bodies moving in Quick-silver, Water or Air, meet
-with any other sensible Resistance than what arises from the Density and
-Tenacity of those sensible Fluids, as they would do if the Pores of
-those Fluids, and all other Spaces, were filled with a dense and
-subtile Fluid. Now if the Resistance in a Vessel well emptied of Air,
-was but an hundred times less than in the open Air, it would be about a
-million of times less than in Quick-silver. But it seems to be much less
-in such a Vessel, and still much less in the Heavens, at the height of
-three or four hundred Miles from the Earth, or above. For Mr. _Boyle_
-has shew'd that Air may be rarified above ten thousand times in Vessels
-of Glass; and the Heavens are much emptier of Air than any _Vacuum_ we
-can make below. For since the Air is compress'd by the Weight of the
-incumbent Atmosphere, and the Density of Air is proportional to the
-Force compressing it, it follows by Computation, that at the height of
-about seven and a half _English_ Miles from the Earth, the Air is four
-times rarer than at the Surface of the Earth; and at the height of 15
-Miles it is sixteen times rarer than that at the Surface of the Earth;
-and at the height of 22-1/2, 30, or 38 Miles, it is respectively 64,
-256, or 1024 times rarer, or thereabouts; and at the height of 76, 152,
-228 Miles, it is about 1000000, 1000000000000, or 1000000000000000000
-times rarer; and so on.
-
-Heat promotes Fluidity very much by diminishing the Tenacity of Bodies.
-It makes many Bodies fluid which are not fluid in cold, and increases
-the Fluidity of tenacious Liquids, as of Oil, Balsam, and Honey, and
-thereby decreases their Resistance. But it decreases not the Resistance
-of Water considerably, as it would do if any considerable part of the
-Resistance of Water arose from the Attrition or Tenacity of its Parts.
-And therefore the Resistance of Water arises principally and almost
-entirely from the _Vis inertiæ_ of its Matter; and by consequence, if
-the Heavens were as dense as Water, they would not have much less
-Resistance than Water; if as dense as Quick-silver, they would not have
-much less Resistance than Quick-silver; if absolutely dense, or full of
-Matter without any _Vacuum_, let the Matter be never so subtil and
-fluid, they would have a greater Resistance than Quick-silver. A solid
-Globe in such a Medium would lose above half its Motion in moving three
-times the length of its Diameter, and a Globe not solid (such as are the
-Planets,) would be retarded sooner. And therefore to make way for the
-regular and lasting Motions of the Planets and Comets, it's necessary to
-empty the Heavens of all Matter, except perhaps some very thin Vapours,
-Steams, or Effluvia, arising from the Atmospheres of the Earth, Planets,
-and Comets, and from such an exceedingly rare Æthereal Medium as we
-described above. A dense Fluid can be of no use for explaining the
-Phænomena of Nature, the Motions of the Planets and Comets being better
-explain'd without it. It serves only to disturb and retard the Motions
-of those great Bodies, and make the Frame of Nature languish: And in the
-Pores of Bodies, it serves only to stop the vibrating Motions of their
-Parts, wherein their Heat and Activity consists. And as it is of no use,
-and hinders the Operations of Nature, and makes her languish, so there
-is no evidence for its Existence, and therefore it ought to be rejected.
-And if it be rejected, the Hypotheses that Light consists in Pression
-or Motion, propagated through such a Medium, are rejected with it.
-
-And for rejecting such a Medium, we have the Authority of those the
-oldest and most celebrated Philosophers of _Greece_ and _Phoenicia_,
-who made a _Vacuum_, and Atoms, and the Gravity of Atoms, the first
-Principles of their Philosophy; tacitly attributing Gravity to some
-other Cause than dense Matter. Later Philosophers banish the
-Consideration of such a Cause out of natural Philosophy, feigning
-Hypotheses for explaining all things mechanically, and referring other
-Causes to Metaphysicks: Whereas the main Business of natural Philosophy
-is to argue from Phænomena without feigning Hypotheses, and to deduce
-Causes from Effects, till we come to the very first Cause, which
-certainly is not mechanical; and not only to unfold the Mechanism of the
-World, but chiefly to resolve these and such like Questions. What is
-there in places almost empty of Matter, and whence is it that the Sun
-and Planets gravitate towards one another, without dense Matter between
-them? Whence is it that Nature doth nothing in vain; and whence arises
-all that Order and Beauty which we see in the World? To what end are
-Comets, and whence is it that Planets move all one and the same way in
-Orbs concentrick, while Comets move all manner of ways in Orbs very
-excentrick; and what hinders the fix'd Stars from falling upon one
-another? How came the Bodies of Animals to be contrived with so much
-Art, and for what ends were their several Parts? Was the Eye contrived
-without Skill in Opticks, and the Ear without Knowledge of Sounds? How
-do the Motions of the Body follow from the Will, and whence is the
-Instinct in Animals? Is not the Sensory of Animals that place to which
-the sensitive Substance is present, and into which the sensible Species
-of Things are carried through the Nerves and Brain, that there they may
-be perceived by their immediate presence to that Substance? And these
-things being rightly dispatch'd, does it not appear from Phænomena that
-there is a Being incorporeal, living, intelligent, omnipresent, who in
-infinite Space, as it were in his Sensory, sees the things themselves
-intimately, and throughly perceives them, and comprehends them wholly by
-their immediate presence to himself: Of which things the Images only
-carried through the Organs of Sense into our little Sensoriums, are
-there seen and beheld by that which in us perceives and thinks. And
-though every true Step made in this Philosophy brings us not immediately
-to the Knowledge of the first Cause, yet it brings us nearer to it, and
-on that account is to be highly valued.
-
-_Qu._ 29. Are not the Rays of Light very small Bodies emitted from
-shining Substances? For such Bodies will pass through uniform Mediums in
-right Lines without bending into the Shadow, which is the Nature of the
-Rays of Light. They will also be capable of several Properties, and be
-able to conserve their Properties unchanged in passing through several
-Mediums, which is another Condition of the Rays of Light. Pellucid
-Substances act upon the Rays of Light at a distance in refracting,
-reflecting, and inflecting them, and the Rays mutually agitate the Parts
-of those Substances at a distance for heating them; and this Action and
-Re-action at a distance very much resembles an attractive Force between
-Bodies. If Refraction be perform'd by Attraction of the Rays, the Sines
-of Incidence must be to the Sines of Refraction in a given Proportion,
-as we shew'd in our Principles of Philosophy: And this Rule is true by
-Experience. The Rays of Light in going out of Glass into a _Vacuum_, are
-bent towards the Glass; and if they fall too obliquely on the _Vacuum_,
-they are bent backwards into the Glass, and totally reflected; and this
-Reflexion cannot be ascribed to the Resistance of an absolute _Vacuum_,
-but must be caused by the Power of the Glass attracting the Rays at
-their going out of it into the _Vacuum_, and bringing them back. For if
-the farther Surface of the Glass be moisten'd with Water or clear Oil,
-or liquid and clear Honey, the Rays which would otherwise be reflected
-will go into the Water, Oil, or Honey; and therefore are not reflected
-before they arrive at the farther Surface of the Glass, and begin to go
-out of it. If they go out of it into the Water, Oil, or Honey, they go
-on, because the Attraction of the Glass is almost balanced and rendered
-ineffectual by the contrary Attraction of the Liquor. But if they go out
-of it into a _Vacuum_ which has no Attraction to balance that of the
-Glass, the Attraction of the Glass either bends and refracts them, or
-brings them back and reflects them. And this is still more evident by
-laying together two Prisms of Glass, or two Object-glasses of very long
-Telescopes, the one plane, the other a little convex, and so compressing
-them that they do not fully touch, nor are too far asunder. For the
-Light which falls upon the farther Surface of the first Glass where the
-Interval between the Glasses is not above the ten hundred thousandth
-Part of an Inch, will go through that Surface, and through the Air or
-_Vacuum_ between the Glasses, and enter into the second Glass, as was
-explain'd in the first, fourth, and eighth Observations of the first
-Part of the second Book. But, if the second Glass be taken away, the
-Light which goes out of the second Surface of the first Glass into the
-Air or _Vacuum_, will not go on forwards, but turns back into the first
-Glass, and is reflected; and therefore it is drawn back by the Power of
-the first Glass, there being nothing else to turn it back. Nothing more
-is requisite for producing all the variety of Colours, and degrees of
-Refrangibility, than that the Rays of Light be Bodies of different
-Sizes, the least of which may take violet the weakest and darkest of the
-Colours, and be more easily diverted by refracting Surfaces from the
-right Course; and the rest as they are bigger and bigger, may make the
-stronger and more lucid Colours, blue, green, yellow, and red, and be
-more and more difficultly diverted. Nothing more is requisite for
-putting the Rays of Light into Fits of easy Reflexion and easy
-Transmission, than that they be small Bodies which by their attractive
-Powers, or some other Force, stir up Vibrations in what they act upon,
-which Vibrations being swifter than the Rays, overtake them
-successively, and agitate them so as by turns to increase and decrease
-their Velocities, and thereby put them into those Fits. And lastly, the
-unusual Refraction of Island-Crystal looks very much as if it were
-perform'd by some kind of attractive virtue lodged in certain Sides both
-of the Rays, and of the Particles of the Crystal. For were it not for
-some kind of Disposition or Virtue lodged in some Sides of the Particles
-of the Crystal, and not in their other Sides, and which inclines and
-bends the Rays towards the Coast of unusual Refraction, the Rays which
-fall perpendicularly on the Crystal, would not be refracted towards that
-Coast rather than towards any other Coast, both at their Incidence and
-at their Emergence, so as to emerge perpendicularly by a contrary
-Situation of the Coast of unusual Refraction at the second Surface; the
-Crystal acting upon the Rays after they have pass'd through it, and are
-emerging into the Air; or, if you please, into a _Vacuum_. And since the
-Crystal by this Disposition or Virtue does not act upon the Rays, unless
-when one of their Sides of unusual Refraction looks towards that Coast,
-this argues a Virtue or Disposition in those Sides of the Rays, which
-answers to, and sympathizes with that Virtue or Disposition of the
-Crystal, as the Poles of two Magnets answer to one another. And as
-Magnetism may be intended and remitted, and is found only in the Magnet
-and in Iron: So this Virtue of refracting the perpendicular Rays is
-greater in Island-Crystal, less in Crystal of the Rock, and is not yet
-found in other Bodies. I do not say that this Virtue is magnetical: It
-seems to be of another kind. I only say, that whatever it be, it's
-difficult to conceive how the Rays of Light, unless they be Bodies, can
-have a permanent Virtue in two of their Sides which is not in their
-other Sides, and this without any regard to their Position to the Space
-or Medium through which they pass.
-
-What I mean in this Question by a _Vacuum_, and by the Attractions of
-the Rays of Light towards Glass or Crystal, may be understood by what
-was said in the 18th, 19th, and 20th Questions.
-
-_Quest._ 30. Are not gross Bodies and Light convertible into one
-another, and may not Bodies receive much of their Activity from the
-Particles of Light which enter their Composition? For all fix'd Bodies
-being heated emit Light so long as they continue sufficiently hot, and
-Light mutually stops in Bodies as often as its Rays strike upon their
-Parts, as we shew'd above. I know no Body less apt to shine than Water;
-and yet Water by frequent Distillations changes into fix'd Earth, as Mr.
-_Boyle_ has try'd; and then this Earth being enabled to endure a
-sufficient Heat, shines by Heat like other Bodies.
-
-The changing of Bodies into Light, and Light into Bodies, is very
-conformable to the Course of Nature, which seems delighted with
-Transmutations. Water, which is a very fluid tasteless Salt, she changes
-by Heat into Vapour, which is a sort of Air, and by Cold into Ice, which
-is a hard, pellucid, brittle, fusible Stone; and this Stone returns into
-Water by Heat, and Vapour returns into Water by Cold. Earth by Heat
-becomes Fire, and by Cold returns into Earth. Dense Bodies by
-Fermentation rarify into several sorts of Air, and this Air by
-Fermentation, and sometimes without it, returns into dense Bodies.
-Mercury appears sometimes in the form of a fluid Metal, sometimes in the
-form of a hard brittle Metal, sometimes in the form of a corrosive
-pellucid Salt call'd Sublimate, sometimes in the form of a tasteless,
-pellucid, volatile white Earth, call'd _Mercurius Dulcis_; or in that of
-a red opake volatile Earth, call'd Cinnaber; or in that of a red or
-white Precipitate, or in that of a fluid Salt; and in Distillation it
-turns into Vapour, and being agitated _in Vacuo_, it shines like Fire.
-And after all these Changes it returns again into its first form of
-Mercury. Eggs grow from insensible Magnitudes, and change into Animals;
-Tadpoles into Frogs; and Worms into Flies. All Birds, Beasts and Fishes,
-Insects, Trees, and other Vegetables, with their several Parts, grow out
-of Water and watry Tinctures and Salts, and by Putrefaction return again
-into watry Substances. And Water standing a few Days in the open Air,
-yields a Tincture, which (like that of Malt) by standing longer yields a
-Sediment and a Spirit, but before Putrefaction is fit Nourishment for
-Animals and Vegetables. And among such various and strange
-Transmutations, why may not Nature change Bodies into Light, and Light
-into Bodies?
-
-_Quest._ 31. Have not the small Particles of Bodies certain Powers,
-Virtues, or Forces, by which they act at a distance, not only upon the
-Rays of Light for reflecting, refracting, and inflecting them, but also
-upon one another for producing a great Part of the Phænomena of Nature?
-For it's well known, that Bodies act one upon another by the Attractions
-of Gravity, Magnetism, and Electricity; and these Instances shew the
-Tenor and Course of Nature, and make it not improbable but that there
-may be more attractive Powers than these. For Nature is very consonant
-and conformable to her self. How these Attractions may be perform'd, I
-do not here consider. What I call Attraction may be perform'd by
-impulse, or by some other means unknown to me. I use that Word here to
-signify only in general any Force by which Bodies tend towards one
-another, whatsoever be the Cause. For we must learn from the Phænomena
-of Nature what Bodies attract one another, and what are the Laws and
-Properties of the Attraction, before we enquire the Cause by which the
-Attraction is perform'd. The Attractions of Gravity, Magnetism, and
-Electricity, reach to very sensible distances, and so have been observed
-by vulgar Eyes, and there may be others which reach to so small
-distances as hitherto escape Observation; and perhaps electrical
-Attraction may reach to such small distances, even without being excited
-by Friction.
-
-For when Salt of Tartar runs _per Deliquium_, is not this done by an
-Attraction between the Particles of the Salt of Tartar, and the
-Particles of the Water which float in the Air in the form of Vapours?
-And why does not common Salt, or Salt-petre, or Vitriol, run _per
-Deliquium_, but for want of such an Attraction? Or why does not Salt of
-Tartar draw more Water out of the Air than in a certain Proportion to
-its quantity, but for want of an attractive Force after it is satiated
-with Water? And whence is it but from this attractive Power that Water
-which alone distils with a gentle luke-warm Heat, will not distil from
-Salt of Tartar without a great Heat? And is it not from the like
-attractive Power between the Particles of Oil of Vitriol and the
-Particles of Water, that Oil of Vitriol draws to it a good quantity of
-Water out of the Air, and after it is satiated draws no more, and in
-Distillation lets go the Water very difficultly? And when Water and Oil
-of Vitriol poured successively into the same Vessel grow very hot in the
-mixing, does not this Heat argue a great Motion in the Parts of the
-Liquors? And does not this Motion argue, that the Parts of the two
-Liquors in mixing coalesce with Violence, and by consequence rush
-towards one another with an accelerated Motion? And when _Aqua fortis_,
-or Spirit of Vitriol poured upon Filings of Iron dissolves the Filings
-with a great Heat and Ebullition, is not this Heat and Ebullition
-effected by a violent Motion of the Parts, and does not that Motion
-argue that the acid Parts of the Liquor rush towards the Parts of the
-Metal with violence, and run forcibly into its Pores till they get
-between its outmost Particles, and the main Mass of the Metal, and
-surrounding those Particles loosen them from the main Mass, and set them
-at liberty to float off into the Water? And when the acid Particles,
-which alone would distil with an easy Heat, will not separate from the
-Particles of the Metal without a very violent Heat, does not this
-confirm the Attraction between them?
-
-When Spirit of Vitriol poured upon common Salt or Salt-petre makes an
-Ebullition with the Salt, and unites with it, and in Distillation the
-Spirit of the common Salt or Salt-petre comes over much easier than it
-would do before, and the acid part of the Spirit of Vitriol stays
-behind; does not this argue that the fix'd Alcaly of the Salt attracts
-the acid Spirit of the Vitriol more strongly than its own Spirit, and
-not being able to hold them both, lets go its own? And when Oil of
-Vitriol is drawn off from its weight of Nitre, and from both the
-Ingredients a compound Spirit of Nitre is distilled, and two parts of
-this Spirit are poured on one part of Oil of Cloves or Carraway Seeds,
-or of any ponderous Oil of vegetable or animal Substances, or Oil of
-Turpentine thicken'd with a little Balsam of Sulphur, and the Liquors
-grow so very hot in mixing, as presently to send up a burning Flame;
-does not this very great and sudden Heat argue that the two Liquors mix
-with violence, and that their Parts in mixing run towards one another
-with an accelerated Motion, and clash with the greatest Force? And is it
-not for the same reason that well rectified Spirit of Wine poured on the
-same compound Spirit flashes; and that the _Pulvis fulminans_, composed
-of Sulphur, Nitre, and Salt of Tartar, goes off with a more sudden and
-violent Explosion than Gun-powder, the acid Spirits of the Sulphur and
-Nitre rushing towards one another, and towards the Salt of Tartar, with
-so great a violence, as by the shock to turn the whole at once into
-Vapour and Flame? Where the Dissolution is slow, it makes a slow
-Ebullition and a gentle Heat; and where it is quicker, it makes a
-greater Ebullition with more heat; and where it is done at once, the
-Ebullition is contracted into a sudden Blast or violent Explosion, with
-a heat equal to that of Fire and Flame. So when a Drachm of the
-above-mention'd compound Spirit of Nitre was poured upon half a Drachm
-of Oil of Carraway Seeds _in vacuo_, the Mixture immediately made a
-flash like Gun-powder, and burst the exhausted Receiver, which was a
-Glass six Inches wide, and eight Inches deep. And even the gross Body of
-Sulphur powder'd, and with an equal weight of Iron Filings and a little
-Water made into Paste, acts upon the Iron, and in five or six hours
-grows too hot to be touch'd, and emits a Flame. And by these Experiments
-compared with the great quantity of Sulphur with which the Earth
-abounds, and the warmth of the interior Parts of the Earth, and hot
-Springs, and burning Mountains, and with Damps, mineral Coruscations,
-Earthquakes, hot suffocating Exhalations, Hurricanes, and Spouts; we may
-learn that sulphureous Steams abound in the Bowels of the Earth and
-ferment with Minerals, and sometimes take fire with a sudden Coruscation
-and Explosion; and if pent up in subterraneous Caverns, burst the
-Caverns with a great shaking of the Earth, as in springing of a Mine.
-And then the Vapour generated by the Explosion, expiring through the
-Pores of the Earth, feels hot and suffocates, and makes Tempests and
-Hurricanes, and sometimes causes the Land to slide, or the Sea to boil,
-and carries up the Water thereof in Drops, which by their weight fall
-down again in Spouts. Also some sulphureous Steams, at all times when
-the Earth is dry, ascending into the Air, ferment there with nitrous
-Acids, and sometimes taking fire cause Lightning and Thunder, and fiery
-Meteors. For the Air abounds with acid Vapours fit to promote
-Fermentations, as appears by the rusting of Iron and Copper in it, the
-kindling of Fire by blowing, and the beating of the Heart by means of
-Respiration. Now the above-mention'd Motions are so great and violent as
-to shew that in Fermentations the Particles of Bodies which almost rest,
-are put into new Motions by a very potent Principle, which acts upon
-them only when they approach one another, and causes them to meet and
-clash with great violence, and grow hot with the motion, and dash one
-another into pieces, and vanish into Air, and Vapour, and Flame.
-
-When Salt of Tartar _per deliquium_, being poured into the Solution of
-any Metal, precipitates the Metal and makes it fall down to the bottom
-of the Liquor in the form of Mud: Does not this argue that the acid
-Particles are attracted more strongly by the Salt of Tartar than by the
-Metal, and by the stronger Attraction go from the Metal to the Salt of
-Tartar? And so when a Solution of Iron in _Aqua fortis_ dissolves the
-_Lapis Calaminaris_, and lets go the Iron, or a Solution of Copper
-dissolves Iron immersed in it and lets go the Copper, or a Solution of
-Silver dissolves Copper and lets go the Silver, or a Solution of Mercury
-in _Aqua fortis_ being poured upon Iron, Copper, Tin, or Lead, dissolves
-the Metal and lets go the Mercury; does not this argue that the acid
-Particles of the _Aqua fortis_ are attracted more strongly by the _Lapis
-Calaminaris_ than by Iron, and more strongly by Iron than by Copper, and
-more strongly by Copper than by Silver, and more strongly by Iron,
-Copper, Tin, and Lead, than by Mercury? And is it not for the same
-reason that Iron requires more _Aqua fortis_ to dissolve it than Copper,
-and Copper more than the other Metals; and that of all Metals, Iron is
-dissolved most easily, and is most apt to rust; and next after Iron,
-Copper?
-
-When Oil of Vitriol is mix'd with a little Water, or is run _per
-deliquium_, and in Distillation the Water ascends difficultly, and
-brings over with it some part of the Oil of Vitriol in the form of
-Spirit of Vitriol, and this Spirit being poured upon Iron, Copper, or
-Salt of Tartar, unites with the Body and lets go the Water; doth not
-this shew that the acid Spirit is attracted by the Water, and more
-attracted by the fix'd Body than by the Water, and therefore lets go the
-Water to close with the fix'd Body? And is it not for the same reason
-that the Water and acid Spirits which are mix'd together in Vinegar,
-_Aqua fortis_, and Spirit of Salt, cohere and rise together in
-Distillation; but if the _Menstruum_ be poured on Salt of Tartar, or on
-Lead, or Iron, or any fix'd Body which it can dissolve, the Acid by a
-stronger Attraction adheres to the Body, and lets go the Water? And is
-it not also from a mutual Attraction that the Spirits of Soot and
-Sea-Salt unite and compose the Particles of Sal-armoniac, which are less
-volatile than before, because grosser and freer from Water; and that the
-Particles of Sal-armoniac in Sublimation carry up the Particles of
-Antimony, which will not sublime alone; and that the Particles of
-Mercury uniting with the acid Particles of Spirit of Salt compose
-Mercury sublimate, and with the Particles of Sulphur, compose Cinnaber;
-and that the Particles of Spirit of Wine and Spirit of Urine well
-rectified unite, and letting go the Water which dissolved them, compose
-a consistent Body; and that in subliming Cinnaber from Salt of Tartar,
-or from quick Lime, the Sulphur by a stronger Attraction of the Salt or
-Lime lets go the Mercury, and stays with the fix'd Body; and that when
-Mercury sublimate is sublimed from Antimony, or from Regulus of
-Antimony, the Spirit of Salt lets go the Mercury, and unites with the
-antimonial metal which attracts it more strongly, and stays with it till
-the Heat be great enough to make them both ascend together, and then
-carries up the Metal with it in the form of a very fusible Salt, called
-Butter of Antimony, although the Spirit of Salt alone be almost as
-volatile as Water, and the Antimony alone as fix'd as Lead?
-
-When _Aqua fortis_ dissolves Silver and not Gold, and _Aqua regia_
-dissolves Gold and not Silver, may it not be said that _Aqua fortis_ is
-subtil enough to penetrate Gold as well as Silver, but wants the
-attractive Force to give it Entrance; and that _Aqua regia_ is subtil
-enough to penetrate Silver as well as Gold, but wants the attractive
-Force to give it Entrance? For _Aqua regia_ is nothing else than _Aqua
-fortis_ mix'd with some Spirit of Salt, or with Sal-armoniac; and even
-common Salt dissolved in _Aqua fortis_, enables the _Menstruum_ to
-dissolve Gold, though the Salt be a gross Body. When therefore Spirit of
-Salt precipitates Silver out of _Aqua fortis_, is it not done by
-attracting and mixing with the _Aqua fortis_, and not attracting, or
-perhaps repelling Silver? And when Water precipitates Antimony out of
-the Sublimate of Antimony and Sal-armoniac, or out of Butter of
-Antimony, is it not done by its dissolving, mixing with, and weakening
-the Sal-armoniac or Spirit of Salt, and its not attracting, or perhaps
-repelling the Antimony? And is it not for want of an attractive virtue
-between the Parts of Water and Oil, of Quick-silver and Antimony, of
-Lead and Iron, that these Substances do not mix; and by a weak
-Attraction, that Quick-silver and Copper mix difficultly; and from a
-strong one, that Quick-silver and Tin, Antimony and Iron, Water and
-Salts, mix readily? And in general, is it not from the same Principle
-that Heat congregates homogeneal Bodies, and separates heterogeneal
-ones?
-
-When Arsenick with Soap gives a Regulus, and with Mercury sublimate a
-volatile fusible Salt, like Butter of Antimony, doth not this shew that
-Arsenick, which is a Substance totally volatile, is compounded of fix'd
-and volatile Parts, strongly cohering by a mutual Attraction, so that
-the volatile will not ascend without carrying up the fixed? And so, when
-an equal weight of Spirit of Wine and Oil of Vitriol are digested
-together, and in Distillation yield two fragrant and volatile Spirits
-which will not mix with one another, and a fix'd black Earth remains
-behind; doth not this shew that Oil of Vitriol is composed of volatile
-and fix'd Parts strongly united by Attraction, so as to ascend together
-in form of a volatile, acid, fluid Salt, until the Spirit of Wine
-attracts and separates the volatile Parts from the fixed? And therefore,
-since Oil of Sulphur _per Campanam_ is of the same Nature with Oil of
-Vitriol, may it not be inferred, that Sulphur is also a mixture of
-volatile and fix'd Parts so strongly cohering by Attraction, as to
-ascend together in Sublimation. By dissolving Flowers of Sulphur in Oil
-of Turpentine, and distilling the Solution, it is found that Sulphur is
-composed of an inflamable thick Oil or fat Bitumen, an acid Salt, a very
-fix'd Earth, and a little Metal. The three first were found not much
-unequal to one another, the fourth in so small a quantity as scarce to
-be worth considering. The acid Salt dissolved in Water, is the same with
-Oil of Sulphur _per Campanam_, and abounding much in the Bowels of the
-Earth, and particularly in Markasites, unites it self to the other
-Ingredients of the Markasite, which are, Bitumen, Iron, Copper, and
-Earth, and with them compounds Allum, Vitriol, and Sulphur. With the
-Earth alone it compounds Allum; with the Metal alone, or Metal and
-Earth together, it compounds Vitriol; and with the Bitumen and Earth it
-compounds Sulphur. Whence it comes to pass that Markasites abound with
-those three Minerals. And is it not from the mutual Attraction of the
-Ingredients that they stick together for compounding these Minerals, and
-that the Bitumen carries up the other Ingredients of the Sulphur, which
-without it would not sublime? And the same Question may be put
-concerning all, or almost all the gross Bodies in Nature. For all the
-Parts of Animals and Vegetables are composed of Substances volatile and
-fix'd, fluid and solid, as appears by their Analysis; and so are Salts
-and Minerals, so far as Chymists have been hitherto able to examine
-their Composition.
-
-When Mercury sublimate is re-sublimed with fresh Mercury, and becomes
-_Mercurius Dulcis_, which is a white tasteless Earth scarce dissolvable
-in Water, and _Mercurius Dulcis_ re-sublimed with Spirit of Salt returns
-into Mercury sublimate; and when Metals corroded with a little acid turn
-into rust, which is an Earth tasteless and indissolvable in Water, and
-this Earth imbibed with more acid becomes a metallick Salt; and when
-some Stones, as Spar of Lead, dissolved in proper _Menstruums_ become
-Salts; do not these things shew that Salts are dry Earth and watry Acid
-united by Attraction, and that the Earth will not become a Salt without
-so much acid as makes it dissolvable in Water? Do not the sharp and
-pungent Tastes of Acids arise from the strong Attraction whereby the
-acid Particles rush upon and agitate the Particles of the Tongue? And
-when Metals are dissolved in acid _Menstruums_, and the Acids in
-conjunction with the Metal act after a different manner, so that the
-Compound has a different Taste much milder than before, and sometimes a
-sweet one; is it not because the Acids adhere to the metallick
-Particles, and thereby lose much of their Activity? And if the Acid be
-in too small a Proportion to make the Compound dissolvable in Water,
-will it not by adhering strongly to the Metal become unactive and lose
-its Taste, and the Compound be a tasteless Earth? For such things as are
-not dissolvable by the Moisture of the Tongue, act not upon the Taste.
-
-As Gravity makes the Sea flow round the denser and weightier Parts of
-the Globe of the Earth, so the Attraction may make the watry Acid flow
-round the denser and compacter Particles of Earth for composing the
-Particles of Salt. For otherwise the Acid would not do the Office of a
-Medium between the Earth and common Water, for making Salts dissolvable
-in the Water; nor would Salt of Tartar readily draw off the Acid from
-dissolved Metals, nor Metals the Acid from Mercury. Now, as in the great
-Globe of the Earth and Sea, the densest Bodies by their Gravity sink
-down in Water, and always endeavour to go towards the Center of the
-Globe; so in Particles of Salt, the densest Matter may always endeavour
-to approach the Center of the Particle: So that a Particle of Salt may
-be compared to a Chaos; being dense, hard, dry, and earthy in the
-Center; and rare, soft, moist, and watry in the Circumference. And
-hence it seems to be that Salts are of a lasting Nature, being scarce
-destroy'd, unless by drawing away their watry Parts by violence, or by
-letting them soak into the Pores of the central Earth by a gentle Heat
-in Putrefaction, until the Earth be dissolved by the Water, and
-separated into smaller Particles, which by reason of their Smallness
-make the rotten Compound appear of a black Colour. Hence also it may be,
-that the Parts of Animals and Vegetables preserve their several Forms,
-and assimilate their Nourishment; the soft and moist Nourishment easily
-changing its Texture by a gentle Heat and Motion, till it becomes like
-the dense, hard, dry, and durable Earth in the Center of each Particle.
-But when the Nourishment grows unfit to be assimilated, or the central
-Earth grows too feeble to assimilate it, the Motion ends in Confusion,
-Putrefaction, and Death.
-
-If a very small quantity of any Salt or Vitriol be dissolved in a great
-quantity of Water, the Particles of the Salt or Vitriol will not sink to
-the bottom, though they be heavier in Specie than the Water, but will
-evenly diffuse themselves into all the Water, so as to make it as saline
-at the top as at the bottom. And does not this imply that the Parts of
-the Salt or Vitriol recede from one another, and endeavour to expand
-themselves, and get as far asunder as the quantity of Water in which
-they float, will allow? And does not this Endeavour imply that they have
-a repulsive Force by which they fly from one another, or at least, that
-they attract the Water more strongly than they do one another? For as
-all things ascend in Water which are less attracted than Water, by the
-gravitating Power of the Earth; so all the Particles of Salt which float
-in Water, and are less attracted than Water by any one Particle of Salt,
-must recede from that Particle, and give way to the more attracted
-Water.
-
-When any saline Liquor is evaporated to a Cuticle and let cool, the Salt
-concretes in regular Figures; which argues, that the Particles of the
-Salt before they concreted, floated in the Liquor at equal distances in
-rank and file, and by consequence that they acted upon one another by
-some Power which at equal distances is equal, at unequal distances
-unequal. For by such a Power they will range themselves uniformly, and
-without it they will float irregularly, and come together as
-irregularly. And since the Particles of Island-Crystal act all the same
-way upon the Rays of Light for causing the unusual Refraction, may it
-not be supposed that in the Formation of this Crystal, the Particles not
-only ranged themselves in rank and file for concreting in regular
-Figures, but also by some kind of polar Virtue turned their homogeneal
-Sides the same way.
-
-The Parts of all homogeneal hard Bodies which fully touch one another,
-stick together very strongly. And for explaining how this may be, some
-have invented hooked Atoms, which is begging the Question; and others
-tell us that Bodies are glued together by rest, that is, by an occult
-Quality, or rather by nothing; and others, that they stick together by
-conspiring Motions, that is, by relative rest amongst themselves. I had
-rather infer from their Cohesion, that their Particles attract one
-another by some Force, which in immediate Contact is exceeding strong,
-at small distances performs the chymical Operations above-mention'd, and
-reaches not far from the Particles with any sensible Effect.
-
-All Bodies seem to be composed of hard Particles: For otherwise Fluids
-would not congeal; as Water, Oils, Vinegar, and Spirit or Oil of Vitriol
-do by freezing; Mercury by Fumes of Lead; Spirit of Nitre and Mercury,
-by dissolving the Mercury and evaporating the Flegm; Spirit of Wine and
-Spirit of Urine, by deflegming and mixing them; and Spirit of Urine and
-Spirit of Salt, by subliming them together to make Sal-armoniac. Even
-the Rays of Light seem to be hard Bodies; for otherwise they would not
-retain different Properties in their different Sides. And therefore
-Hardness may be reckon'd the Property of all uncompounded Matter. At
-least, this seems to be as evident as the universal Impenetrability of
-Matter. For all Bodies, so far as Experience reaches, are either hard,
-or may be harden'd; and we have no other Evidence of universal
-Impenetrability, besides a large Experience without an experimental
-Exception. Now if compound Bodies are so very hard as we find some of
-them to be, and yet are very porous, and consist of Parts which are only
-laid together; the simple Particles which are void of Pores, and were
-never yet divided, must be much harder. For such hard Particles being
-heaped up together, can scarce touch one another in more than a few
-Points, and therefore must be separable by much less Force than is
-requisite to break a solid Particle, whose Parts touch in all the Space
-between them, without any Pores or Interstices to weaken their Cohesion.
-And how such very hard Particles which are only laid together and touch
-only in a few Points, can stick together, and that so firmly as they do,
-without the assistance of something which causes them to be attracted or
-press'd towards one another, is very difficult to conceive.
-
-The same thing I infer also from the cohering of two polish'd Marbles
-_in vacuo_, and from the standing of Quick-silver in the Barometer at
-the height of 50, 60 or 70 Inches, or above, when ever it is well-purged
-of Air and carefully poured in, so that its Parts be every where
-contiguous both to one another and to the Glass. The Atmosphere by its
-weight presses the Quick-silver into the Glass, to the height of 29 or
-30 Inches. And some other Agent raises it higher, not by pressing it
-into the Glass, but by making its Parts stick to the Glass, and to one
-another. For upon any discontinuation of Parts, made either by Bubbles
-or by shaking the Glass, the whole Mercury falls down to the height of
-29 or 30 Inches.
-
-And of the same kind with these Experiments are those that follow. If
-two plane polish'd Plates of Glass (suppose two pieces of a polish'd
-Looking-glass) be laid together, so that their sides be parallel and at
-a very small distance from one another, and then their lower edges be
-dipped into Water, the Water will rise up between them. And the less
-the distance of the Glasses is, the greater will be the height to which
-the Water will rise. If the distance be about the hundredth part of an
-Inch, the Water will rise to the height of about an Inch; and if the
-distance be greater or less in any Proportion, the height will be
-reciprocally proportional to the distance very nearly. For the
-attractive Force of the Glasses is the same, whether the distance
-between them be greater or less; and the weight of the Water drawn up is
-the same, if the height of it be reciprocally proportional to the
-distance of the Glasses. And in like manner, Water ascends between two
-Marbles polish'd plane, when their polish'd sides are parallel, and at a
-very little distance from one another, And if slender Pipes of Glass be
-dipped at one end into stagnating Water, the Water will rise up within
-the Pipe, and the height to which it rises will be reciprocally
-proportional to the Diameter of the Cavity of the Pipe, and will equal
-the height to which it rises between two Planes of Glass, if the
-Semi-diameter of the Cavity of the Pipe be equal to the distance between
-the Planes, or thereabouts. And these Experiments succeed after the same
-manner _in vacuo_ as in the open Air, (as hath been tried before the
-Royal Society,) and therefore are not influenced by the Weight or
-Pressure of the Atmosphere.
-
-And if a large Pipe of Glass be filled with sifted Ashes well pressed
-together in the Glass, and one end of the Pipe be dipped into stagnating
-Water, the Water will rise up slowly in the Ashes, so as in the space
-of a Week or Fortnight to reach up within the Glass, to the height of 30
-or 40 Inches above the stagnating Water. And the Water rises up to this
-height by the Action only of those Particles of the Ashes which are upon
-the Surface of the elevated Water; the Particles which are within the
-Water, attracting or repelling it as much downwards as upwards. And
-therefore the Action of the Particles is very strong. But the Particles
-of the Ashes being not so dense and close together as those of Glass,
-their Action is not so strong as that of Glass, which keeps Quick-silver
-suspended to the height of 60 or 70 Inches, and therefore acts with a
-Force which would keep Water suspended to the height of above 60 Feet.
-
-By the same Principle, a Sponge sucks in Water, and the Glands in the
-Bodies of Animals, according to their several Natures and Dispositions,
-suck in various Juices from the Blood.
-
-If two plane polish'd Plates of Glass three or four Inches broad, and
-twenty or twenty five long, be laid one of them parallel to the Horizon,
-the other upon the first, so as at one of their ends to touch one
-another, and contain an Angle of about 10 or 15 Minutes, and the same be
-first moisten'd on their inward sides with a clean Cloth dipp'd into Oil
-of Oranges or Spirit of Turpentine, and a Drop or two of the Oil or
-Spirit be let fall upon the lower Glass at the other; so soon as the
-upper Glass is laid down upon the lower, so as to touch it at one end as
-above, and to touch the Drop at the other end, making with the lower
-Glass an Angle of about 10 or 15 Minutes; the Drop will begin to move
-towards the Concourse of the Glasses, and will continue to move with an
-accelerated Motion, till it arrives at that Concourse of the Glasses.
-For the two Glasses attract the Drop, and make it run that way towards
-which the Attractions incline. And if when the Drop is in motion you
-lift up that end of the Glasses where they meet, and towards which the
-Drop moves, the Drop will ascend between the Glasses, and therefore is
-attracted. And as you lift up the Glasses more and more, the Drop will
-ascend slower and slower, and at length rest, being then carried
-downward by its Weight, as much as upwards by the Attraction. And by
-this means you may know the Force by which the Drop is attracted at all
-distances from the Concourse of the Glasses.
-
-Now by some Experiments of this kind, (made by Mr. _Hauksbee_) it has
-been found that the Attraction is almost reciprocally in a duplicate
-Proportion of the distance of the middle of the Drop from the Concourse
-of the Glasses, _viz._ reciprocally in a simple Proportion, by reason of
-the spreading of the Drop, and its touching each Glass in a larger
-Surface; and again reciprocally in a simple Proportion, by reason of the
-Attractions growing stronger within the same quantity of attracting
-Surface. The Attraction therefore within the same quantity of attracting
-Surface, is reciprocally as the distance between the Glasses. And
-therefore where the distance is exceeding small, the Attraction must be
-exceeding great. By the Table in the second Part of the second Book,
-wherein the thicknesses of colour'd Plates of Water between two Glasses
-are set down, the thickness of the Plate where it appears very black, is
-three eighths of the ten hundred thousandth part of an Inch. And where
-the Oil of Oranges between the Glasses is of this thickness, the
-Attraction collected by the foregoing Rule, seems to be so strong, as
-within a Circle of an Inch in diameter, to suffice to hold up a Weight
-equal to that of a Cylinder of Water of an Inch in diameter, and two or
-three Furlongs in length. And where it is of a less thickness the
-Attraction may be proportionally greater, and continue to increase,
-until the thickness do not exceed that of a single Particle of the Oil.
-There are therefore Agents in Nature able to make the Particles of
-Bodies stick together by very strong Attractions. And it is the Business
-of experimental Philosophy to find them out.
-
-Now the smallest Particles of Matter may cohere by the strongest
-Attractions, and compose bigger Particles of weaker Virtue; and many of
-these may cohere and compose bigger Particles whose Virtue is still
-weaker, and so on for divers Successions, until the Progression end in
-the biggest Particles on which the Operations in Chymistry, and the
-Colours of natural Bodies depend, and which by cohering compose Bodies
-of a sensible Magnitude. If the Body is compact, and bends or yields
-inward to Pression without any sliding of its Parts, it is hard and
-elastick, returning to its Figure with a Force rising from the mutual
-Attraction of its Parts. If the Parts slide upon one another, the Body
-is malleable or soft. If they slip easily, and are of a fit Size to be
-agitated by Heat, and the Heat is big enough to keep them in Agitation,
-the Body is fluid; and if it be apt to stick to things, it is humid; and
-the Drops of every fluid affect a round Figure by the mutual Attraction
-of their Parts, as the Globe of the Earth and Sea affects a round Figure
-by the mutual Attraction of its Parts by Gravity.
-
-Since Metals dissolved in Acids attract but a small quantity of the
-Acid, their attractive Force can reach but to a small distance from
-them. And as in Algebra, where affirmative Quantities vanish and cease,
-there negative ones begin; so in Mechanicks, where Attraction ceases,
-there a repulsive Virtue ought to succeed. And that there is such a
-Virtue, seems to follow from the Reflexions and Inflexions of the Rays
-of Light. For the Rays are repelled by Bodies in both these Cases,
-without the immediate Contact of the reflecting or inflecting Body. It
-seems also to follow from the Emission of Light; the Ray so soon as it
-is shaken off from a shining Body by the vibrating Motion of the Parts
-of the Body, and gets beyond the reach of Attraction, being driven away
-with exceeding great Velocity. For that Force which is sufficient to
-turn it back in Reflexion, may be sufficient to emit it. It seems also
-to follow from the Production of Air and Vapour. The Particles when they
-are shaken off from Bodies by Heat or Fermentation, so soon as they are
-beyond the reach of the Attraction of the Body, receding from it, and
-also from one another with great Strength, and keeping at a distance,
-so as sometimes to take up above a Million of Times more space than they
-did before in the form of a dense Body. Which vast Contraction and
-Expansion seems unintelligible, by feigning the Particles of Air to be
-springy and ramous, or rolled up like Hoops, or by any other means than
-a repulsive Power. The Particles of Fluids which do not cohere too
-strongly, and are of such a Smallness as renders them most susceptible
-of those Agitations which keep Liquors in a Fluor, are most easily
-separated and rarified into Vapour, and in the Language of the Chymists,
-they are volatile, rarifying with an easy Heat, and condensing with
-Cold. But those which are grosser, and so less susceptible of Agitation,
-or cohere by a stronger Attraction, are not separated without a stronger
-Heat, or perhaps not without Fermentation. And these last are the Bodies
-which Chymists call fix'd, and being rarified by Fermentation, become
-true permanent Air; those Particles receding from one another with the
-greatest Force, and being most difficultly brought together, which upon
-Contact cohere most strongly. And because the Particles of permanent Air
-are grosser, and arise from denser Substances than those of Vapours,
-thence it is that true Air is more ponderous than Vapour, and that a
-moist Atmosphere is lighter than a dry one, quantity for quantity. From
-the same repelling Power it seems to be that Flies walk upon the Water
-without wetting their Feet; and that the Object-glasses of long
-Telescopes lie upon one another without touching; and that dry Powders
-are difficultly made to touch one another so as to stick together,
-unless by melting them, or wetting them with Water, which by exhaling
-may bring them together; and that two polish'd Marbles, which by
-immediate Contact stick together, are difficultly brought so close
-together as to stick.
-
-And thus Nature will be very conformable to her self and very simple,
-performing all the great Motions of the heavenly Bodies by the
-Attraction of Gravity which intercedes those Bodies, and almost all the
-small ones of their Particles by some other attractive and repelling
-Powers which intercede the Particles. The _Vis inertiæ_ is a passive
-Principle by which Bodies persist in their Motion or Rest, receive
-Motion in proportion to the Force impressing it, and resist as much as
-they are resisted. By this Principle alone there never could have been
-any Motion in the World. Some other Principle was necessary for putting
-Bodies into Motion; and now they are in Motion, some other Principle is
-necessary for conserving the Motion. For from the various Composition of
-two Motions, 'tis very certain that there is not always the same
-quantity of Motion in the World. For if two Globes joined by a slender
-Rod, revolve about their common Center of Gravity with an uniform
-Motion, while that Center moves on uniformly in a right Line drawn in
-the Plane of their circular Motion; the Sum of the Motions of the two
-Globes, as often as the Globes are in the right Line described by their
-common Center of Gravity, will be bigger than the Sum of their Motions,
-when they are in a Line perpendicular to that right Line. By this
-Instance it appears that Motion may be got or lost. But by reason of the
-Tenacity of Fluids, and Attrition of their Parts, and the Weakness of
-Elasticity in Solids, Motion is much more apt to be lost than got, and
-is always upon the Decay. For Bodies which are either absolutely hard,
-or so soft as to be void of Elasticity, will not rebound from one
-another. Impenetrability makes them only stop. If two equal Bodies meet
-directly _in vacuo_, they will by the Laws of Motion stop where they
-meet, and lose all their Motion, and remain in rest, unless they be
-elastick, and receive new Motion from their Spring. If they have so much
-Elasticity as suffices to make them re-bound with a quarter, or half, or
-three quarters of the Force with which they come together, they will
-lose three quarters, or half, or a quarter of their Motion. And this may
-be try'd, by letting two equal Pendulums fall against one another from
-equal heights. If the Pendulums be of Lead or soft Clay, they will lose
-all or almost all their Motions: If of elastick Bodies they will lose
-all but what they recover from their Elasticity. If it be said, that
-they can lose no Motion but what they communicate to other Bodies, the
-consequence is, that _in vacuo_ they can lose no Motion, but when they
-meet they must go on and penetrate one another's Dimensions. If three
-equal round Vessels be filled, the one with Water, the other with Oil,
-the third with molten Pitch, and the Liquors be stirred about alike to
-give them a vortical Motion; the Pitch by its Tenacity will lose its
-Motion quickly, the Oil being less tenacious will keep it longer, and
-the Water being less tenacious will keep it longest, but yet will lose
-it in a short time. Whence it is easy to understand, that if many
-contiguous Vortices of molten Pitch were each of them as large as those
-which some suppose to revolve about the Sun and fix'd Stars, yet these
-and all their Parts would, by their Tenacity and Stiffness, communicate
-their Motion to one another till they all rested among themselves.
-Vortices of Oil or Water, or some fluider Matter, might continue longer
-in Motion; but unless the Matter were void of all Tenacity and Attrition
-of Parts, and Communication of Motion, (which is not to be supposed,)
-the Motion would constantly decay. Seeing therefore the variety of
-Motion which we find in the World is always decreasing, there is a
-necessity of conserving and recruiting it by active Principles, such as
-are the cause of Gravity, by which Planets and Comets keep their Motions
-in their Orbs, and Bodies acquire great Motion in falling; and the cause
-of Fermentation, by which the Heart and Blood of Animals are kept in
-perpetual Motion and Heat; the inward Parts of the Earth are constantly
-warm'd, and in some places grow very hot; Bodies burn and shine,
-Mountains take fire, the Caverns of the Earth are blown up, and the Sun
-continues violently hot and lucid, and warms all things by his Light.
-For we meet with very little Motion in the World, besides what is owing
-to these active Principles. And if it were not for these Principles, the
-Bodies of the Earth, Planets, Comets, Sun, and all things in them,
-would grow cold and freeze, and become inactive Masses; and all
-Putrefaction, Generation, Vegetation and Life would cease, and the
-Planets and Comets would not remain in their Orbs.
-
-All these things being consider'd, it seems probable to me, that God in
-the Beginning form'd Matter in solid, massy, hard, impenetrable,
-moveable Particles, of such Sizes and Figures, and with such other
-Properties, and in such Proportion to Space, as most conduced to the End
-for which he form'd them; and that these primitive Particles being
-Solids, are incomparably harder than any porous Bodies compounded of
-them; even so very hard, as never to wear or break in pieces; no
-ordinary Power being able to divide what God himself made one in the
-first Creation. While the Particles continue entire, they may compose
-Bodies of one and the same Nature and Texture in all Ages: But should
-they wear away, or break in pieces, the Nature of Things depending on
-them, would be changed. Water and Earth, composed of old worn Particles
-and Fragments of Particles, would not be of the same Nature and Texture
-now, with Water and Earth composed of entire Particles in the Beginning.
-And therefore, that Nature may be lasting, the Changes of corporeal
-Things are to be placed only in the various Separations and new
-Associations and Motions of these permanent Particles; compound Bodies
-being apt to break, not in the midst of solid Particles, but where those
-Particles are laid together, and only touch in a few Points.
-
-It seems to me farther, that these Particles have not only a _Vis
-inertiæ_, accompanied with such passive Laws of Motion as naturally
-result from that Force, but also that they are moved by certain active
-Principles, such as is that of Gravity, and that which causes
-Fermentation, and the Cohesion of Bodies. These Principles I consider,
-not as occult Qualities, supposed to result from the specifick Forms of
-Things, but as general Laws of Nature, by which the Things themselves
-are form'd; their Truth appearing to us by Phænomena, though their
-Causes be not yet discover'd. For these are manifest Qualities, and
-their Causes only are occult. And the _Aristotelians_ gave the Name of
-occult Qualities, not to manifest Qualities, but to such Qualities only
-as they supposed to lie hid in Bodies, and to be the unknown Causes of
-manifest Effects: Such as would be the Causes of Gravity, and of
-magnetick and electrick Attractions, and of Fermentations, if we should
-suppose that these Forces or Actions arose from Qualities unknown to us,
-and uncapable of being discovered and made manifest. Such occult
-Qualities put a stop to the Improvement of natural Philosophy, and
-therefore of late Years have been rejected. To tell us that every
-Species of Things is endow'd with an occult specifick Quality by which
-it acts and produces manifest Effects, is to tell us nothing: But to
-derive two or three general Principles of Motion from Phænomena, and
-afterwards to tell us how the Properties and Actions of all corporeal
-Things follow from those manifest Principles, would be a very great step
-in Philosophy, though the Causes of those Principles were not yet
-discover'd: And therefore I scruple not to propose the Principles of
-Motion above-mention'd, they being of very general Extent, and leave
-their Causes to be found out.
-
-Now by the help of these Principles, all material Things seem to have
-been composed of the hard and solid Particles above-mention'd, variously
-associated in the first Creation by the Counsel of an intelligent Agent.
-For it became him who created them to set them in order. And if he did
-so, it's unphilosophical to seek for any other Origin of the World, or
-to pretend that it might arise out of a Chaos by the mere Laws of
-Nature; though being once form'd, it may continue by those Laws for many
-Ages. For while Comets move in very excentrick Orbs in all manner of
-Positions, blind Fate could never make all the Planets move one and the
-same way in Orbs concentrick, some inconsiderable Irregularities
-excepted, which may have risen from the mutual Actions of Comets and
-Planets upon one another, and which will be apt to increase, till this
-System wants a Reformation. Such a wonderful Uniformity in the Planetary
-System must be allowed the Effect of Choice. And so must the Uniformity
-in the Bodies of Animals, they having generally a right and a left side
-shaped alike, and on either side of their Bodies two Legs behind, and
-either two Arms, or two Legs, or two Wings before upon their Shoulders,
-and between their Shoulders a Neck running down into a Back-bone, and a
-Head upon it; and in the Head two Ears, two Eyes, a Nose, a Mouth, and
-a Tongue, alike situated. Also the first Contrivance of those very
-artificial Parts of Animals, the Eyes, Ears, Brain, Muscles, Heart,
-Lungs, Midriff, Glands, Larynx, Hands, Wings, swimming Bladders, natural
-Spectacles, and other Organs of Sense and Motion; and the Instinct of
-Brutes and Insects, can be the effect of nothing else than the Wisdom
-and Skill of a powerful ever-living Agent, who being in all Places, is
-more able by his Will to move the Bodies within his boundless uniform
-Sensorium, and thereby to form and reform the Parts of the Universe,
-than we are by our Will to move the Parts of our own Bodies. And yet we
-are not to consider the World as the Body of God, or the several Parts
-thereof, as the Parts of God. He is an uniform Being, void of Organs,
-Members or Parts, and they are his Creatures subordinate to him, and
-subservient to his Will; and he is no more the Soul of them, than the
-Soul of Man is the Soul of the Species of Things carried through the
-Organs of Sense into the place of its Sensation, where it perceives them
-by means of its immediate Presence, without the Intervention of any
-third thing. The Organs of Sense are not for enabling the Soul to
-perceive the Species of Things in its Sensorium, but only for conveying
-them thither; and God has no need of such Organs, he being every where
-present to the Things themselves. And since Space is divisible _in
-infinitum_, and Matter is not necessarily in all places, it may be also
-allow'd that God is able to create Particles of Matter of several Sizes
-and Figures, and in several Proportions to Space, and perhaps of
-different Densities and Forces, and thereby to vary the Laws of Nature,
-and make Worlds of several sorts in several Parts of the Universe. At
-least, I see nothing of Contradiction in all this.
-
-As in Mathematicks, so in Natural Philosophy, the Investigation of
-difficult Things by the Method of Analysis, ought ever to precede the
-Method of Composition. This Analysis consists in making Experiments and
-Observations, and in drawing general Conclusions from them by Induction,
-and admitting of no Objections against the Conclusions, but such as are
-taken from Experiments, or other certain Truths. For Hypotheses are not
-to be regarded in experimental Philosophy. And although the arguing from
-Experiments and Observations by Induction be no Demonstration of general
-Conclusions; yet it is the best way of arguing which the Nature of
-Things admits of, and may be looked upon as so much the stronger, by how
-much the Induction is more general. And if no Exception occur from
-Phænomena, the Conclusion may be pronounced generally. But if at any
-time afterwards any Exception shall occur from Experiments, it may then
-begin to be pronounced with such Exceptions as occur. By this way of
-Analysis we may proceed from Compounds to Ingredients, and from Motions
-to the Forces producing them; and in general, from Effects to their
-Causes, and from particular Causes to more general ones, till the
-Argument end in the most general. This is the Method of Analysis: And
-the Synthesis consists in assuming the Causes discover'd, and
-establish'd as Principles, and by them explaining the Phænomena
-proceeding from them, and proving the Explanations.
-
-In the two first Books of these Opticks, I proceeded by this Analysis to
-discover and prove the original Differences of the Rays of Light in
-respect of Refrangibility, Reflexibility, and Colour, and their
-alternate Fits of easy Reflexion and easy Transmission, and the
-Properties of Bodies, both opake and pellucid, on which their Reflexions
-and Colours depend. And these Discoveries being proved, may be assumed
-in the Method of Composition for explaining the Phænomena arising from
-them: An Instance of which Method I gave in the End of the first Book.
-In this third Book I have only begun the Analysis of what remains to be
-discover'd about Light and its Effects upon the Frame of Nature, hinting
-several things about it, and leaving the Hints to be examin'd and
-improv'd by the farther Experiments and Observations of such as are
-inquisitive. And if natural Philosophy in all its Parts, by pursuing
-this Method, shall at length be perfected, the Bounds of Moral
-Philosophy will be also enlarged. For so far as we can know by natural
-Philosophy what is the first Cause, what Power he has over us, and what
-Benefits we receive from him, so far our Duty towards him, as well as
-that towards one another, will appear to us by the Light of Nature. And
-no doubt, if the Worship of false Gods had not blinded the Heathen,
-their moral Philosophy would have gone farther than to the four
-Cardinal Virtues; and instead of teaching the Transmigration of Souls,
-and to worship the Sun and Moon, and dead Heroes, they would have taught
-us to worship our true Author and Benefactor, as their Ancestors did
-under the Government of _Noah_ and his Sons before they corrupted
-themselves. \ No newline at end of file
diff --git a/fluent-bit/lib/libbacktrace-8602fda/LICENSE b/fluent-bit/lib/libbacktrace-8602fda/LICENSE
deleted file mode 100644
index 097d2774e..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/LICENSE
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (C) 2012-2016 Free Software Foundation, Inc.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-# (1) Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-
-# (2) Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-
-# (3) The name of the author may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
diff --git a/fluent-bit/lib/libbacktrace-8602fda/Makefile.am b/fluent-bit/lib/libbacktrace-8602fda/Makefile.am
deleted file mode 100644
index 598e6cb5f..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/Makefile.am
+++ /dev/null
@@ -1,591 +0,0 @@
-# Makefile.am -- Backtrace Makefile.
-# Copyright (C) 2012-2021 Free Software Foundation, Inc.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-# (1) Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-
-# (2) Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-
-# (3) The name of the author may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-ACLOCAL_AMFLAGS = -I config
-
-AM_CPPFLAGS =
-
-AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
-
-include_HEADERS = backtrace.h backtrace-supported.h
-
-lib_LTLIBRARIES = libbacktrace.la
-
-libbacktrace_la_SOURCES = \
- backtrace.h \
- atomic.c \
- dwarf.c \
- fileline.c \
- internal.h \
- posix.c \
- print.c \
- sort.c \
- state.c
-
-BACKTRACE_FILES = \
- backtrace.c \
- simple.c \
- nounwind.c
-
-FORMAT_FILES = \
- elf.c \
- macho.c \
- pecoff.c \
- unknown.c \
- xcoff.c
-
-VIEW_FILES = \
- read.c \
- mmapio.c
-
-ALLOC_FILES = \
- alloc.c \
- mmap.c
-
-EXTRA_libbacktrace_la_SOURCES = \
- $(BACKTRACE_FILES) \
- $(FORMAT_FILES) \
- $(VIEW_FILES) \
- $(ALLOC_FILES)
-
-libbacktrace_la_LIBADD = \
- $(BACKTRACE_FILE) \
- $(FORMAT_FILE) \
- $(VIEW_FILE) \
- $(ALLOC_FILE)
-
-libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
-
-# Testsuite.
-
-# Add a test to this variable if you want it to be built as a program,
-# with SOURCES, etc.
-check_PROGRAMS =
-
-# Add a test to this variable if you want it to be run.
-TESTS =
-
-# Add a test to this variable if you want it to be built as a Makefile
-# target and run.
-MAKETESTS =
-
-# Add a test to this variable if you want it to be built as a program,
-# with SOURCES, etc., and run.
-BUILDTESTS =
-
-# Add a file to this variable if you want it to be built for testing.
-check_DATA =
-
-# Flags to use when compiling test programs.
-libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
-
-if USE_DSYMUTIL
-
-%.dSYM: %
- $(DSYMUTIL) $<
-
-endif USE_DSYMUTIL
-
-if NATIVE
-check_LTLIBRARIES = libbacktrace_alloc.la
-
-libbacktrace_alloc_la_SOURCES = $(libbacktrace_la_SOURCES)
-libbacktrace_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) read.lo alloc.lo
-
-libbacktrace_alloc_la_DEPENDENCIES = $(libbacktrace_alloc_la_LIBADD)
-
-check_LTLIBRARIES += libbacktrace_noformat.la
-
-libbacktrace_noformat_la_SOURCES = $(libbacktrace_la_SOURCES)
-libbacktrace_noformat_la_LIBADD = $(BACKTRACE_FILE) $(VIEW_FILE) $(ALLOC_FILE)
-
-libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD)
-
-if HAVE_ELF
-if HAVE_OBJCOPY_DEBUGLINK
-
-TEST_BUILD_ID_DIR=$(abs_builddir)/usr/lib/debug/.build-id/
-
-check_LTLIBRARIES += libbacktrace_elf_for_test.la
-
-libbacktrace_elf_for_test_la_SOURCES = $(libbacktrace_la_SOURCES)
-libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \
- $(VIEW_FILE) $(ALLOC_FILE)
-
-elf_for_test.c: elf.c
- SEARCH='^#define SYSTEM_BUILD_ID_DIR.*$$'; \
- REPLACE="#define SYSTEM_BUILD_ID_DIR \"$(TEST_BUILD_ID_DIR)\""; \
- $(SED) "s%$$SEARCH%$$REPLACE%" \
- $< \
- > $@.tmp
- mv $@.tmp $@
-
-endif HAVE_OBJCOPY_DEBUGLINK
-endif HAVE_ELF
-
-elf_%.c: elf.c
- SEARCH='#error "Unknown BACKTRACE_ELF_SIZE"'; \
- REPLACE='#undef BACKTRACE_ELF_SIZE\
- #define BACKTRACE_ELF_SIZE'; \
- $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \
- $< \
- > $@.tmp
- mv $@.tmp $@
-
-xcoff_%.c: xcoff.c
- SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \
- REPLACE='#undef BACKTRACE_XCOFF_SIZE\
- #define BACKTRACE_XCOFF_SIZE'; \
- $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \
- $< \
- > $@.tmp
- mv $@.tmp $@
-
-test_elf_32_SOURCES = test_format.c testlib.c
-test_elf_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-test_elf_32_LDADD = libbacktrace_noformat.la elf_32.lo
-
-BUILDTESTS += test_elf_32
-
-test_elf_64_SOURCES = test_format.c testlib.c
-test_elf_64_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo
-
-BUILDTESTS += test_elf_64
-
-test_macho_SOURCES = test_format.c testlib.c
-test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-test_macho_LDADD = libbacktrace_noformat.la macho.lo
-
-BUILDTESTS += test_macho
-
-test_xcoff_32_SOURCES = test_format.c testlib.c
-test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo
-
-BUILDTESTS += test_xcoff_32
-
-test_xcoff_64_SOURCES = test_format.c testlib.c
-test_xcoff_64_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-test_xcoff_64_LDADD = libbacktrace_noformat.la xcoff_64.lo
-
-BUILDTESTS += test_xcoff_64
-
-test_pecoff_SOURCES = test_format.c testlib.c
-test_pecoff_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-test_pecoff_LDADD = libbacktrace_noformat.la pecoff.lo
-
-BUILDTESTS += test_pecoff
-
-test_unknown_SOURCES = test_format.c testlib.c
-test_unknown_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-test_unknown_LDADD = libbacktrace_noformat.la unknown.lo
-
-BUILDTESTS += test_unknown
-
-unittest_SOURCES = unittest.c testlib.c
-unittest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-unittest_LDADD = libbacktrace.la
-
-BUILDTESTS += unittest
-
-unittest_alloc_SOURCES = $(unittest_SOURCES)
-unittest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-unittest_alloc_LDADD = libbacktrace_alloc.la
-
-BUILDTESTS += unittest_alloc
-
-check_LTLIBRARIES += libbacktrace_instrumented_alloc.la
-
-libbacktrace_instrumented_alloc_la_SOURCES = $(libbacktrace_la_SOURCES)
-libbacktrace_instrumented_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) \
- read.lo instrumented_alloc.lo
-
-libbacktrace_instrumented_alloc_la_DEPENDENCIES = \
- $(libbacktrace_instrumented_alloc_la_LIBADD)
-
-instrumented_alloc.lo: alloc.c
-
-allocfail_SOURCES = allocfail.c testlib.c
-allocfail_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-allocfail_LDADD = libbacktrace_instrumented_alloc.la
-
-check_PROGRAMS += allocfail
-
-allocfail.sh: allocfail
-
-TESTS += allocfail.sh
-
-if USE_DSYMUTIL
-check_DATA += allocfail.dSYM
-endif USE_DSYMUTIL
-
-if HAVE_ELF
-if HAVE_OBJCOPY_DEBUGLINK
-
-b2test_SOURCES = $(btest_SOURCES)
-b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-b2test_LDFLAGS = -Wl,--build-id
-b2test_LDADD = libbacktrace_elf_for_test.la
-
-check_PROGRAMS += b2test
-MAKETESTS += b2test_buildid
-
-if HAVE_DWZ
-
-b3test_SOURCES = $(btest_SOURCES)
-b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-b3test_LDFLAGS = -Wl,--build-id
-b3test_LDADD = libbacktrace_elf_for_test.la
-
-check_PROGRAMS += b3test
-MAKETESTS += b3test_dwz_buildid
-
-endif HAVE_DWZ
-
-endif HAVE_OBJCOPY_DEBUGLINK
-endif HAVE_ELF
-
-btest_SOURCES = btest.c testlib.c
-btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
-btest_LDADD = libbacktrace.la
-
-BUILDTESTS += btest
-
-if USE_DSYMUTIL
-check_DATA += btest.dSYM
-endif USE_DSYMUTIL
-
-if HAVE_ELF
-
-btest_lto_SOURCES = btest.c testlib.c
-btest_lto_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -flto
-btest_lto_LDADD = libbacktrace.la
-
-BUILDTESTS += btest_lto
-
-endif HAVE_ELF
-
-btest_alloc_SOURCES = $(btest_SOURCES)
-btest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-btest_alloc_LDADD = libbacktrace_alloc.la
-
-BUILDTESTS += btest_alloc
-
-if USE_DSYMUTIL
-check_DATA += btest_alloc.dSYM
-endif USE_DSYMUTIL
-
-if HAVE_DWZ
-
-%_dwz: %
- rm -f $@ $@_common.debug
- cp $< $@_1
- cp $< $@_2
- if $(DWZ) -m $@_common.debug $@_1 $@_2; then \
- rm -f $@_2; \
- mv $@_1 $@; \
- else \
- echo "Ignoring dwz errors, assuming that test passes"; \
- cp $< $@; \
- fi
-
-MAKETESTS += btest_dwz
-
-if HAVE_OBJCOPY_DEBUGLINK
-
-MAKETESTS += btest_dwz_gnudebuglink
-
-endif HAVE_OBJCOPY_DEBUGLINK
-
-endif HAVE_DWZ
-
-stest_SOURCES = stest.c
-stest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-stest_LDADD = libbacktrace.la
-
-BUILDTESTS += stest
-
-if USE_DSYMUTIL
-check_DATA += stest.dSYM
-endif USE_DSYMUTIL
-
-stest_alloc_SOURCES = $(stest_SOURCES)
-stest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-stest_alloc_LDADD = libbacktrace_alloc.la
-
-BUILDTESTS += stest_alloc
-
-if USE_DSYMUTIL
-check_DATA += stest_alloc.dSYM
-endif USE_DSYMUTIL
-
-if HAVE_ELF
-
-ztest_SOURCES = ztest.c testlib.c
-ztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
-ztest_LDADD = libbacktrace.la
-ztest_alloc_LDADD = libbacktrace_alloc.la
-
-if HAVE_ZLIB
-ztest_LDADD += -lz
-ztest_alloc_LDADD += -lz
-endif
-ztest_LDADD += $(CLOCK_GETTIME_LINK)
-ztest_alloc_LDADD += $(CLOCK_GETTIME_LINK)
-
-BUILDTESTS += ztest
-
-ztest_alloc_SOURCES = $(ztest_SOURCES)
-ztest_alloc_CFLAGS = $(ztest_CFLAGS)
-
-BUILDTESTS += ztest_alloc
-
-endif HAVE_ELF
-
-edtest_SOURCES = edtest.c edtest2_build.c testlib.c
-edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-edtest_LDADD = libbacktrace.la
-
-BUILDTESTS += edtest
-
-if USE_DSYMUTIL
-check_DATA += edtest.dSYM
-endif USE_DSYMUTIL
-
-edtest_alloc_SOURCES = $(edtest_SOURCES)
-edtest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-edtest_alloc_LDADD = libbacktrace_alloc.la
-
-if USE_DSYMUTIL
-check_DATA += edtest_alloc.dSYM
-endif USE_DSYMUTIL
-
-BUILDTESTS += edtest_alloc
-
-edtest2_build.c: gen_edtest2_build; @true
-gen_edtest2_build: $(srcdir)/edtest2.c
- cat $(srcdir)/edtest2.c > tmp-edtest2_build.c
- $(SHELL) $(srcdir)/move-if-change tmp-edtest2_build.c edtest2_build.c
- echo timestamp > $@
-
-if HAVE_PTHREAD
-
-BUILDTESTS += ttest
-
-ttest_SOURCES = ttest.c testlib.c
-ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread
-ttest_LDADD = libbacktrace.la
-
-if USE_DSYMUTIL
-check_DATA += ttest.dSYM
-endif USE_DSYMUTIL
-
-BUILDTESTS += ttest_alloc
-
-ttest_alloc_SOURCES = $(ttest_SOURCES)
-ttest_alloc_CFLAGS = $(ttest_CFLAGS)
-ttest_alloc_LDADD = libbacktrace_alloc.la
-
-if USE_DSYMUTIL
-check_DATA += ttest_alloc.dSYM
-endif USE_DSYMUTIL
-
-endif HAVE_PTHREAD
-
-if HAVE_OBJCOPY_DEBUGLINK
-
-MAKETESTS += btest_gnudebuglink
-
-%_gnudebuglink: %
- $(OBJCOPY) --only-keep-debug $< $@.debug
- $(OBJCOPY) --strip-debug --add-gnu-debuglink=$@.debug $< $@
-
-endif HAVE_OBJCOPY_DEBUGLINK
-
-%_buildid: %
- ./install-debuginfo-for-buildid.sh \
- "$(TEST_BUILD_ID_DIR)" \
- $<
- $(OBJCOPY) --strip-debug $< $@
-
-if HAVE_COMPRESSED_DEBUG
-
-ctestg_SOURCES = btest.c testlib.c
-ctestg_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu
-ctestg_LDADD = libbacktrace.la
-
-ctesta_SOURCES = btest.c testlib.c
-ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi
-ctesta_LDADD = libbacktrace.la
-
-BUILDTESTS += ctestg ctesta
-
-ctestg_alloc_SOURCES = $(ctestg_SOURCES)
-ctestg_alloc_CFLAGS = $(ctestg_CFLAGS)
-ctestg_alloc_LDFLAGS = $(ctestg_LDFLAGS)
-ctestg_alloc_LDADD = libbacktrace_alloc.la
-
-ctesta_alloc_SOURCES = $(ctesta_SOURCES)
-ctesta_alloc_CFLAGS = $(ctesta_CFLAGS)
-ctesta_alloc_LDFLAGS = $(ctesta_LDFLAGS)
-ctesta_alloc_LDADD = libbacktrace_alloc.la
-
-BUILDTESTS += ctestg_alloc ctesta_alloc
-
-endif
-
-if HAVE_DWARF5
-
-dwarf5_SOURCES = btest.c testlib.c
-dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5
-dwarf5_LDADD = libbacktrace.la
-
-BUILDTESTS += dwarf5
-
-if USE_DSYMUTIL
-check_DATA += dwarf5.dSYM
-endif USE_DSYMUTIL
-
-dwarf5_alloc_SOURCES = $(dwarf5_SOURCES)
-dwarf5_alloc_CFLAGS = $(dwarf5_CFLAGS)
-dwarf5_alloc_LDADD = libbacktrace_alloc.la
-
-BUILDTESTS += dwarf5_alloc
-
-if USE_DSYMUTIL
-check_DATA += dwarf5_alloc.dSYM
-endif USE_DSYMUTIL
-
-endif
-
-mtest_SOURCES = mtest.c testlib.c
-mtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
-mtest_LDADD = libbacktrace.la
-
-BUILDTESTS += mtest
-
-if USE_DSYMUTIL
-check_DATA += mtest.dSYM
-endif USE_DSYMUTIL
-
-if HAVE_MINIDEBUG
-
-MAKETESTS += mtest_minidebug
-
-%_minidebug: %
- $(NM) -D $< -P --defined-only | $(AWK) '{ print $$1 }' | sort > $<.dsyms
- $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D") print $$1 }' | sort > $<.fsyms
- $(COMM) -13 $<.dsyms $<.fsyms > $<.keepsyms
- $(OBJCOPY) --only-keep-debug $< $<.dbg
- $(OBJCOPY) -S --remove-section .gdb_index --remove-section .comment --keep-symbols=$<.keepsyms $<.dbg $<.mdbg
- $(OBJCOPY) --strip-all --remove-section ..comment $< $<.strip
- rm -f $<.mdbg.xz
- $(XZ) $<.mdbg
- $(OBJCOPY) --add-section .gnu_debugdata=$<.mdbg.xz $<.strip
- mv $<.strip $@
-
-endif HAVE_MINIDEBUG
-
-endif NATIVE
-
-if HAVE_ELF
-
-xztest_SOURCES = xztest.c testlib.c
-xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
-xztest_LDADD = libbacktrace.la
-
-xztest_alloc_SOURCES = $(xztest_SOURCES)
-xztest_alloc_CFLAGS = $(xztest_CFLAGS)
-xztest_alloc_LDADD = libbacktrace_alloc.la
-
-if HAVE_LIBLZMA
-xztest_LDADD += -llzma
-xztest_alloc_LDADD += -llzma
-endif
-
-xztest_LDADD += $(CLOCK_GETTIME_LINK)
-xztest_alloc_LDADD += $(CLOCK_GETTIME_LINK)
-
-BUILDTESTS += xztest xztest_alloc
-
-endif HAVE_ELF
-
-check_PROGRAMS += $(BUILDTESTS)
-
-TESTS += $(MAKETESTS) $(BUILDTESTS)
-
-CLEANFILES = \
- $(MAKETESTS) $(BUILDTESTS) *.debug elf_for_test.c edtest2_build.c \
- gen_edtest2_build \
- *.dsyms *.fsyms *.keepsyms *.dbg *.mdbg *.mdbg.xz *.strip
-
-clean-local:
- -rm -rf usr
-
-# We can't use automake's automatic dependency tracking, because it
-# breaks when using bootstrap-lean. Automatic dependency tracking
-# with GCC bootstrap will cause some of the objects to depend on
-# header files in prev-gcc/include, e.g., stddef.h and stdarg.h. When
-# using bootstrap-lean, prev-gcc is removed after each stage. When
-# running "make install", those header files will be gone, causing the
-# library to be rebuilt at install time. That may not succeed.
-
-# These manual dependencies do not include dependencies on unwind.h,
-# even though that is part of GCC, because where to find it depends on
-# whether we are being built as a host library or a target library.
-
-alloc.lo: config.h backtrace.h internal.h
-backtrace.lo: config.h backtrace.h internal.h
-btest.lo: filenames.h backtrace.h backtrace-supported.h
-dwarf.lo: config.h filenames.h backtrace.h internal.h
-elf.lo: config.h backtrace.h internal.h
-fileline.lo: config.h backtrace.h internal.h
-macho.lo: config.h backtrace.h internal.h
-mmap.lo: config.h backtrace.h internal.h
-mmapio.lo: config.h backtrace.h internal.h
-mtest.lo: backtrace.h backtrace-supported.h
-nounwind.lo: config.h internal.h
-pecoff.lo: config.h backtrace.h internal.h
-posix.lo: config.h backtrace.h internal.h
-print.lo: config.h backtrace.h internal.h
-read.lo: config.h backtrace.h internal.h
-simple.lo: config.h backtrace.h internal.h
-sort.lo: config.h backtrace.h internal.h
-stest.lo: config.h backtrace.h internal.h
-state.lo: config.h backtrace.h backtrace-supported.h internal.h
-unknown.lo: config.h backtrace.h internal.h
-xcoff.lo: config.h backtrace.h internal.h
-xztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h
-ztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h
-
diff --git a/fluent-bit/lib/libbacktrace-8602fda/Makefile.in b/fluent-bit/lib/libbacktrace-8602fda/Makefile.in
deleted file mode 100644
index e05b1497c..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/Makefile.in
+++ /dev/null
@@ -1,2544 +0,0 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Makefile.am -- Backtrace Makefile.
-# Copyright (C) 2012-2021 Free Software Foundation, Inc.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-# (1) Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-
-# (2) Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-
-# (3) The name of the author may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
- $(am__EXEEXT_14)
-TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_14)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_1 = libbacktrace_elf_for_test.la
-@NATIVE_TRUE@am__append_2 = test_elf_32 test_elf_64 test_macho \
-@NATIVE_TRUE@ test_xcoff_32 test_xcoff_64 test_pecoff \
-@NATIVE_TRUE@ test_unknown unittest unittest_alloc btest
-@NATIVE_TRUE@am__append_3 = allocfail
-@NATIVE_TRUE@am__append_4 = allocfail.sh
-@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_5 = allocfail.dSYM \
-@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ btest.dSYM btest_alloc.dSYM \
-@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ stest.dSYM stest_alloc.dSYM \
-@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ edtest.dSYM edtest_alloc.dSYM
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_6 = b2test
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_7 = b2test_buildid
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_8 = b3test
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_9 = b3test_dwz_buildid
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_10 = btest_lto
-@NATIVE_TRUE@am__append_11 = btest_alloc stest stest_alloc
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@am__append_12 = btest_dwz
-@HAVE_DWZ_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_13 = btest_dwz_gnudebuglink
-@HAVE_ELF_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_14 = -lz
-@HAVE_ELF_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_15 = -lz
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_16 = ztest ztest_alloc
-@NATIVE_TRUE@am__append_17 = edtest edtest_alloc
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__append_18 = ttest ttest_alloc
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_19 = \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ ttest.dSYM \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ ttest_alloc.dSYM
-@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_20 = btest_gnudebuglink
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_21 = ctestg ctesta \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg_alloc \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta_alloc
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__append_22 = dwarf5 dwarf5_alloc
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_23 = \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ dwarf5.dSYM \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ dwarf5_alloc.dSYM
-@NATIVE_TRUE@am__append_24 = mtest
-@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_25 = mtest.dSYM
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@am__append_26 = mtest_minidebug
-@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_27 = -llzma
-@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_28 = -llzma
-@HAVE_ELF_TRUE@am__append_29 = xztest xztest_alloc
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/lead-dot.m4 \
- $(top_srcdir)/config/libtool.m4 \
- $(top_srcdir)/config/ltoptions.m4 \
- $(top_srcdir)/config/ltsugar.m4 \
- $(top_srcdir)/config/ltversion.m4 \
- $(top_srcdir)/config/lt~obsolete.m4 \
- $(top_srcdir)/config/multi.m4 $(top_srcdir)/config/override.m4 \
- $(top_srcdir)/config/unwind_ipinfo.m4 \
- $(top_srcdir)/config/warnings.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(include_HEADERS)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = backtrace-supported.h \
- install-debuginfo-for-buildid.sh
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-am_libbacktrace_la_OBJECTS = atomic.lo dwarf.lo fileline.lo posix.lo \
- print.lo sort.lo state.lo
-libbacktrace_la_OBJECTS = $(am_libbacktrace_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-am__objects_1 = atomic.lo dwarf.lo fileline.lo posix.lo print.lo \
- sort.lo state.lo
-@NATIVE_TRUE@am_libbacktrace_alloc_la_OBJECTS = $(am__objects_1)
-libbacktrace_alloc_la_OBJECTS = $(am_libbacktrace_alloc_la_OBJECTS)
-@NATIVE_TRUE@am_libbacktrace_alloc_la_rpath =
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@libbacktrace_elf_for_test_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ elf_for_test.lo \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_libbacktrace_elf_for_test_la_OBJECTS = $(am__objects_1)
-libbacktrace_elf_for_test_la_OBJECTS = \
- $(am_libbacktrace_elf_for_test_la_OBJECTS)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_libbacktrace_elf_for_test_la_rpath =
-@NATIVE_TRUE@am_libbacktrace_instrumented_alloc_la_OBJECTS = \
-@NATIVE_TRUE@ $(am__objects_1)
-libbacktrace_instrumented_alloc_la_OBJECTS = \
- $(am_libbacktrace_instrumented_alloc_la_OBJECTS)
-@NATIVE_TRUE@am_libbacktrace_instrumented_alloc_la_rpath =
-@NATIVE_TRUE@am_libbacktrace_noformat_la_OBJECTS = $(am__objects_1)
-libbacktrace_noformat_la_OBJECTS = \
- $(am_libbacktrace_noformat_la_OBJECTS)
-@NATIVE_TRUE@am_libbacktrace_noformat_la_rpath =
-@NATIVE_TRUE@am__EXEEXT_1 = allocfail$(EXEEXT)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT)
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT)
-@NATIVE_TRUE@am__EXEEXT_4 = test_elf_32$(EXEEXT) test_elf_64$(EXEEXT) \
-@NATIVE_TRUE@ test_macho$(EXEEXT) test_xcoff_32$(EXEEXT) \
-@NATIVE_TRUE@ test_xcoff_64$(EXEEXT) test_pecoff$(EXEEXT) \
-@NATIVE_TRUE@ test_unknown$(EXEEXT) unittest$(EXEEXT) \
-@NATIVE_TRUE@ unittest_alloc$(EXEEXT) btest$(EXEEXT)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_5 = btest_lto$(EXEEXT)
-@NATIVE_TRUE@am__EXEEXT_6 = btest_alloc$(EXEEXT) stest$(EXEEXT) \
-@NATIVE_TRUE@ stest_alloc$(EXEEXT)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_7 = ztest$(EXEEXT) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc$(EXEEXT)
-@NATIVE_TRUE@am__EXEEXT_8 = edtest$(EXEEXT) edtest_alloc$(EXEEXT)
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_9 = ttest$(EXEEXT) \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest_alloc$(EXEEXT)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_10 = \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg$(EXEEXT) \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta$(EXEEXT) \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg_alloc$(EXEEXT) \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta_alloc$(EXEEXT)
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__EXEEXT_11 = dwarf5$(EXEEXT) \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5_alloc$(EXEEXT)
-@NATIVE_TRUE@am__EXEEXT_12 = mtest$(EXEEXT)
-@HAVE_ELF_TRUE@am__EXEEXT_13 = xztest$(EXEEXT) xztest_alloc$(EXEEXT)
-am__EXEEXT_14 = $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \
- $(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \
- $(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \
- $(am__EXEEXT_13)
-@NATIVE_TRUE@am_allocfail_OBJECTS = allocfail-allocfail.$(OBJEXT) \
-@NATIVE_TRUE@ allocfail-testlib.$(OBJEXT)
-allocfail_OBJECTS = $(am_allocfail_OBJECTS)
-@NATIVE_TRUE@allocfail_DEPENDENCIES = \
-@NATIVE_TRUE@ libbacktrace_instrumented_alloc.la
-allocfail_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(allocfail_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am__objects_2 = b2test-btest.$(OBJEXT) \
-@NATIVE_TRUE@ b2test-testlib.$(OBJEXT)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b2test_OBJECTS = $(am__objects_2)
-b2test_OBJECTS = $(am_b2test_OBJECTS)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_DEPENDENCIES = libbacktrace_elf_for_test.la
-b2test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(b2test_CFLAGS) $(CFLAGS) \
- $(b2test_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am__objects_3 = b3test-btest.$(OBJEXT) \
-@NATIVE_TRUE@ b3test-testlib.$(OBJEXT)
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b3test_OBJECTS = $(am__objects_3)
-b3test_OBJECTS = $(am_b3test_OBJECTS)
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_DEPENDENCIES = libbacktrace_elf_for_test.la
-b3test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(b3test_CFLAGS) $(CFLAGS) \
- $(b3test_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_btest_OBJECTS = btest-btest.$(OBJEXT) \
-@NATIVE_TRUE@ btest-testlib.$(OBJEXT)
-btest_OBJECTS = $(am_btest_OBJECTS)
-@NATIVE_TRUE@btest_DEPENDENCIES = libbacktrace.la
-btest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(btest_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am__objects_4 = btest_alloc-btest.$(OBJEXT) \
-@NATIVE_TRUE@ btest_alloc-testlib.$(OBJEXT)
-@NATIVE_TRUE@am_btest_alloc_OBJECTS = $(am__objects_4)
-btest_alloc_OBJECTS = $(am_btest_alloc_OBJECTS)
-@NATIVE_TRUE@btest_alloc_DEPENDENCIES = libbacktrace_alloc.la
-btest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(btest_alloc_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am_btest_lto_OBJECTS = \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ btest_lto-btest.$(OBJEXT) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ btest_lto-testlib.$(OBJEXT)
-btest_lto_OBJECTS = $(am_btest_lto_OBJECTS)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_DEPENDENCIES = libbacktrace.la
-btest_lto_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(btest_lto_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctesta_OBJECTS = ctesta-btest.$(OBJEXT) \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta-testlib.$(OBJEXT)
-ctesta_OBJECTS = $(am_ctesta_OBJECTS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_DEPENDENCIES = \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ libbacktrace.la
-ctesta_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctesta_CFLAGS) $(CFLAGS) \
- $(ctesta_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__objects_5 = ctesta_alloc-btest.$(OBJEXT) \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta_alloc-testlib.$(OBJEXT)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctesta_alloc_OBJECTS = \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ $(am__objects_5)
-ctesta_alloc_OBJECTS = $(am_ctesta_alloc_OBJECTS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_DEPENDENCIES = libbacktrace_alloc.la
-ctesta_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctesta_alloc_CFLAGS) \
- $(CFLAGS) $(ctesta_alloc_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctestg_OBJECTS = ctestg-btest.$(OBJEXT) \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg-testlib.$(OBJEXT)
-ctestg_OBJECTS = $(am_ctestg_OBJECTS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_DEPENDENCIES = \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ libbacktrace.la
-ctestg_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestg_CFLAGS) $(CFLAGS) \
- $(ctestg_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__objects_6 = ctestg_alloc-btest.$(OBJEXT) \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg_alloc-testlib.$(OBJEXT)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctestg_alloc_OBJECTS = \
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ $(am__objects_6)
-ctestg_alloc_OBJECTS = $(am_ctestg_alloc_OBJECTS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_DEPENDENCIES = libbacktrace_alloc.la
-ctestg_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestg_alloc_CFLAGS) \
- $(CFLAGS) $(ctestg_alloc_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am_dwarf5_OBJECTS = \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5-btest.$(OBJEXT) \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5-testlib.$(OBJEXT)
-dwarf5_OBJECTS = $(am_dwarf5_OBJECTS)
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_DEPENDENCIES = libbacktrace.la
-dwarf5_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(dwarf5_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__objects_7 = \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5_alloc-btest.$(OBJEXT) \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5_alloc-testlib.$(OBJEXT)
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am_dwarf5_alloc_OBJECTS = \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ $(am__objects_7)
-dwarf5_alloc_OBJECTS = $(am_dwarf5_alloc_OBJECTS)
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_DEPENDENCIES = \
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la
-dwarf5_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(dwarf5_alloc_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_edtest_OBJECTS = edtest-edtest.$(OBJEXT) \
-@NATIVE_TRUE@ edtest-edtest2_build.$(OBJEXT) \
-@NATIVE_TRUE@ edtest-testlib.$(OBJEXT)
-edtest_OBJECTS = $(am_edtest_OBJECTS)
-@NATIVE_TRUE@edtest_DEPENDENCIES = libbacktrace.la
-edtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(edtest_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am__objects_8 = edtest_alloc-edtest.$(OBJEXT) \
-@NATIVE_TRUE@ edtest_alloc-edtest2_build.$(OBJEXT) \
-@NATIVE_TRUE@ edtest_alloc-testlib.$(OBJEXT)
-@NATIVE_TRUE@am_edtest_alloc_OBJECTS = $(am__objects_8)
-edtest_alloc_OBJECTS = $(am_edtest_alloc_OBJECTS)
-@NATIVE_TRUE@edtest_alloc_DEPENDENCIES = libbacktrace_alloc.la
-edtest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(edtest_alloc_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_mtest_OBJECTS = mtest-mtest.$(OBJEXT) \
-@NATIVE_TRUE@ mtest-testlib.$(OBJEXT)
-mtest_OBJECTS = $(am_mtest_OBJECTS)
-@NATIVE_TRUE@mtest_DEPENDENCIES = libbacktrace.la
-mtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(mtest_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_stest_OBJECTS = stest-stest.$(OBJEXT)
-stest_OBJECTS = $(am_stest_OBJECTS)
-@NATIVE_TRUE@stest_DEPENDENCIES = libbacktrace.la
-stest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(stest_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am__objects_9 = stest_alloc-stest.$(OBJEXT)
-@NATIVE_TRUE@am_stest_alloc_OBJECTS = $(am__objects_9)
-stest_alloc_OBJECTS = $(am_stest_alloc_OBJECTS)
-@NATIVE_TRUE@stest_alloc_DEPENDENCIES = libbacktrace_alloc.la
-stest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(stest_alloc_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_test_elf_32_OBJECTS = \
-@NATIVE_TRUE@ test_elf_32-test_format.$(OBJEXT) \
-@NATIVE_TRUE@ test_elf_32-testlib.$(OBJEXT)
-test_elf_32_OBJECTS = $(am_test_elf_32_OBJECTS)
-@NATIVE_TRUE@test_elf_32_DEPENDENCIES = libbacktrace_noformat.la \
-@NATIVE_TRUE@ elf_32.lo
-test_elf_32_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_elf_32_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_test_elf_64_OBJECTS = \
-@NATIVE_TRUE@ test_elf_64-test_format.$(OBJEXT) \
-@NATIVE_TRUE@ test_elf_64-testlib.$(OBJEXT)
-test_elf_64_OBJECTS = $(am_test_elf_64_OBJECTS)
-@NATIVE_TRUE@test_elf_64_DEPENDENCIES = libbacktrace_noformat.la \
-@NATIVE_TRUE@ elf_64.lo
-test_elf_64_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_elf_64_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_test_macho_OBJECTS = test_macho-test_format.$(OBJEXT) \
-@NATIVE_TRUE@ test_macho-testlib.$(OBJEXT)
-test_macho_OBJECTS = $(am_test_macho_OBJECTS)
-@NATIVE_TRUE@test_macho_DEPENDENCIES = libbacktrace_noformat.la \
-@NATIVE_TRUE@ macho.lo
-test_macho_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_macho_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_test_pecoff_OBJECTS = \
-@NATIVE_TRUE@ test_pecoff-test_format.$(OBJEXT) \
-@NATIVE_TRUE@ test_pecoff-testlib.$(OBJEXT)
-test_pecoff_OBJECTS = $(am_test_pecoff_OBJECTS)
-@NATIVE_TRUE@test_pecoff_DEPENDENCIES = libbacktrace_noformat.la \
-@NATIVE_TRUE@ pecoff.lo
-test_pecoff_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_pecoff_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_test_unknown_OBJECTS = \
-@NATIVE_TRUE@ test_unknown-test_format.$(OBJEXT) \
-@NATIVE_TRUE@ test_unknown-testlib.$(OBJEXT)
-test_unknown_OBJECTS = $(am_test_unknown_OBJECTS)
-@NATIVE_TRUE@test_unknown_DEPENDENCIES = libbacktrace_noformat.la \
-@NATIVE_TRUE@ unknown.lo
-test_unknown_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_unknown_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_test_xcoff_32_OBJECTS = \
-@NATIVE_TRUE@ test_xcoff_32-test_format.$(OBJEXT) \
-@NATIVE_TRUE@ test_xcoff_32-testlib.$(OBJEXT)
-test_xcoff_32_OBJECTS = $(am_test_xcoff_32_OBJECTS)
-@NATIVE_TRUE@test_xcoff_32_DEPENDENCIES = libbacktrace_noformat.la \
-@NATIVE_TRUE@ xcoff_32.lo
-test_xcoff_32_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_xcoff_32_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_test_xcoff_64_OBJECTS = \
-@NATIVE_TRUE@ test_xcoff_64-test_format.$(OBJEXT) \
-@NATIVE_TRUE@ test_xcoff_64-testlib.$(OBJEXT)
-test_xcoff_64_OBJECTS = $(am_test_xcoff_64_OBJECTS)
-@NATIVE_TRUE@test_xcoff_64_DEPENDENCIES = libbacktrace_noformat.la \
-@NATIVE_TRUE@ xcoff_64.lo
-test_xcoff_64_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_xcoff_64_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am_ttest_OBJECTS = \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest-ttest.$(OBJEXT) \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest-testlib.$(OBJEXT)
-ttest_OBJECTS = $(am_ttest_OBJECTS)
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_DEPENDENCIES = libbacktrace.la
-ttest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ttest_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__objects_10 = \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest_alloc-ttest.$(OBJEXT) \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest_alloc-testlib.$(OBJEXT)
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am_ttest_alloc_OBJECTS = \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ $(am__objects_10)
-ttest_alloc_OBJECTS = $(am_ttest_alloc_OBJECTS)
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_DEPENDENCIES = \
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la
-ttest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ttest_alloc_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am_unittest_OBJECTS = unittest-unittest.$(OBJEXT) \
-@NATIVE_TRUE@ unittest-testlib.$(OBJEXT)
-unittest_OBJECTS = $(am_unittest_OBJECTS)
-@NATIVE_TRUE@unittest_DEPENDENCIES = libbacktrace.la
-unittest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(unittest_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@NATIVE_TRUE@am__objects_11 = unittest_alloc-unittest.$(OBJEXT) \
-@NATIVE_TRUE@ unittest_alloc-testlib.$(OBJEXT)
-@NATIVE_TRUE@am_unittest_alloc_OBJECTS = $(am__objects_11)
-unittest_alloc_OBJECTS = $(am_unittest_alloc_OBJECTS)
-@NATIVE_TRUE@unittest_alloc_DEPENDENCIES = libbacktrace_alloc.la
-unittest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(unittest_alloc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
- $@
-@HAVE_ELF_TRUE@am_xztest_OBJECTS = xztest-xztest.$(OBJEXT) \
-@HAVE_ELF_TRUE@ xztest-testlib.$(OBJEXT)
-xztest_OBJECTS = $(am_xztest_OBJECTS)
-@HAVE_ELF_TRUE@xztest_DEPENDENCIES = libbacktrace.la \
-@HAVE_ELF_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-xztest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(xztest_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_ELF_TRUE@am__objects_12 = xztest_alloc-xztest.$(OBJEXT) \
-@HAVE_ELF_TRUE@ xztest_alloc-testlib.$(OBJEXT)
-@HAVE_ELF_TRUE@am_xztest_alloc_OBJECTS = $(am__objects_12)
-xztest_alloc_OBJECTS = $(am_xztest_alloc_OBJECTS)
-@HAVE_ELF_TRUE@xztest_alloc_DEPENDENCIES = libbacktrace_alloc.la \
-@HAVE_ELF_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-xztest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(xztest_alloc_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am_ztest_OBJECTS = ztest-ztest.$(OBJEXT) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest-testlib.$(OBJEXT)
-ztest_OBJECTS = $(am_ztest_OBJECTS)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_DEPENDENCIES = libbacktrace.la \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1)
-ztest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ztest_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am__objects_13 = \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc-ztest.$(OBJEXT) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc-testlib.$(OBJEXT)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@am_ztest_alloc_OBJECTS = \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__objects_13)
-ztest_alloc_OBJECTS = $(am_ztest_alloc_OBJECTS)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_DEPENDENCIES = \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1)
-ztest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ztest_alloc_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \
- $(libbacktrace_alloc_la_SOURCES) \
- $(libbacktrace_elf_for_test_la_SOURCES) \
- $(libbacktrace_instrumented_alloc_la_SOURCES) \
- $(libbacktrace_noformat_la_SOURCES) $(allocfail_SOURCES) \
- $(b2test_SOURCES) $(b3test_SOURCES) $(btest_SOURCES) \
- $(btest_alloc_SOURCES) $(btest_lto_SOURCES) $(ctesta_SOURCES) \
- $(ctesta_alloc_SOURCES) $(ctestg_SOURCES) \
- $(ctestg_alloc_SOURCES) $(dwarf5_SOURCES) \
- $(dwarf5_alloc_SOURCES) $(edtest_SOURCES) \
- $(edtest_alloc_SOURCES) $(mtest_SOURCES) $(stest_SOURCES) \
- $(stest_alloc_SOURCES) $(test_elf_32_SOURCES) \
- $(test_elf_64_SOURCES) $(test_macho_SOURCES) \
- $(test_pecoff_SOURCES) $(test_unknown_SOURCES) \
- $(test_xcoff_32_SOURCES) $(test_xcoff_64_SOURCES) \
- $(ttest_SOURCES) $(ttest_alloc_SOURCES) $(unittest_SOURCES) \
- $(unittest_alloc_SOURCES) $(xztest_SOURCES) \
- $(xztest_alloc_SOURCES) $(ztest_SOURCES) \
- $(ztest_alloc_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(include_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)config.h.in
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-AM_RECURSIVE_TARGETS = cscope check recheck
-am__tty_colors_dummy = \
- mgn= red= grn= lgn= blu= brg= std=; \
- am__color_tests=no
-am__tty_colors = { \
- $(am__tty_colors_dummy); \
- if test "X$(AM_COLOR_TESTS)" = Xno; then \
- am__color_tests=no; \
- elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
- am__color_tests=yes; \
- elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
- am__color_tests=yes; \
- fi; \
- if test $$am__color_tests = yes; then \
- red=''; \
- grn=''; \
- lgn=''; \
- blu=''; \
- mgn=''; \
- brg=''; \
- std=''; \
- fi; \
-}
-am__recheck_rx = ^[ ]*:recheck:[ ]*
-am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
-am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
- recheck = 1; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- { \
- if ((getline line2 < ($$0 ".log")) < 0) \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
- { \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
- { \
- break; \
- } \
- }; \
- if (recheck) \
- print $$0; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
- print "fatal: making $@: " msg | "cat >&2"; \
- exit 1; \
-} \
-function rst_section(header) \
-{ \
- print header; \
- len = length(header); \
- for (i = 1; i <= len; i = i + 1) \
- printf "="; \
- printf "\n\n"; \
-} \
-{ \
- copy_in_global_log = 1; \
- global_test_result = "RUN"; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".trs"); \
- if (line ~ /$(am__global_test_result_rx)/) \
- { \
- sub("$(am__global_test_result_rx)", "", line); \
- sub("[ ]*$$", "", line); \
- global_test_result = line; \
- } \
- else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
- copy_in_global_log = 0; \
- }; \
- if (copy_in_global_log) \
- { \
- rst_section(global_test_result ": " $$0); \
- while ((rc = (getline line < ($$0 ".log"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".log"); \
- print line; \
- }; \
- printf "\n"; \
- }; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
- --color-tests "$$am__color_tests" \
- --enable-hard-errors "$$am__enable_hard_errors" \
- --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test. Creates the
-# directory for the log if needed. Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log. Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup); \
-$(am__vpath_adj_setup) $(am__vpath_adj) \
-$(am__tty_colors); \
-srcdir=$(srcdir); export srcdir; \
-case "$@" in \
- */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
- *) am__odir=.;; \
-esac; \
-test "x$$am__odir" = x"." || test -d "$$am__odir" \
- || $(MKDIR_P) "$$am__odir" || exit $$?; \
-if test -f "./$$f"; then dir=./; \
-elif test -f "$$f"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-tst=$$dir$$f; log='$@'; \
-if test -n '$(DISABLE_HARD_ERRORS)'; then \
- am__enable_hard_errors=no; \
-else \
- am__enable_hard_errors=yes; \
-fi; \
-case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
- am__expect_failure=yes;; \
- *) \
- am__expect_failure=no;; \
-esac; \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed). The result is saved in the shell variable
-# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
- bases='$(TEST_LOGS)'; \
- bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
- bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
- case '$@' in \
- */*) \
- case '$*' in \
- */*) b='$*';; \
- *) b=`echo '$@' | sed 's/\.log$$//'`; \
- esac;; \
- *) \
- b='$*';; \
- esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
- $(TEST_LOG_FLAGS)
-ACLOCAL = @ACLOCAL@
-ALLOC_FILE = @ALLOC_FILE@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BACKTRACE_FILE = @BACKTRACE_FILE@
-BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@
-BACKTRACE_SUPPORTS_DATA = @BACKTRACE_SUPPORTS_DATA@
-BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@
-BACKTRACE_USES_MALLOC = @BACKTRACE_USES_MALLOC@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CLOCK_GETTIME_LINK = @CLOCK_GETTIME_LINK@
-COMM = @COMM@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DWZ = @DWZ@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-EXTRA_FLAGS = @EXTRA_FLAGS@
-FGREP = @FGREP@
-FORMAT_FILE = @FORMAT_FILE@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJCOPY = @OBJCOPY@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PIC_FLAG = @PIC_FLAG@
-PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
-RANLIB = @RANLIB@
-READELF = @READELF@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VIEW_FILE = @VIEW_FILE@
-WARN_FLAGS = @WARN_FLAGS@
-XZ = @XZ@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-libtool_VERSION = @libtool_VERSION@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-multi_basedir = @multi_basedir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-ACLOCAL_AMFLAGS = -I config
-AM_CPPFLAGS =
-AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
-include_HEADERS = backtrace.h backtrace-supported.h
-lib_LTLIBRARIES = libbacktrace.la
-libbacktrace_la_SOURCES = \
- backtrace.h \
- atomic.c \
- dwarf.c \
- fileline.c \
- internal.h \
- posix.c \
- print.c \
- sort.c \
- state.c
-
-BACKTRACE_FILES = \
- backtrace.c \
- simple.c \
- nounwind.c
-
-FORMAT_FILES = \
- elf.c \
- macho.c \
- pecoff.c \
- unknown.c \
- xcoff.c
-
-VIEW_FILES = \
- read.c \
- mmapio.c
-
-ALLOC_FILES = \
- alloc.c \
- mmap.c
-
-EXTRA_libbacktrace_la_SOURCES = \
- $(BACKTRACE_FILES) \
- $(FORMAT_FILES) \
- $(VIEW_FILES) \
- $(ALLOC_FILES)
-
-libbacktrace_la_LIBADD = \
- $(BACKTRACE_FILE) \
- $(FORMAT_FILE) \
- $(VIEW_FILE) \
- $(ALLOC_FILE)
-
-libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
-
-# Add a test to this variable if you want it to be built as a Makefile
-# target and run.
-MAKETESTS = $(am__append_7) $(am__append_9) $(am__append_12) \
- $(am__append_13) $(am__append_20) $(am__append_26)
-
-# Add a test to this variable if you want it to be built as a program,
-# with SOURCES, etc., and run.
-BUILDTESTS = $(am__append_2) $(am__append_10) $(am__append_11) \
- $(am__append_16) $(am__append_17) $(am__append_18) \
- $(am__append_21) $(am__append_22) $(am__append_24) \
- $(am__append_29)
-
-# Add a file to this variable if you want it to be built for testing.
-check_DATA = $(am__append_5) $(am__append_19) $(am__append_23) \
- $(am__append_25)
-
-# Flags to use when compiling test programs.
-libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
-@NATIVE_TRUE@check_LTLIBRARIES = libbacktrace_alloc.la \
-@NATIVE_TRUE@ libbacktrace_noformat.la $(am__append_1) \
-@NATIVE_TRUE@ libbacktrace_instrumented_alloc.la
-@NATIVE_TRUE@libbacktrace_alloc_la_SOURCES = $(libbacktrace_la_SOURCES)
-@NATIVE_TRUE@libbacktrace_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) read.lo alloc.lo
-@NATIVE_TRUE@libbacktrace_alloc_la_DEPENDENCIES = $(libbacktrace_alloc_la_LIBADD)
-@NATIVE_TRUE@libbacktrace_noformat_la_SOURCES = $(libbacktrace_la_SOURCES)
-@NATIVE_TRUE@libbacktrace_noformat_la_LIBADD = $(BACKTRACE_FILE) $(VIEW_FILE) $(ALLOC_FILE)
-@NATIVE_TRUE@libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@TEST_BUILD_ID_DIR = $(abs_builddir)/usr/lib/debug/.build-id/
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@libbacktrace_elf_for_test_la_SOURCES = $(libbacktrace_la_SOURCES)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(VIEW_FILE) $(ALLOC_FILE)
-
-@NATIVE_TRUE@test_elf_32_SOURCES = test_format.c testlib.c
-@NATIVE_TRUE@test_elf_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@test_elf_32_LDADD = libbacktrace_noformat.la elf_32.lo
-@NATIVE_TRUE@test_elf_64_SOURCES = test_format.c testlib.c
-@NATIVE_TRUE@test_elf_64_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo
-@NATIVE_TRUE@test_macho_SOURCES = test_format.c testlib.c
-@NATIVE_TRUE@test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@test_macho_LDADD = libbacktrace_noformat.la macho.lo
-@NATIVE_TRUE@test_xcoff_32_SOURCES = test_format.c testlib.c
-@NATIVE_TRUE@test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo
-@NATIVE_TRUE@test_xcoff_64_SOURCES = test_format.c testlib.c
-@NATIVE_TRUE@test_xcoff_64_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@test_xcoff_64_LDADD = libbacktrace_noformat.la xcoff_64.lo
-@NATIVE_TRUE@test_pecoff_SOURCES = test_format.c testlib.c
-@NATIVE_TRUE@test_pecoff_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@test_pecoff_LDADD = libbacktrace_noformat.la pecoff.lo
-@NATIVE_TRUE@test_unknown_SOURCES = test_format.c testlib.c
-@NATIVE_TRUE@test_unknown_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@test_unknown_LDADD = libbacktrace_noformat.la unknown.lo
-@NATIVE_TRUE@unittest_SOURCES = unittest.c testlib.c
-@NATIVE_TRUE@unittest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@unittest_LDADD = libbacktrace.la
-@NATIVE_TRUE@unittest_alloc_SOURCES = $(unittest_SOURCES)
-@NATIVE_TRUE@unittest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@unittest_alloc_LDADD = libbacktrace_alloc.la
-@NATIVE_TRUE@libbacktrace_instrumented_alloc_la_SOURCES = $(libbacktrace_la_SOURCES)
-@NATIVE_TRUE@libbacktrace_instrumented_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) \
-@NATIVE_TRUE@ read.lo instrumented_alloc.lo
-
-@NATIVE_TRUE@libbacktrace_instrumented_alloc_la_DEPENDENCIES = \
-@NATIVE_TRUE@ $(libbacktrace_instrumented_alloc_la_LIBADD)
-
-@NATIVE_TRUE@allocfail_SOURCES = allocfail.c testlib.c
-@NATIVE_TRUE@allocfail_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@allocfail_LDADD = libbacktrace_instrumented_alloc.la
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_SOURCES = $(btest_SOURCES)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDFLAGS = -Wl,--build-id
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDADD = libbacktrace_elf_for_test.la
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_SOURCES = $(btest_SOURCES)
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDFLAGS = -Wl,--build-id
-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDADD = libbacktrace_elf_for_test.la
-@NATIVE_TRUE@btest_SOURCES = btest.c testlib.c
-@NATIVE_TRUE@btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
-@NATIVE_TRUE@btest_LDADD = libbacktrace.la
-@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_SOURCES = btest.c testlib.c
-@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -flto
-@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_LDADD = libbacktrace.la
-@NATIVE_TRUE@btest_alloc_SOURCES = $(btest_SOURCES)
-@NATIVE_TRUE@btest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@btest_alloc_LDADD = libbacktrace_alloc.la
-@NATIVE_TRUE@stest_SOURCES = stest.c
-@NATIVE_TRUE@stest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@stest_LDADD = libbacktrace.la
-@NATIVE_TRUE@stest_alloc_SOURCES = $(stest_SOURCES)
-@NATIVE_TRUE@stest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@stest_alloc_LDADD = libbacktrace_alloc.la
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_SOURCES = ztest.c testlib.c
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_LDADD = libbacktrace.la \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_14) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_LDADD = libbacktrace_alloc.la \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_15) \
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_SOURCES = $(ztest_SOURCES)
-@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_CFLAGS = $(ztest_CFLAGS)
-@NATIVE_TRUE@edtest_SOURCES = edtest.c edtest2_build.c testlib.c
-@NATIVE_TRUE@edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@edtest_LDADD = libbacktrace.la
-@NATIVE_TRUE@edtest_alloc_SOURCES = $(edtest_SOURCES)
-@NATIVE_TRUE@edtest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@NATIVE_TRUE@edtest_alloc_LDADD = libbacktrace_alloc.la
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_SOURCES = ttest.c testlib.c
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_LDADD = libbacktrace.la
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_SOURCES = $(ttest_SOURCES)
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_CFLAGS = $(ttest_CFLAGS)
-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_LDADD = libbacktrace_alloc.la
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_SOURCES = btest.c testlib.c
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_LDADD = libbacktrace.la
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_SOURCES = btest.c testlib.c
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDADD = libbacktrace.la
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_SOURCES = $(ctestg_SOURCES)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_CFLAGS = $(ctestg_CFLAGS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_LDFLAGS = $(ctestg_LDFLAGS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_LDADD = libbacktrace_alloc.la
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_SOURCES = $(ctesta_SOURCES)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_CFLAGS = $(ctesta_CFLAGS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_LDFLAGS = $(ctesta_LDFLAGS)
-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_LDADD = libbacktrace_alloc.la
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_SOURCES = btest.c testlib.c
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_LDADD = libbacktrace.la
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_SOURCES = $(dwarf5_SOURCES)
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_CFLAGS = $(dwarf5_CFLAGS)
-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_LDADD = libbacktrace_alloc.la
-@NATIVE_TRUE@mtest_SOURCES = mtest.c testlib.c
-@NATIVE_TRUE@mtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
-@NATIVE_TRUE@mtest_LDADD = libbacktrace.la
-@HAVE_ELF_TRUE@xztest_SOURCES = xztest.c testlib.c
-@HAVE_ELF_TRUE@xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
-@HAVE_ELF_TRUE@xztest_LDADD = libbacktrace.la $(am__append_27) \
-@HAVE_ELF_TRUE@ $(CLOCK_GETTIME_LINK)
-@HAVE_ELF_TRUE@xztest_alloc_SOURCES = $(xztest_SOURCES)
-@HAVE_ELF_TRUE@xztest_alloc_CFLAGS = $(xztest_CFLAGS)
-@HAVE_ELF_TRUE@xztest_alloc_LDADD = libbacktrace_alloc.la \
-@HAVE_ELF_TRUE@ $(am__append_28) $(CLOCK_GETTIME_LINK)
-CLEANFILES = \
- $(MAKETESTS) $(BUILDTESTS) *.debug elf_for_test.c edtest2_build.c \
- gen_edtest2_build \
- *.dsyms *.fsyms *.keepsyms *.dbg *.mdbg *.mdbg.xz *.strip
-
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-config.h: stamp-h1
- @test -f $@ || rm -f stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-backtrace-supported.h: $(top_builddir)/config.status $(srcdir)/backtrace-supported.h.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-install-debuginfo-for-buildid.sh: $(top_builddir)/config.status $(srcdir)/install-debuginfo-for-buildid.sh.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-
-clean-checkLTLIBRARIES:
- -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES)
- @list='$(check_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-libbacktrace.la: $(libbacktrace_la_OBJECTS) $(libbacktrace_la_DEPENDENCIES) $(EXTRA_libbacktrace_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) -rpath $(libdir) $(libbacktrace_la_OBJECTS) $(libbacktrace_la_LIBADD) $(LIBS)
-
-libbacktrace_alloc.la: $(libbacktrace_alloc_la_OBJECTS) $(libbacktrace_alloc_la_DEPENDENCIES) $(EXTRA_libbacktrace_alloc_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(am_libbacktrace_alloc_la_rpath) $(libbacktrace_alloc_la_OBJECTS) $(libbacktrace_alloc_la_LIBADD) $(LIBS)
-
-libbacktrace_elf_for_test.la: $(libbacktrace_elf_for_test_la_OBJECTS) $(libbacktrace_elf_for_test_la_DEPENDENCIES) $(EXTRA_libbacktrace_elf_for_test_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(am_libbacktrace_elf_for_test_la_rpath) $(libbacktrace_elf_for_test_la_OBJECTS) $(libbacktrace_elf_for_test_la_LIBADD) $(LIBS)
-
-libbacktrace_instrumented_alloc.la: $(libbacktrace_instrumented_alloc_la_OBJECTS) $(libbacktrace_instrumented_alloc_la_DEPENDENCIES) $(EXTRA_libbacktrace_instrumented_alloc_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(am_libbacktrace_instrumented_alloc_la_rpath) $(libbacktrace_instrumented_alloc_la_OBJECTS) $(libbacktrace_instrumented_alloc_la_LIBADD) $(LIBS)
-
-libbacktrace_noformat.la: $(libbacktrace_noformat_la_OBJECTS) $(libbacktrace_noformat_la_DEPENDENCIES) $(EXTRA_libbacktrace_noformat_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(am_libbacktrace_noformat_la_rpath) $(libbacktrace_noformat_la_OBJECTS) $(libbacktrace_noformat_la_LIBADD) $(LIBS)
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-allocfail$(EXEEXT): $(allocfail_OBJECTS) $(allocfail_DEPENDENCIES) $(EXTRA_allocfail_DEPENDENCIES)
- @rm -f allocfail$(EXEEXT)
- $(AM_V_CCLD)$(allocfail_LINK) $(allocfail_OBJECTS) $(allocfail_LDADD) $(LIBS)
-
-b2test$(EXEEXT): $(b2test_OBJECTS) $(b2test_DEPENDENCIES) $(EXTRA_b2test_DEPENDENCIES)
- @rm -f b2test$(EXEEXT)
- $(AM_V_CCLD)$(b2test_LINK) $(b2test_OBJECTS) $(b2test_LDADD) $(LIBS)
-
-b3test$(EXEEXT): $(b3test_OBJECTS) $(b3test_DEPENDENCIES) $(EXTRA_b3test_DEPENDENCIES)
- @rm -f b3test$(EXEEXT)
- $(AM_V_CCLD)$(b3test_LINK) $(b3test_OBJECTS) $(b3test_LDADD) $(LIBS)
-
-btest$(EXEEXT): $(btest_OBJECTS) $(btest_DEPENDENCIES) $(EXTRA_btest_DEPENDENCIES)
- @rm -f btest$(EXEEXT)
- $(AM_V_CCLD)$(btest_LINK) $(btest_OBJECTS) $(btest_LDADD) $(LIBS)
-
-btest_alloc$(EXEEXT): $(btest_alloc_OBJECTS) $(btest_alloc_DEPENDENCIES) $(EXTRA_btest_alloc_DEPENDENCIES)
- @rm -f btest_alloc$(EXEEXT)
- $(AM_V_CCLD)$(btest_alloc_LINK) $(btest_alloc_OBJECTS) $(btest_alloc_LDADD) $(LIBS)
-
-btest_lto$(EXEEXT): $(btest_lto_OBJECTS) $(btest_lto_DEPENDENCIES) $(EXTRA_btest_lto_DEPENDENCIES)
- @rm -f btest_lto$(EXEEXT)
- $(AM_V_CCLD)$(btest_lto_LINK) $(btest_lto_OBJECTS) $(btest_lto_LDADD) $(LIBS)
-
-ctesta$(EXEEXT): $(ctesta_OBJECTS) $(ctesta_DEPENDENCIES) $(EXTRA_ctesta_DEPENDENCIES)
- @rm -f ctesta$(EXEEXT)
- $(AM_V_CCLD)$(ctesta_LINK) $(ctesta_OBJECTS) $(ctesta_LDADD) $(LIBS)
-
-ctesta_alloc$(EXEEXT): $(ctesta_alloc_OBJECTS) $(ctesta_alloc_DEPENDENCIES) $(EXTRA_ctesta_alloc_DEPENDENCIES)
- @rm -f ctesta_alloc$(EXEEXT)
- $(AM_V_CCLD)$(ctesta_alloc_LINK) $(ctesta_alloc_OBJECTS) $(ctesta_alloc_LDADD) $(LIBS)
-
-ctestg$(EXEEXT): $(ctestg_OBJECTS) $(ctestg_DEPENDENCIES) $(EXTRA_ctestg_DEPENDENCIES)
- @rm -f ctestg$(EXEEXT)
- $(AM_V_CCLD)$(ctestg_LINK) $(ctestg_OBJECTS) $(ctestg_LDADD) $(LIBS)
-
-ctestg_alloc$(EXEEXT): $(ctestg_alloc_OBJECTS) $(ctestg_alloc_DEPENDENCIES) $(EXTRA_ctestg_alloc_DEPENDENCIES)
- @rm -f ctestg_alloc$(EXEEXT)
- $(AM_V_CCLD)$(ctestg_alloc_LINK) $(ctestg_alloc_OBJECTS) $(ctestg_alloc_LDADD) $(LIBS)
-
-dwarf5$(EXEEXT): $(dwarf5_OBJECTS) $(dwarf5_DEPENDENCIES) $(EXTRA_dwarf5_DEPENDENCIES)
- @rm -f dwarf5$(EXEEXT)
- $(AM_V_CCLD)$(dwarf5_LINK) $(dwarf5_OBJECTS) $(dwarf5_LDADD) $(LIBS)
-
-dwarf5_alloc$(EXEEXT): $(dwarf5_alloc_OBJECTS) $(dwarf5_alloc_DEPENDENCIES) $(EXTRA_dwarf5_alloc_DEPENDENCIES)
- @rm -f dwarf5_alloc$(EXEEXT)
- $(AM_V_CCLD)$(dwarf5_alloc_LINK) $(dwarf5_alloc_OBJECTS) $(dwarf5_alloc_LDADD) $(LIBS)
-
-edtest$(EXEEXT): $(edtest_OBJECTS) $(edtest_DEPENDENCIES) $(EXTRA_edtest_DEPENDENCIES)
- @rm -f edtest$(EXEEXT)
- $(AM_V_CCLD)$(edtest_LINK) $(edtest_OBJECTS) $(edtest_LDADD) $(LIBS)
-
-edtest_alloc$(EXEEXT): $(edtest_alloc_OBJECTS) $(edtest_alloc_DEPENDENCIES) $(EXTRA_edtest_alloc_DEPENDENCIES)
- @rm -f edtest_alloc$(EXEEXT)
- $(AM_V_CCLD)$(edtest_alloc_LINK) $(edtest_alloc_OBJECTS) $(edtest_alloc_LDADD) $(LIBS)
-
-mtest$(EXEEXT): $(mtest_OBJECTS) $(mtest_DEPENDENCIES) $(EXTRA_mtest_DEPENDENCIES)
- @rm -f mtest$(EXEEXT)
- $(AM_V_CCLD)$(mtest_LINK) $(mtest_OBJECTS) $(mtest_LDADD) $(LIBS)
-
-stest$(EXEEXT): $(stest_OBJECTS) $(stest_DEPENDENCIES) $(EXTRA_stest_DEPENDENCIES)
- @rm -f stest$(EXEEXT)
- $(AM_V_CCLD)$(stest_LINK) $(stest_OBJECTS) $(stest_LDADD) $(LIBS)
-
-stest_alloc$(EXEEXT): $(stest_alloc_OBJECTS) $(stest_alloc_DEPENDENCIES) $(EXTRA_stest_alloc_DEPENDENCIES)
- @rm -f stest_alloc$(EXEEXT)
- $(AM_V_CCLD)$(stest_alloc_LINK) $(stest_alloc_OBJECTS) $(stest_alloc_LDADD) $(LIBS)
-
-test_elf_32$(EXEEXT): $(test_elf_32_OBJECTS) $(test_elf_32_DEPENDENCIES) $(EXTRA_test_elf_32_DEPENDENCIES)
- @rm -f test_elf_32$(EXEEXT)
- $(AM_V_CCLD)$(test_elf_32_LINK) $(test_elf_32_OBJECTS) $(test_elf_32_LDADD) $(LIBS)
-
-test_elf_64$(EXEEXT): $(test_elf_64_OBJECTS) $(test_elf_64_DEPENDENCIES) $(EXTRA_test_elf_64_DEPENDENCIES)
- @rm -f test_elf_64$(EXEEXT)
- $(AM_V_CCLD)$(test_elf_64_LINK) $(test_elf_64_OBJECTS) $(test_elf_64_LDADD) $(LIBS)
-
-test_macho$(EXEEXT): $(test_macho_OBJECTS) $(test_macho_DEPENDENCIES) $(EXTRA_test_macho_DEPENDENCIES)
- @rm -f test_macho$(EXEEXT)
- $(AM_V_CCLD)$(test_macho_LINK) $(test_macho_OBJECTS) $(test_macho_LDADD) $(LIBS)
-
-test_pecoff$(EXEEXT): $(test_pecoff_OBJECTS) $(test_pecoff_DEPENDENCIES) $(EXTRA_test_pecoff_DEPENDENCIES)
- @rm -f test_pecoff$(EXEEXT)
- $(AM_V_CCLD)$(test_pecoff_LINK) $(test_pecoff_OBJECTS) $(test_pecoff_LDADD) $(LIBS)
-
-test_unknown$(EXEEXT): $(test_unknown_OBJECTS) $(test_unknown_DEPENDENCIES) $(EXTRA_test_unknown_DEPENDENCIES)
- @rm -f test_unknown$(EXEEXT)
- $(AM_V_CCLD)$(test_unknown_LINK) $(test_unknown_OBJECTS) $(test_unknown_LDADD) $(LIBS)
-
-test_xcoff_32$(EXEEXT): $(test_xcoff_32_OBJECTS) $(test_xcoff_32_DEPENDENCIES) $(EXTRA_test_xcoff_32_DEPENDENCIES)
- @rm -f test_xcoff_32$(EXEEXT)
- $(AM_V_CCLD)$(test_xcoff_32_LINK) $(test_xcoff_32_OBJECTS) $(test_xcoff_32_LDADD) $(LIBS)
-
-test_xcoff_64$(EXEEXT): $(test_xcoff_64_OBJECTS) $(test_xcoff_64_DEPENDENCIES) $(EXTRA_test_xcoff_64_DEPENDENCIES)
- @rm -f test_xcoff_64$(EXEEXT)
- $(AM_V_CCLD)$(test_xcoff_64_LINK) $(test_xcoff_64_OBJECTS) $(test_xcoff_64_LDADD) $(LIBS)
-
-ttest$(EXEEXT): $(ttest_OBJECTS) $(ttest_DEPENDENCIES) $(EXTRA_ttest_DEPENDENCIES)
- @rm -f ttest$(EXEEXT)
- $(AM_V_CCLD)$(ttest_LINK) $(ttest_OBJECTS) $(ttest_LDADD) $(LIBS)
-
-ttest_alloc$(EXEEXT): $(ttest_alloc_OBJECTS) $(ttest_alloc_DEPENDENCIES) $(EXTRA_ttest_alloc_DEPENDENCIES)
- @rm -f ttest_alloc$(EXEEXT)
- $(AM_V_CCLD)$(ttest_alloc_LINK) $(ttest_alloc_OBJECTS) $(ttest_alloc_LDADD) $(LIBS)
-
-unittest$(EXEEXT): $(unittest_OBJECTS) $(unittest_DEPENDENCIES) $(EXTRA_unittest_DEPENDENCIES)
- @rm -f unittest$(EXEEXT)
- $(AM_V_CCLD)$(unittest_LINK) $(unittest_OBJECTS) $(unittest_LDADD) $(LIBS)
-
-unittest_alloc$(EXEEXT): $(unittest_alloc_OBJECTS) $(unittest_alloc_DEPENDENCIES) $(EXTRA_unittest_alloc_DEPENDENCIES)
- @rm -f unittest_alloc$(EXEEXT)
- $(AM_V_CCLD)$(unittest_alloc_LINK) $(unittest_alloc_OBJECTS) $(unittest_alloc_LDADD) $(LIBS)
-
-xztest$(EXEEXT): $(xztest_OBJECTS) $(xztest_DEPENDENCIES) $(EXTRA_xztest_DEPENDENCIES)
- @rm -f xztest$(EXEEXT)
- $(AM_V_CCLD)$(xztest_LINK) $(xztest_OBJECTS) $(xztest_LDADD) $(LIBS)
-
-xztest_alloc$(EXEEXT): $(xztest_alloc_OBJECTS) $(xztest_alloc_DEPENDENCIES) $(EXTRA_xztest_alloc_DEPENDENCIES)
- @rm -f xztest_alloc$(EXEEXT)
- $(AM_V_CCLD)$(xztest_alloc_LINK) $(xztest_alloc_OBJECTS) $(xztest_alloc_LDADD) $(LIBS)
-
-ztest$(EXEEXT): $(ztest_OBJECTS) $(ztest_DEPENDENCIES) $(EXTRA_ztest_DEPENDENCIES)
- @rm -f ztest$(EXEEXT)
- $(AM_V_CCLD)$(ztest_LINK) $(ztest_OBJECTS) $(ztest_LDADD) $(LIBS)
-
-ztest_alloc$(EXEEXT): $(ztest_alloc_OBJECTS) $(ztest_alloc_DEPENDENCIES) $(EXTRA_ztest_alloc_DEPENDENCIES)
- @rm -f ztest_alloc$(EXEEXT)
- $(AM_V_CCLD)$(ztest_alloc_LINK) $(ztest_alloc_OBJECTS) $(ztest_alloc_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(AM_V_CC)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(AM_V_CC)$(LTCOMPILE) -c -o $@ $<
-
-allocfail-allocfail.o: allocfail.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-allocfail.o `test -f 'allocfail.c' || echo '$(srcdir)/'`allocfail.c
-
-allocfail-allocfail.obj: allocfail.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-allocfail.obj `if test -f 'allocfail.c'; then $(CYGPATH_W) 'allocfail.c'; else $(CYGPATH_W) '$(srcdir)/allocfail.c'; fi`
-
-allocfail-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-allocfail-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-b2test-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-b2test-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-b2test-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-b2test-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-b3test-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-b3test-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-b3test-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-b3test-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-btest-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-btest-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-btest-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-btest-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-btest_alloc-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-btest_alloc-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-btest_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-btest_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-btest_lto-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-btest_lto-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-btest_lto-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-btest_lto-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ctesta-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-ctesta-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-ctesta-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ctesta-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ctesta_alloc-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-ctesta_alloc-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-ctesta_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ctesta_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ctestg-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-ctestg-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-ctestg-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ctestg-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ctestg_alloc-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-ctestg_alloc-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-ctestg_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ctestg_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-dwarf5-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-dwarf5-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-dwarf5-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-dwarf5-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-dwarf5_alloc-btest.o: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
-
-dwarf5_alloc-btest.obj: btest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
-
-dwarf5_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-dwarf5_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-edtest-edtest.o: edtest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest.o `test -f 'edtest.c' || echo '$(srcdir)/'`edtest.c
-
-edtest-edtest.obj: edtest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest.obj `if test -f 'edtest.c'; then $(CYGPATH_W) 'edtest.c'; else $(CYGPATH_W) '$(srcdir)/edtest.c'; fi`
-
-edtest-edtest2_build.o: edtest2_build.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest2_build.o `test -f 'edtest2_build.c' || echo '$(srcdir)/'`edtest2_build.c
-
-edtest-edtest2_build.obj: edtest2_build.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest2_build.obj `if test -f 'edtest2_build.c'; then $(CYGPATH_W) 'edtest2_build.c'; else $(CYGPATH_W) '$(srcdir)/edtest2_build.c'; fi`
-
-edtest-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-edtest-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-edtest_alloc-edtest.o: edtest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest.o `test -f 'edtest.c' || echo '$(srcdir)/'`edtest.c
-
-edtest_alloc-edtest.obj: edtest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest.obj `if test -f 'edtest.c'; then $(CYGPATH_W) 'edtest.c'; else $(CYGPATH_W) '$(srcdir)/edtest.c'; fi`
-
-edtest_alloc-edtest2_build.o: edtest2_build.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest2_build.o `test -f 'edtest2_build.c' || echo '$(srcdir)/'`edtest2_build.c
-
-edtest_alloc-edtest2_build.obj: edtest2_build.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest2_build.obj `if test -f 'edtest2_build.c'; then $(CYGPATH_W) 'edtest2_build.c'; else $(CYGPATH_W) '$(srcdir)/edtest2_build.c'; fi`
-
-edtest_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-edtest_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-mtest-mtest.o: mtest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-mtest.o `test -f 'mtest.c' || echo '$(srcdir)/'`mtest.c
-
-mtest-mtest.obj: mtest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-mtest.obj `if test -f 'mtest.c'; then $(CYGPATH_W) 'mtest.c'; else $(CYGPATH_W) '$(srcdir)/mtest.c'; fi`
-
-mtest-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-mtest-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-stest-stest.o: stest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_CFLAGS) $(CFLAGS) -c -o stest-stest.o `test -f 'stest.c' || echo '$(srcdir)/'`stest.c
-
-stest-stest.obj: stest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_CFLAGS) $(CFLAGS) -c -o stest-stest.obj `if test -f 'stest.c'; then $(CYGPATH_W) 'stest.c'; else $(CYGPATH_W) '$(srcdir)/stest.c'; fi`
-
-stest_alloc-stest.o: stest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_alloc_CFLAGS) $(CFLAGS) -c -o stest_alloc-stest.o `test -f 'stest.c' || echo '$(srcdir)/'`stest.c
-
-stest_alloc-stest.obj: stest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_alloc_CFLAGS) $(CFLAGS) -c -o stest_alloc-stest.obj `if test -f 'stest.c'; then $(CYGPATH_W) 'stest.c'; else $(CYGPATH_W) '$(srcdir)/stest.c'; fi`
-
-test_elf_32-test_format.o: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c
-
-test_elf_32-test_format.obj: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi`
-
-test_elf_32-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-test_elf_32-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-test_elf_64-test_format.o: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c
-
-test_elf_64-test_format.obj: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi`
-
-test_elf_64-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-test_elf_64-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-test_macho-test_format.o: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c
-
-test_macho-test_format.obj: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi`
-
-test_macho-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-test_macho-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-test_pecoff-test_format.o: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c
-
-test_pecoff-test_format.obj: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi`
-
-test_pecoff-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-test_pecoff-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-test_unknown-test_format.o: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c
-
-test_unknown-test_format.obj: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi`
-
-test_unknown-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-test_unknown-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-test_xcoff_32-test_format.o: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c
-
-test_xcoff_32-test_format.obj: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi`
-
-test_xcoff_32-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-test_xcoff_32-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-test_xcoff_64-test_format.o: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c
-
-test_xcoff_64-test_format.obj: test_format.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi`
-
-test_xcoff_64-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-test_xcoff_64-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ttest-ttest.o: ttest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-ttest.o `test -f 'ttest.c' || echo '$(srcdir)/'`ttest.c
-
-ttest-ttest.obj: ttest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-ttest.obj `if test -f 'ttest.c'; then $(CYGPATH_W) 'ttest.c'; else $(CYGPATH_W) '$(srcdir)/ttest.c'; fi`
-
-ttest-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ttest-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ttest_alloc-ttest.o: ttest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-ttest.o `test -f 'ttest.c' || echo '$(srcdir)/'`ttest.c
-
-ttest_alloc-ttest.obj: ttest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-ttest.obj `if test -f 'ttest.c'; then $(CYGPATH_W) 'ttest.c'; else $(CYGPATH_W) '$(srcdir)/ttest.c'; fi`
-
-ttest_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ttest_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-unittest-unittest.o: unittest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-unittest.o `test -f 'unittest.c' || echo '$(srcdir)/'`unittest.c
-
-unittest-unittest.obj: unittest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-unittest.obj `if test -f 'unittest.c'; then $(CYGPATH_W) 'unittest.c'; else $(CYGPATH_W) '$(srcdir)/unittest.c'; fi`
-
-unittest-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-unittest-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-unittest_alloc-unittest.o: unittest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-unittest.o `test -f 'unittest.c' || echo '$(srcdir)/'`unittest.c
-
-unittest_alloc-unittest.obj: unittest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-unittest.obj `if test -f 'unittest.c'; then $(CYGPATH_W) 'unittest.c'; else $(CYGPATH_W) '$(srcdir)/unittest.c'; fi`
-
-unittest_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-unittest_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-xztest-xztest.o: xztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-xztest.o `test -f 'xztest.c' || echo '$(srcdir)/'`xztest.c
-
-xztest-xztest.obj: xztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-xztest.obj `if test -f 'xztest.c'; then $(CYGPATH_W) 'xztest.c'; else $(CYGPATH_W) '$(srcdir)/xztest.c'; fi`
-
-xztest-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-xztest-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-xztest_alloc-xztest.o: xztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-xztest.o `test -f 'xztest.c' || echo '$(srcdir)/'`xztest.c
-
-xztest_alloc-xztest.obj: xztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-xztest.obj `if test -f 'xztest.c'; then $(CYGPATH_W) 'xztest.c'; else $(CYGPATH_W) '$(srcdir)/xztest.c'; fi`
-
-xztest_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-xztest_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ztest-ztest.o: ztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.o `test -f 'ztest.c' || echo '$(srcdir)/'`ztest.c
-
-ztest-ztest.obj: ztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.obj `if test -f 'ztest.c'; then $(CYGPATH_W) 'ztest.c'; else $(CYGPATH_W) '$(srcdir)/ztest.c'; fi`
-
-ztest-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ztest-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-ztest_alloc-ztest.o: ztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-ztest.o `test -f 'ztest.c' || echo '$(srcdir)/'`ztest.c
-
-ztest_alloc-ztest.obj: ztest.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-ztest.obj `if test -f 'ztest.c'; then $(CYGPATH_W) 'ztest.c'; else $(CYGPATH_W) '$(srcdir)/ztest.c'; fi`
-
-ztest_alloc-testlib.o: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
-
-ztest_alloc-testlib.obj: testlib.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool config.lt
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
- test ! -s cscope.files \
- || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
- -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
- rm -f $< $@
- $(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
- @:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(am__set_TESTS_bases); \
- am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
- redo_bases=`for i in $$bases; do \
- am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
- done`; \
- if test -n "$$redo_bases"; then \
- redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
- redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
- if $(am__make_dryrun); then :; else \
- rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
- fi; \
- fi; \
- if test -n "$$am__remaking_logs"; then \
- echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
- "recursion detected" >&2; \
- elif test -n "$$redo_logs"; then \
- am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
- fi; \
- if $(am__make_dryrun); then :; else \
- st=0; \
- errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
- for i in $$redo_bases; do \
- test -f $$i.trs && test -r $$i.trs \
- || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
- test -f $$i.log && test -r $$i.log \
- || { echo "$$errmsg $$i.log" >&2; st=1; }; \
- done; \
- test $$st -eq 0 || exit 1; \
- fi
- @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
- ws='[ ]'; \
- results=`for b in $$bases; do echo $$b.trs; done`; \
- test -n "$$results" || results=/dev/null; \
- all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
- pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
- fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
- skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
- xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
- xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
- error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
- if test `expr $$fail + $$xpass + $$error` -eq 0; then \
- success=true; \
- else \
- success=false; \
- fi; \
- br='==================='; br=$$br$$br$$br$$br; \
- result_count () \
- { \
- if test x"$$1" = x"--maybe-color"; then \
- maybe_colorize=yes; \
- elif test x"$$1" = x"--no-color"; then \
- maybe_colorize=no; \
- else \
- echo "$@: invalid 'result_count' usage" >&2; exit 4; \
- fi; \
- shift; \
- desc=$$1 count=$$2; \
- if test $$maybe_colorize = yes && test $$count -gt 0; then \
- color_start=$$3 color_end=$$std; \
- else \
- color_start= color_end=; \
- fi; \
- echo "$${color_start}# $$desc $$count$${color_end}"; \
- }; \
- create_testsuite_report () \
- { \
- result_count $$1 "TOTAL:" $$all "$$brg"; \
- result_count $$1 "PASS: " $$pass "$$grn"; \
- result_count $$1 "SKIP: " $$skip "$$blu"; \
- result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
- result_count $$1 "FAIL: " $$fail "$$red"; \
- result_count $$1 "XPASS:" $$xpass "$$red"; \
- result_count $$1 "ERROR:" $$error "$$mgn"; \
- }; \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- create_testsuite_report --no-color; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for b in $$bases; do echo $$b; done \
- | $(am__create_global_log); \
- } >$(TEST_SUITE_LOG).tmp || exit 1; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- if $$success; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
- fi; \
- echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
- echo "$${col}$$br$${std}"; \
- create_testsuite_report --maybe-color; \
- echo "$$col$$br$$std"; \
- if $$success; then :; else \
- echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
- fi; \
- echo "$$col$$br$$std"; \
- fi; \
- $$success || exit 1
-
-check-TESTS:
- @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
- @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- trs_list=`for i in $$bases; do echo $$i.trs; done`; \
- log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
- exit $$?;
-recheck: all $(check_LTLIBRARIES) $(check_PROGRAMS) $(check_DATA)
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- bases=`for i in $$bases; do echo $$i; done \
- | $(am__list_recheck_tests)` || exit 1; \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- log_list=`echo $$log_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
- am__force_recheck=am--force-recheck \
- TEST_LOGS="$$log_list"; \
- exit $$?
-allocfail.sh.log: allocfail.sh
- @p='allocfail.sh'; \
- b='allocfail.sh'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-b2test_buildid.log: b2test_buildid
- @p='b2test_buildid'; \
- b='b2test_buildid'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-b3test_dwz_buildid.log: b3test_dwz_buildid
- @p='b3test_dwz_buildid'; \
- b='b3test_dwz_buildid'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-btest_dwz.log: btest_dwz
- @p='btest_dwz'; \
- b='btest_dwz'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-btest_dwz_gnudebuglink.log: btest_dwz_gnudebuglink
- @p='btest_dwz_gnudebuglink'; \
- b='btest_dwz_gnudebuglink'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-btest_gnudebuglink.log: btest_gnudebuglink
- @p='btest_gnudebuglink'; \
- b='btest_gnudebuglink'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-mtest_minidebug.log: mtest_minidebug
- @p='mtest_minidebug'; \
- b='mtest_minidebug'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_elf_32.log: test_elf_32$(EXEEXT)
- @p='test_elf_32$(EXEEXT)'; \
- b='test_elf_32'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_elf_64.log: test_elf_64$(EXEEXT)
- @p='test_elf_64$(EXEEXT)'; \
- b='test_elf_64'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_macho.log: test_macho$(EXEEXT)
- @p='test_macho$(EXEEXT)'; \
- b='test_macho'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_xcoff_32.log: test_xcoff_32$(EXEEXT)
- @p='test_xcoff_32$(EXEEXT)'; \
- b='test_xcoff_32'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_xcoff_64.log: test_xcoff_64$(EXEEXT)
- @p='test_xcoff_64$(EXEEXT)'; \
- b='test_xcoff_64'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_pecoff.log: test_pecoff$(EXEEXT)
- @p='test_pecoff$(EXEEXT)'; \
- b='test_pecoff'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_unknown.log: test_unknown$(EXEEXT)
- @p='test_unknown$(EXEEXT)'; \
- b='test_unknown'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unittest.log: unittest$(EXEEXT)
- @p='unittest$(EXEEXT)'; \
- b='unittest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unittest_alloc.log: unittest_alloc$(EXEEXT)
- @p='unittest_alloc$(EXEEXT)'; \
- b='unittest_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-btest.log: btest$(EXEEXT)
- @p='btest$(EXEEXT)'; \
- b='btest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-btest_lto.log: btest_lto$(EXEEXT)
- @p='btest_lto$(EXEEXT)'; \
- b='btest_lto'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-btest_alloc.log: btest_alloc$(EXEEXT)
- @p='btest_alloc$(EXEEXT)'; \
- b='btest_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-stest.log: stest$(EXEEXT)
- @p='stest$(EXEEXT)'; \
- b='stest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-stest_alloc.log: stest_alloc$(EXEEXT)
- @p='stest_alloc$(EXEEXT)'; \
- b='stest_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ztest.log: ztest$(EXEEXT)
- @p='ztest$(EXEEXT)'; \
- b='ztest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ztest_alloc.log: ztest_alloc$(EXEEXT)
- @p='ztest_alloc$(EXEEXT)'; \
- b='ztest_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-edtest.log: edtest$(EXEEXT)
- @p='edtest$(EXEEXT)'; \
- b='edtest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-edtest_alloc.log: edtest_alloc$(EXEEXT)
- @p='edtest_alloc$(EXEEXT)'; \
- b='edtest_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ttest.log: ttest$(EXEEXT)
- @p='ttest$(EXEEXT)'; \
- b='ttest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ttest_alloc.log: ttest_alloc$(EXEEXT)
- @p='ttest_alloc$(EXEEXT)'; \
- b='ttest_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ctestg.log: ctestg$(EXEEXT)
- @p='ctestg$(EXEEXT)'; \
- b='ctestg'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ctesta.log: ctesta$(EXEEXT)
- @p='ctesta$(EXEEXT)'; \
- b='ctesta'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ctestg_alloc.log: ctestg_alloc$(EXEEXT)
- @p='ctestg_alloc$(EXEEXT)'; \
- b='ctestg_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-ctesta_alloc.log: ctesta_alloc$(EXEEXT)
- @p='ctesta_alloc$(EXEEXT)'; \
- b='ctesta_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-dwarf5.log: dwarf5$(EXEEXT)
- @p='dwarf5$(EXEEXT)'; \
- b='dwarf5'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-dwarf5_alloc.log: dwarf5_alloc$(EXEEXT)
- @p='dwarf5_alloc$(EXEEXT)'; \
- b='dwarf5_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-mtest.log: mtest$(EXEEXT)
- @p='mtest$(EXEEXT)'; \
- b='mtest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-xztest.log: xztest$(EXEEXT)
- @p='xztest$(EXEEXT)'; \
- b='xztest'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-xztest_alloc.log: xztest_alloc$(EXEEXT)
- @p='xztest_alloc$(EXEEXT)'; \
- b='xztest_alloc'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
- @p='$<'; \
- $(am__set_b); \
- $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
-@am__EXEEXT_TRUE@ @p='$<'; \
-@am__EXEEXT_TRUE@ $(am__set_b); \
-@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS) \
- $(check_DATA)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
- -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
- -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-local mostlyclean-am
-
-distclean: distclean-am
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-hdr distclean-libtool distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
-
-.MAKE: all check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-TESTS \
- check-am clean clean-checkLTLIBRARIES clean-checkPROGRAMS \
- clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \
- clean-local cscope cscopelist-am ctags ctags-am distclean \
- distclean-compile distclean-generic distclean-hdr \
- distclean-libtool distclean-tags dvi dvi-am html html-am info \
- info-am install install-am install-data install-data-am \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-html install-html-am install-includeHEADERS \
- install-info install-info-am install-libLTLIBRARIES \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \
- uninstall uninstall-am uninstall-includeHEADERS \
- uninstall-libLTLIBRARIES
-
-.PRECIOUS: Makefile
-
-
-@USE_DSYMUTIL_TRUE@%.dSYM: %
-@USE_DSYMUTIL_TRUE@ $(DSYMUTIL) $<
-
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@elf_for_test.c: elf.c
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ SEARCH='^#define SYSTEM_BUILD_ID_DIR.*$$'; \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ REPLACE="#define SYSTEM_BUILD_ID_DIR \"$(TEST_BUILD_ID_DIR)\""; \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(SED) "s%$$SEARCH%$$REPLACE%" \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $< \
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ > $@.tmp
-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ mv $@.tmp $@
-
-@NATIVE_TRUE@elf_%.c: elf.c
-@NATIVE_TRUE@ SEARCH='#error "Unknown BACKTRACE_ELF_SIZE"'; \
-@NATIVE_TRUE@ REPLACE='#undef BACKTRACE_ELF_SIZE\
-@NATIVE_TRUE@ #define BACKTRACE_ELF_SIZE'; \
-@NATIVE_TRUE@ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \
-@NATIVE_TRUE@ $< \
-@NATIVE_TRUE@ > $@.tmp
-@NATIVE_TRUE@ mv $@.tmp $@
-
-@NATIVE_TRUE@xcoff_%.c: xcoff.c
-@NATIVE_TRUE@ SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \
-@NATIVE_TRUE@ REPLACE='#undef BACKTRACE_XCOFF_SIZE\
-@NATIVE_TRUE@ #define BACKTRACE_XCOFF_SIZE'; \
-@NATIVE_TRUE@ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \
-@NATIVE_TRUE@ $< \
-@NATIVE_TRUE@ > $@.tmp
-@NATIVE_TRUE@ mv $@.tmp $@
-
-@NATIVE_TRUE@instrumented_alloc.lo: alloc.c
-
-@NATIVE_TRUE@allocfail.sh: allocfail
-
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@%_dwz: %
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ rm -f $@ $@_common.debug
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ cp $< $@_1
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ cp $< $@_2
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ if $(DWZ) -m $@_common.debug $@_1 $@_2; then \
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ rm -f $@_2; \
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ mv $@_1 $@; \
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ else \
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ echo "Ignoring dwz errors, assuming that test passes"; \
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ cp $< $@; \
-@HAVE_DWZ_TRUE@@NATIVE_TRUE@ fi
-
-@NATIVE_TRUE@edtest2_build.c: gen_edtest2_build; @true
-@NATIVE_TRUE@gen_edtest2_build: $(srcdir)/edtest2.c
-@NATIVE_TRUE@ cat $(srcdir)/edtest2.c > tmp-edtest2_build.c
-@NATIVE_TRUE@ $(SHELL) $(srcdir)/move-if-change tmp-edtest2_build.c edtest2_build.c
-@NATIVE_TRUE@ echo timestamp > $@
-
-@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@%_gnudebuglink: %
-@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --only-keep-debug $< $@.debug
-@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --strip-debug --add-gnu-debuglink=$@.debug $< $@
-
-@NATIVE_TRUE@%_buildid: %
-@NATIVE_TRUE@ ./install-debuginfo-for-buildid.sh \
-@NATIVE_TRUE@ "$(TEST_BUILD_ID_DIR)" \
-@NATIVE_TRUE@ $<
-@NATIVE_TRUE@ $(OBJCOPY) --strip-debug $< $@
-
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@%_minidebug: %
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(NM) -D $< -P --defined-only | $(AWK) '{ print $$1 }' | sort > $<.dsyms
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D") print $$1 }' | sort > $<.fsyms
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(COMM) -13 $<.dsyms $<.fsyms > $<.keepsyms
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --only-keep-debug $< $<.dbg
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) -S --remove-section .gdb_index --remove-section .comment --keep-symbols=$<.keepsyms $<.dbg $<.mdbg
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --strip-all --remove-section ..comment $< $<.strip
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ rm -f $<.mdbg.xz
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(XZ) $<.mdbg
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --add-section .gnu_debugdata=$<.mdbg.xz $<.strip
-@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ mv $<.strip $@
-
-clean-local:
- -rm -rf usr
-
-# We can't use automake's automatic dependency tracking, because it
-# breaks when using bootstrap-lean. Automatic dependency tracking
-# with GCC bootstrap will cause some of the objects to depend on
-# header files in prev-gcc/include, e.g., stddef.h and stdarg.h. When
-# using bootstrap-lean, prev-gcc is removed after each stage. When
-# running "make install", those header files will be gone, causing the
-# library to be rebuilt at install time. That may not succeed.
-
-# These manual dependencies do not include dependencies on unwind.h,
-# even though that is part of GCC, because where to find it depends on
-# whether we are being built as a host library or a target library.
-
-alloc.lo: config.h backtrace.h internal.h
-backtrace.lo: config.h backtrace.h internal.h
-btest.lo: filenames.h backtrace.h backtrace-supported.h
-dwarf.lo: config.h filenames.h backtrace.h internal.h
-elf.lo: config.h backtrace.h internal.h
-fileline.lo: config.h backtrace.h internal.h
-macho.lo: config.h backtrace.h internal.h
-mmap.lo: config.h backtrace.h internal.h
-mmapio.lo: config.h backtrace.h internal.h
-mtest.lo: backtrace.h backtrace-supported.h
-nounwind.lo: config.h internal.h
-pecoff.lo: config.h backtrace.h internal.h
-posix.lo: config.h backtrace.h internal.h
-print.lo: config.h backtrace.h internal.h
-read.lo: config.h backtrace.h internal.h
-simple.lo: config.h backtrace.h internal.h
-sort.lo: config.h backtrace.h internal.h
-stest.lo: config.h backtrace.h internal.h
-state.lo: config.h backtrace.h backtrace-supported.h internal.h
-unknown.lo: config.h backtrace.h internal.h
-xcoff.lo: config.h backtrace.h internal.h
-xztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h
-ztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/README.md b/fluent-bit/lib/libbacktrace-8602fda/README.md
deleted file mode 100644
index c82834d17..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# libbacktrace
-A C library that may be linked into a C/C++ program to produce symbolic backtraces
-
-Initially written by Ian Lance Taylor <iant@golang.org>.
-
-This is version 1.0.
-It is likely that this will always be version 1.0.
-
-The libbacktrace library may be linked into a program or library and
-used to produce symbolic backtraces.
-Sample uses would be to print a detailed backtrace when an error
-occurs or to gather detailed profiling information.
-In general the functions provided by this library are async-signal-safe,
-meaning that they may be safely called from a signal handler.
-
-The libbacktrace library is provided under a BSD license.
-See the source files for the exact license text.
-
-The public functions are declared and documented in the header file
-backtrace.h, which should be #include'd by a user of the library.
-
-Building libbacktrace will generate a file backtrace-supported.h,
-which a user of the library may use to determine whether backtraces
-will work.
-See the source file backtrace-supported.h.in for the macros that it
-defines.
-
-As of October 2020, libbacktrace supports ELF, PE/COFF, Mach-O, and
-XCOFF executables with DWARF debugging information.
-In other words, it supports GNU/Linux, *BSD, macOS, Windows, and AIX.
-The library is written to make it straightforward to add support for
-other object file and debugging formats.
-
-The library relies on the C++ unwind API defined at
-https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html
-This API is provided by GCC and clang.
diff --git a/fluent-bit/lib/libbacktrace-8602fda/aclocal.m4 b/fluent-bit/lib/libbacktrace-8602fda/aclocal.m4
deleted file mode 100644
index 16042129f..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/aclocal.m4
+++ /dev/null
@@ -1,864 +0,0 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15.1], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi
-dnl The trailing newline in this macro's definition is deliberate, for
-dnl backward compatibility and to allow trailing 'dnl'-style comments
-dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
-])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well. Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
- [enable], [m4_define([am_maintainer_other], [disable])],
- [disable], [m4_define([am_maintainer_other], [enable])],
- [m4_define([am_maintainer_other], [enable])
- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode's default is 'disable' unless 'enable' is passed
- AC_ARG_ENABLE([maintainer-mode],
- [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
- am_maintainer_other[ make rules and dependencies not useful
- (and sometimes confusing) to the casual installer])],
- [USE_MAINTAINER_MODE=$enableval],
- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST([MAINT])dnl
-]
-)
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([config/lead-dot.m4])
-m4_include([config/libtool.m4])
-m4_include([config/ltoptions.m4])
-m4_include([config/ltsugar.m4])
-m4_include([config/ltversion.m4])
-m4_include([config/lt~obsolete.m4])
-m4_include([config/multi.m4])
-m4_include([config/override.m4])
-m4_include([config/unwind_ipinfo.m4])
-m4_include([config/warnings.m4])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/alloc.c b/fluent-bit/lib/libbacktrace-8602fda/alloc.c
deleted file mode 100644
index ff2c8677c..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/alloc.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* alloc.c -- Memory allocation without mmap.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* Allocation routines to use on systems that do not support anonymous
- mmap. This implementation just uses malloc, which means that the
- backtrace functions may not be safely invoked from a signal
- handler. */
-
-/* Allocate memory like malloc. If ERROR_CALLBACK is NULL, don't
- report an error. */
-
-void *
-backtrace_alloc (struct backtrace_state *state ATTRIBUTE_UNUSED,
- size_t size, backtrace_error_callback error_callback,
- void *data)
-{
- void *ret;
-
- ret = malloc (size);
- if (ret == NULL)
- {
- if (error_callback)
- error_callback (data, "malloc", errno);
- }
- return ret;
-}
-
-/* Free memory. */
-
-void
-backtrace_free (struct backtrace_state *state ATTRIBUTE_UNUSED,
- void *p, size_t size ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data ATTRIBUTE_UNUSED)
-{
- free (p);
-}
-
-/* Grow VEC by SIZE bytes. */
-
-void *
-backtrace_vector_grow (struct backtrace_state *state ATTRIBUTE_UNUSED,
- size_t size, backtrace_error_callback error_callback,
- void *data, struct backtrace_vector *vec)
-{
- void *ret;
-
- if (size > vec->alc)
- {
- size_t alc;
- void *base;
-
- if (vec->size == 0)
- alc = 32 * size;
- else if (vec->size >= 4096)
- alc = vec->size + 4096;
- else
- alc = 2 * vec->size;
-
- if (alc < vec->size + size)
- alc = vec->size + size;
-
- base = realloc (vec->base, alc);
- if (base == NULL)
- {
- error_callback (data, "realloc", errno);
- return NULL;
- }
-
- vec->base = base;
- vec->alc = alc - vec->size;
- }
-
- ret = (char *) vec->base + vec->size;
- vec->size += size;
- vec->alc -= size;
- return ret;
-}
-
-/* Finish the current allocation on VEC. */
-
-void *
-backtrace_vector_finish (struct backtrace_state *state,
- struct backtrace_vector *vec,
- backtrace_error_callback error_callback,
- void *data)
-{
- void *ret;
-
- /* With this allocator we call realloc in backtrace_vector_grow,
- which means we can't easily reuse the memory here. So just
- release it. */
- if (!backtrace_vector_release (state, vec, error_callback, data))
- return NULL;
- ret = vec->base;
- vec->base = NULL;
- vec->size = 0;
- vec->alc = 0;
- return ret;
-}
-
-/* Release any extra space allocated for VEC. */
-
-int
-backtrace_vector_release (struct backtrace_state *state ATTRIBUTE_UNUSED,
- struct backtrace_vector *vec,
- backtrace_error_callback error_callback,
- void *data)
-{
- vec->alc = 0;
-
- if (vec->size == 0)
- {
- /* As of C17, realloc with size 0 is marked as an obsolescent feature, use
- free instead. */
- free (vec->base);
- vec->base = NULL;
- return 1;
- }
-
- vec->base = realloc (vec->base, vec->size);
- if (vec->base == NULL)
- {
- error_callback (data, "realloc", errno);
- return 0;
- }
-
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/allocfail.c b/fluent-bit/lib/libbacktrace-8602fda/allocfail.c
deleted file mode 100644
index bd0fbb658..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/allocfail.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* allocfail.c -- Test for libbacktrace library
- Copyright (C) 2018-2021 Free Software Foundation, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "filenames.h"
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "testlib.h"
-
-extern uint64_t get_nr_allocs (void);
-extern void set_fail_at_alloc (uint64_t);
-extern int at_fail_alloc_p (void);
-
-static int test1 (void) __attribute__ ((noinline, unused));
-static int f2 (int) __attribute__ ((noinline));
-static int f3 (int, int) __attribute__ ((noinline));
-
-static unsigned callback_errors = 0;
-
-static void
-error_callback_full (void *vdata ATTRIBUTE_UNUSED,
- const char *msg ATTRIBUTE_UNUSED,
- int errnum ATTRIBUTE_UNUSED)
-{
- if (at_fail_alloc_p ())
- {
- set_fail_at_alloc (0);
- return;
- }
-
- callback_errors++;
-}
-
-static int
-callback_full (void *vdata ATTRIBUTE_UNUSED, uintptr_t pc ATTRIBUTE_UNUSED,
- const char *filename ATTRIBUTE_UNUSED,
- int lineno ATTRIBUTE_UNUSED,
- const char *function ATTRIBUTE_UNUSED)
-{
-
- return 0;
-}
-
-static int
-test1 (void)
-{
- return f2 (__LINE__) + 1;
-}
-
-static int
-f2 (int f1line)
-{
- return f3 (f1line, __LINE__) + 2;
-}
-
-static int
-f3 (int f1line ATTRIBUTE_UNUSED, int f2line ATTRIBUTE_UNUSED)
-{
- int i;
-
- i = backtrace_full (state, 0, callback_full, error_callback_full, NULL);
-
- if (i != 0)
- {
- fprintf (stderr, "test1: unexpected return value %d\n", i);
- ++failures;
- }
-
- if (callback_errors)
- ++failures;
-
- return failures;
-}
-
-/* Run all the tests. */
-
-int
-main (int argc, char **argv)
-{
- uint64_t fail_at = 0;
-
- if (argc == 2)
- {
- fail_at = atoi (argv[1]);
- set_fail_at_alloc (fail_at);
- }
-
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_full, NULL);
- if (state == NULL)
- exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
-
-#if BACKTRACE_SUPPORTED
- test1 ();
-#endif
-
- if (argc == 1)
- fprintf (stderr, "%llu\n", (long long unsigned) get_nr_allocs ());
-
- exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/allocfail.sh b/fluent-bit/lib/libbacktrace-8602fda/allocfail.sh
deleted file mode 100755
index 1f9894fd2..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/allocfail.sh
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/sh
-
-# allocfail.sh -- Test for libbacktrace library.
-# Copyright (C) 2018-2021 Free Software Foundation, Inc.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-# (1) Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-
-# (2) Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-
-# (3) The name of the author may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-set -e
-
-if [ ! -f ./allocfail ]; then
- # Hard failure.
- exit 99
-fi
-
-allocs=$(./allocfail 2>&1)
-if [ "$allocs" = "" ]; then
- # Hard failure.
- exit 99
-fi
-
-# This generates the following output:
-# ...
-# $ allocfail.sh
-# allocs: 80495
-# Status changed to 0 at 1
-# Status changed to 1 at 3
-# Status changed to 0 at 11
-# Status changed to 1 at 12
-# Status changed to 0 at 845
-# ...
-#
-# We have status 0 for an allocation failure at:
-# - 1 because backtrace_create_state handles failure robustly
-# - 2 because the fail switches backtrace_full to !can_alloc mode.
-# - 11 because failure of elf_open_debugfile_by_buildid does not generate an
-# error callback beyond the one for the allocation failure itself.
-
-echo "allocs: $allocs"
-
-step=1
-i=1
-passes=0
-prev_status=-1
-while [ $i -le $allocs ]; do
- if ./allocfail $i >/dev/null 2>&1; status=$?; then
- true
- fi
- if [ $status -gt 1 ]; then
- echo "Unallowed fail found: $i"
- # Failure.
- exit 1
- fi
-
- # The test-case would run too long if we would excercise all allocs.
- # So, run with step 1 initially, and increase the step once we have 10
- # subsequent passes, and drop back to step 1 once we encounter another
- # failure. This takes ~2.6 seconds on an i7-6600U CPU @ 2.60GHz.
- if [ $status -eq 0 ]; then
- passes=$(($passes + 1))
- if [ $passes -ge 10 ]; then
- step=$((step * 10))
- passes=0
- fi
- elif [ $status -eq 1 ]; then
- passes=0
- step=1
- fi
-
- if [ $status -ne $prev_status ]; then
- echo "Status changed to $status at $i"
- fi
- prev_status=$status
-
- i=$(($i + $step))
-done
-
-# Success.
-exit 0
diff --git a/fluent-bit/lib/libbacktrace-8602fda/atomic.c b/fluent-bit/lib/libbacktrace-8602fda/atomic.c
deleted file mode 100644
index fcac485b2..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/atomic.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* atomic.c -- Support for atomic functions if not present.
- Copyright (C) 2013-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-#include "internal.h"
-
-/* This file holds implementations of the atomic functions that are
- used if the host compiler has the sync functions but not the atomic
- functions, as is true of versions of GCC before 4.7. */
-
-#if !defined (HAVE_ATOMIC_FUNCTIONS) && defined (HAVE_SYNC_FUNCTIONS)
-
-/* Do an atomic load of a pointer. */
-
-void *
-backtrace_atomic_load_pointer (void *arg)
-{
- void **pp;
- void *p;
-
- pp = (void **) arg;
- p = *pp;
- while (!__sync_bool_compare_and_swap (pp, p, p))
- p = *pp;
- return p;
-}
-
-/* Do an atomic load of an int. */
-
-int
-backtrace_atomic_load_int (int *p)
-{
- int i;
-
- i = *p;
- while (!__sync_bool_compare_and_swap (p, i, i))
- i = *p;
- return i;
-}
-
-/* Do an atomic store of a pointer. */
-
-void
-backtrace_atomic_store_pointer (void *arg, void *p)
-{
- void **pp;
- void *old;
-
- pp = (void **) arg;
- old = *pp;
- while (!__sync_bool_compare_and_swap (pp, old, p))
- old = *pp;
-}
-
-/* Do an atomic store of a size_t value. */
-
-void
-backtrace_atomic_store_size_t (size_t *p, size_t v)
-{
- size_t old;
-
- old = *p;
- while (!__sync_bool_compare_and_swap (p, old, v))
- old = *p;
-}
-
-/* Do an atomic store of a int value. */
-
-void
-backtrace_atomic_store_int (int *p, int v)
-{
- size_t old;
-
- old = *p;
- while (!__sync_bool_compare_and_swap (p, old, v))
- old = *p;
-}
-
-#endif
diff --git a/fluent-bit/lib/libbacktrace-8602fda/backtrace-supported.h.in b/fluent-bit/lib/libbacktrace-8602fda/backtrace-supported.h.in
deleted file mode 100644
index 2035c853a..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/backtrace-supported.h.in
+++ /dev/null
@@ -1,66 +0,0 @@
-/* backtrace-supported.h.in -- Whether stack backtrace is supported.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-/* The file backtrace-supported.h.in is used by configure to generate
- the file backtrace-supported.h. The file backtrace-supported.h may
- be #include'd to see whether the backtrace library will be able to
- get a backtrace and produce symbolic information. */
-
-
-/* BACKTRACE_SUPPORTED will be #define'd as 1 if the backtrace library
- should work, 0 if it will not. Libraries may #include this to make
- other arrangements. */
-
-#define BACKTRACE_SUPPORTED @BACKTRACE_SUPPORTED@
-
-/* BACKTRACE_USES_MALLOC will be #define'd as 1 if the backtrace
- library will call malloc as it works, 0 if it will call mmap
- instead. This may be used to determine whether it is safe to call
- the backtrace functions from a signal handler. In general this
- only applies to calls like backtrace and backtrace_pcinfo. It does
- not apply to backtrace_simple, which never calls malloc. It does
- not apply to backtrace_print, which always calls fprintf and
- therefore malloc. */
-
-#define BACKTRACE_USES_MALLOC @BACKTRACE_USES_MALLOC@
-
-/* BACKTRACE_SUPPORTS_THREADS will be #define'd as 1 if the backtrace
- library is configured with threading support, 0 if not. If this is
- 0, the threaded parameter to backtrace_create_state must be passed
- as 0. */
-
-#define BACKTRACE_SUPPORTS_THREADS @BACKTRACE_SUPPORTS_THREADS@
-
-/* BACKTRACE_SUPPORTS_DATA will be #defined'd as 1 if the backtrace_syminfo
- will work for variables. It will always work for functions. */
-
-#define BACKTRACE_SUPPORTS_DATA @BACKTRACE_SUPPORTS_DATA@
diff --git a/fluent-bit/lib/libbacktrace-8602fda/backtrace.c b/fluent-bit/lib/libbacktrace-8602fda/backtrace.c
deleted file mode 100644
index 7b6290085..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/backtrace.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* backtrace.c -- Entry point for stack backtrace library.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <sys/types.h>
-
-#include "unwind.h"
-#include "backtrace.h"
-#include "internal.h"
-
-/* The main backtrace_full routine. */
-
-/* Data passed through _Unwind_Backtrace. */
-
-struct backtrace_data
-{
- /* Number of frames to skip. */
- int skip;
- /* Library state. */
- struct backtrace_state *state;
- /* Callback routine. */
- backtrace_full_callback callback;
- /* Error callback routine. */
- backtrace_error_callback error_callback;
- /* Data to pass to callback routines. */
- void *data;
- /* Value to return from backtrace_full. */
- int ret;
- /* Whether there is any memory available. */
- int can_alloc;
-};
-
-/* Unwind library callback routine. This is passed to
- _Unwind_Backtrace. */
-
-static _Unwind_Reason_Code
-unwind (struct _Unwind_Context *context, void *vdata)
-{
- struct backtrace_data *bdata = (struct backtrace_data *) vdata;
- uintptr_t pc;
- int ip_before_insn = 0;
-
-#ifdef HAVE_GETIPINFO
- pc = _Unwind_GetIPInfo (context, &ip_before_insn);
-#else
- pc = _Unwind_GetIP (context);
-#endif
-
- if (bdata->skip > 0)
- {
- --bdata->skip;
- return _URC_NO_REASON;
- }
-
- if (!ip_before_insn)
- --pc;
-
- if (!bdata->can_alloc)
- bdata->ret = bdata->callback (bdata->data, pc, NULL, 0, NULL);
- else
- bdata->ret = backtrace_pcinfo (bdata->state, pc, bdata->callback,
- bdata->error_callback, bdata->data);
- if (bdata->ret != 0)
- return _URC_END_OF_STACK;
-
- return _URC_NO_REASON;
-}
-
-/* Get a stack backtrace. */
-
-int __attribute__((noinline))
-backtrace_full (struct backtrace_state *state, int skip,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data)
-{
- struct backtrace_data bdata;
- void *p;
-
- bdata.skip = skip + 1;
- bdata.state = state;
- bdata.callback = callback;
- bdata.error_callback = error_callback;
- bdata.data = data;
- bdata.ret = 0;
-
- /* If we can't allocate any memory at all, don't try to produce
- file/line information. */
- p = backtrace_alloc (state, 4096, NULL, NULL);
- if (p == NULL)
- bdata.can_alloc = 0;
- else
- {
- backtrace_free (state, p, 4096, NULL, NULL);
- bdata.can_alloc = 1;
- }
-
- _Unwind_Backtrace (unwind, &bdata);
- return bdata.ret;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/backtrace.h b/fluent-bit/lib/libbacktrace-8602fda/backtrace.h
deleted file mode 100644
index 69cea4ca1..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/backtrace.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/* backtrace.h -- Public header file for stack backtrace library.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#ifndef BACKTRACE_H
-#define BACKTRACE_H
-
-#include <stddef.h>
-#include <stdint.h>
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The backtrace state. This struct is intentionally not defined in
- the public interface. */
-
-struct backtrace_state;
-
-/* The type of the error callback argument to backtrace functions.
- This function, if not NULL, will be called for certain error cases.
- The DATA argument is passed to the function that calls this one.
- The MSG argument is an error message. The ERRNUM argument, if
- greater than 0, holds an errno value. The MSG buffer may become
- invalid after this function returns.
-
- As a special case, the ERRNUM argument will be passed as -1 if no
- debug info can be found for the executable, or if the debug info
- exists but has an unsupported version, but the function requires
- debug info (e.g., backtrace_full, backtrace_pcinfo). The MSG in
- this case will be something along the lines of "no debug info".
- Similarly, ERRNUM will be passed as -1 if there is no symbol table,
- but the function requires a symbol table (e.g., backtrace_syminfo).
- This may be used as a signal that some other approach should be
- tried. */
-
-typedef void (*backtrace_error_callback) (void *data, const char *msg,
- int errnum);
-
-/* Create state information for the backtrace routines. This must be
- called before any of the other routines, and its return value must
- be passed to all of the other routines. FILENAME is the path name
- of the executable file; if it is NULL the library will try
- system-specific path names. If not NULL, FILENAME must point to a
- permanent buffer. If THREADED is non-zero the state may be
- accessed by multiple threads simultaneously, and the library will
- use appropriate atomic operations. If THREADED is zero the state
- may only be accessed by one thread at a time. This returns a state
- pointer on success, NULL on error. If an error occurs, this will
- call the ERROR_CALLBACK routine.
-
- Calling this function allocates resources that cannot be freed.
- There is no backtrace_free_state function. The state is used to
- cache information that is expensive to recompute. Programs are
- expected to call this function at most once and to save the return
- value for all later calls to backtrace functions. */
-
-extern struct backtrace_state *backtrace_create_state (
- const char *filename, int threaded,
- backtrace_error_callback error_callback, void *data);
-
-/* The type of the callback argument to the backtrace_full function.
- DATA is the argument passed to backtrace_full. PC is the program
- counter. FILENAME is the name of the file containing PC, or NULL
- if not available. LINENO is the line number in FILENAME containing
- PC, or 0 if not available. FUNCTION is the name of the function
- containing PC, or NULL if not available. This should return 0 to
- continuing tracing. The FILENAME and FUNCTION buffers may become
- invalid after this function returns. */
-
-typedef int (*backtrace_full_callback) (void *data, uintptr_t pc,
- const char *filename, int lineno,
- const char *function);
-
-/* Get a full stack backtrace. SKIP is the number of frames to skip;
- passing 0 will start the trace with the function calling
- backtrace_full. DATA is passed to the callback routine. If any
- call to CALLBACK returns a non-zero value, the stack backtrace
- stops, and backtrace returns that value; this may be used to limit
- the number of stack frames desired. If all calls to CALLBACK
- return 0, backtrace returns 0. The backtrace_full function will
- make at least one call to either CALLBACK or ERROR_CALLBACK. This
- function requires debug info for the executable. */
-
-extern int backtrace_full (struct backtrace_state *state, int skip,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback,
- void *data);
-
-/* The type of the callback argument to the backtrace_simple function.
- DATA is the argument passed to simple_backtrace. PC is the program
- counter. This should return 0 to continue tracing. */
-
-typedef int (*backtrace_simple_callback) (void *data, uintptr_t pc);
-
-/* Get a simple backtrace. SKIP is the number of frames to skip, as
- in backtrace. DATA is passed to the callback routine. If any call
- to CALLBACK returns a non-zero value, the stack backtrace stops,
- and backtrace_simple returns that value. Otherwise
- backtrace_simple returns 0. The backtrace_simple function will
- make at least one call to either CALLBACK or ERROR_CALLBACK. This
- function does not require any debug info for the executable. */
-
-extern int backtrace_simple (struct backtrace_state *state, int skip,
- backtrace_simple_callback callback,
- backtrace_error_callback error_callback,
- void *data);
-
-/* Print the current backtrace in a user readable format to a FILE.
- SKIP is the number of frames to skip, as in backtrace_full. Any
- error messages are printed to stderr. This function requires debug
- info for the executable. */
-
-extern void backtrace_print (struct backtrace_state *state, int skip, FILE *);
-
-/* Given PC, a program counter in the current program, call the
- callback function with filename, line number, and function name
- information. This will normally call the callback function exactly
- once. However, if the PC happens to describe an inlined call, and
- the debugging information contains the necessary information, then
- this may call the callback function multiple times. This will make
- at least one call to either CALLBACK or ERROR_CALLBACK. This
- returns the first non-zero value returned by CALLBACK, or 0. */
-
-extern int backtrace_pcinfo (struct backtrace_state *state, uintptr_t pc,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback,
- void *data);
-
-/* The type of the callback argument to backtrace_syminfo. DATA and
- PC are the arguments passed to backtrace_syminfo. SYMNAME is the
- name of the symbol for the corresponding code. SYMVAL is the
- value and SYMSIZE is the size of the symbol. SYMNAME will be NULL
- if no error occurred but the symbol could not be found. */
-
-typedef void (*backtrace_syminfo_callback) (void *data, uintptr_t pc,
- const char *symname,
- uintptr_t symval,
- uintptr_t symsize);
-
-/* Given ADDR, an address or program counter in the current program,
- call the callback information with the symbol name and value
- describing the function or variable in which ADDR may be found.
- This will call either CALLBACK or ERROR_CALLBACK exactly once.
- This returns 1 on success, 0 on failure. This function requires
- the symbol table but does not require the debug info. Note that if
- the symbol table is present but ADDR could not be found in the
- table, CALLBACK will be called with a NULL SYMNAME argument.
- Returns 1 on success, 0 on error. */
-
-extern int backtrace_syminfo (struct backtrace_state *state, uintptr_t addr,
- backtrace_syminfo_callback callback,
- backtrace_error_callback error_callback,
- void *data);
-
-#ifdef __cplusplus
-} /* End extern "C". */
-#endif
-
-#endif
diff --git a/fluent-bit/lib/libbacktrace-8602fda/btest.c b/fluent-bit/lib/libbacktrace-8602fda/btest.c
deleted file mode 100644
index 9f9c03bab..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/btest.c
+++ /dev/null
@@ -1,501 +0,0 @@
-/* btest.c -- Test for libbacktrace library
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-/* This program tests the externally visible interfaces of the
- libbacktrace library. */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "filenames.h"
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "testlib.h"
-
-/* Test the backtrace function with non-inlined functions. */
-
-static int test1 (void) __attribute__ ((noinline, noclone, unused));
-static int f2 (int) __attribute__ ((noinline, noclone));
-static int f3 (int, int) __attribute__ ((noinline, noclone));
-
-static int
-test1 (void)
-{
- /* Returning a value here and elsewhere avoids a tailcall which
- would mess up the backtrace. */
- return f2 (__LINE__) + 1;
-}
-
-static int
-f2 (int f1line)
-{
- return f3 (f1line, __LINE__) + 2;
-}
-
-static int
-f3 (int f1line, int f2line)
-{
- struct info all[20];
- struct bdata data;
- int f3line;
- int i;
-
- data.all = &all[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- f3line = __LINE__ + 1;
- i = backtrace_full (state, 0, callback_one, error_callback_one, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test1: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- if (data.index < 3)
- {
- fprintf (stderr,
- "test1: not enough frames; got %zu, expected at least 3\n",
- data.index);
- data.failed = 1;
- }
-
- check ("test1", 0, all, f3line, "f3", "btest.c", &data.failed);
- check ("test1", 1, all, f2line, "f2", "btest.c", &data.failed);
- check ("test1", 2, all, f1line, "test1", "btest.c", &data.failed);
-
- printf ("%s: backtrace_full noinline\n", data.failed ? "FAIL" : "PASS");
-
- if (data.failed)
- ++failures;
-
- return failures;
-}
-
-/* Test the backtrace function with inlined functions. */
-
-static inline int test2 (void) __attribute__ ((always_inline, unused));
-static inline int f12 (int) __attribute__ ((always_inline));
-static inline int f13 (int, int) __attribute__ ((always_inline));
-
-static inline int
-test2 (void)
-{
- return f12 (__LINE__) + 1;
-}
-
-static inline int
-f12 (int f1line)
-{
- return f13 (f1line, __LINE__) + 2;
-}
-
-static inline int
-f13 (int f1line, int f2line)
-{
- struct info all[20];
- struct bdata data;
- int f3line;
- int i;
-
- data.all = &all[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- f3line = __LINE__ + 1;
- i = backtrace_full (state, 0, callback_one, error_callback_one, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test2: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- check ("test2", 0, all, f3line, "f13", "btest.c", &data.failed);
- check ("test2", 1, all, f2line, "f12", "btest.c", &data.failed);
- check ("test2", 2, all, f1line, "test2", "btest.c", &data.failed);
-
- printf ("%s: backtrace_full inline\n", data.failed ? "FAIL" : "PASS");
-
- if (data.failed)
- ++failures;
-
- return failures;
-}
-
-/* Test the backtrace_simple function with non-inlined functions. */
-
-static int test3 (void) __attribute__ ((noinline, noclone, unused));
-static int f22 (int) __attribute__ ((noinline, noclone));
-static int f23 (int, int) __attribute__ ((noinline, noclone));
-
-static int
-test3 (void)
-{
- return f22 (__LINE__) + 1;
-}
-
-static int
-f22 (int f1line)
-{
- return f23 (f1line, __LINE__) + 2;
-}
-
-static int
-f23 (int f1line, int f2line)
-{
- uintptr_t addrs[20];
- struct sdata data;
- int f3line;
- int i;
-
- data.addrs = &addrs[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- f3line = __LINE__ + 1;
- i = backtrace_simple (state, 0, callback_two, error_callback_two, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test3: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- if (!data.failed)
- {
- struct info all[20];
- struct bdata bdata;
- int j;
-
- bdata.all = &all[0];
- bdata.index = 0;
- bdata.max = 20;
- bdata.failed = 0;
-
- for (j = 0; j < 3; ++j)
- {
- i = backtrace_pcinfo (state, addrs[j], callback_one,
- error_callback_one, &bdata);
- if (i != 0)
- {
- fprintf (stderr,
- ("test3: unexpected return value "
- "from backtrace_pcinfo %d\n"),
- i);
- bdata.failed = 1;
- }
- if (!bdata.failed && bdata.index != (size_t) (j + 1))
- {
- fprintf (stderr,
- ("wrong number of calls from backtrace_pcinfo "
- "got %u expected %d\n"),
- (unsigned int) bdata.index, j + 1);
- bdata.failed = 1;
- }
- }
-
- check ("test3", 0, all, f3line, "f23", "btest.c", &bdata.failed);
- check ("test3", 1, all, f2line, "f22", "btest.c", &bdata.failed);
- check ("test3", 2, all, f1line, "test3", "btest.c", &bdata.failed);
-
- if (bdata.failed)
- data.failed = 1;
-
- for (j = 0; j < 3; ++j)
- {
- struct symdata symdata;
-
- symdata.name = NULL;
- symdata.val = 0;
- symdata.size = 0;
- symdata.failed = 0;
-
- i = backtrace_syminfo (state, addrs[j], callback_three,
- error_callback_three, &symdata);
- if (i == 0)
- {
- fprintf (stderr,
- ("test3: [%d]: unexpected return value "
- "from backtrace_syminfo %d\n"),
- j, i);
- symdata.failed = 1;
- }
-
- if (!symdata.failed)
- {
- const char *expected;
-
- switch (j)
- {
- case 0:
- expected = "f23";
- break;
- case 1:
- expected = "f22";
- break;
- case 2:
- expected = "test3";
- break;
- default:
- assert (0);
- }
-
- if (symdata.name == NULL)
- {
- fprintf (stderr, "test3: [%d]: NULL syminfo name\n", j);
- symdata.failed = 1;
- }
- /* Use strncmp, not strcmp, because GCC might create a
- clone. */
- else if (strncmp (symdata.name, expected, strlen (expected))
- != 0)
- {
- fprintf (stderr,
- ("test3: [%d]: unexpected syminfo name "
- "got %s expected %s\n"),
- j, symdata.name, expected);
- symdata.failed = 1;
- }
- }
-
- if (symdata.failed)
- data.failed = 1;
- }
- }
-
- printf ("%s: backtrace_simple noinline\n", data.failed ? "FAIL" : "PASS");
-
- if (data.failed)
- ++failures;
-
- return failures;
-}
-
-/* Test the backtrace_simple function with inlined functions. */
-
-static inline int test4 (void) __attribute__ ((always_inline, unused));
-static inline int f32 (int) __attribute__ ((always_inline));
-static inline int f33 (int, int) __attribute__ ((always_inline));
-
-static inline int
-test4 (void)
-{
- return f32 (__LINE__) + 1;
-}
-
-static inline int
-f32 (int f1line)
-{
- return f33 (f1line, __LINE__) + 2;
-}
-
-static inline int
-f33 (int f1line, int f2line)
-{
- uintptr_t addrs[20];
- struct sdata data;
- int f3line;
- int i;
-
- data.addrs = &addrs[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- f3line = __LINE__ + 1;
- i = backtrace_simple (state, 0, callback_two, error_callback_two, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test3: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- if (!data.failed)
- {
- struct info all[20];
- struct bdata bdata;
-
- bdata.all = &all[0];
- bdata.index = 0;
- bdata.max = 20;
- bdata.failed = 0;
-
- i = backtrace_pcinfo (state, addrs[0], callback_one, error_callback_one,
- &bdata);
- if (i != 0)
- {
- fprintf (stderr,
- ("test4: unexpected return value "
- "from backtrace_pcinfo %d\n"),
- i);
- bdata.failed = 1;
- }
-
- check ("test4", 0, all, f3line, "f33", "btest.c", &bdata.failed);
- check ("test4", 1, all, f2line, "f32", "btest.c", &bdata.failed);
- check ("test4", 2, all, f1line, "test4", "btest.c", &bdata.failed);
-
- if (bdata.failed)
- data.failed = 1;
- }
-
- printf ("%s: backtrace_simple inline\n", data.failed ? "FAIL" : "PASS");
-
- if (data.failed)
- ++failures;
-
- return failures;
-}
-
-static int test5 (void) __attribute__ ((unused));
-
-int global = 1;
-
-static int
-test5 (void)
-{
- struct symdata symdata;
- int i;
- uintptr_t addr = (uintptr_t) &global;
-
- if (sizeof (global) > 1)
- addr += 1;
-
- symdata.name = NULL;
- symdata.val = 0;
- symdata.size = 0;
- symdata.failed = 0;
-
- i = backtrace_syminfo (state, addr, callback_three,
- error_callback_three, &symdata);
- if (i == 0)
- {
- fprintf (stderr,
- "test5: unexpected return value from backtrace_syminfo %d\n",
- i);
- symdata.failed = 1;
- }
-
- if (!symdata.failed)
- {
- if (symdata.name == NULL)
- {
- fprintf (stderr, "test5: NULL syminfo name\n");
- symdata.failed = 1;
- }
- else if (!(strncmp (symdata.name, "global", 6) == 0
- && (symdata.name[6] == '\0'|| symdata.name[6] == '.')))
- {
- fprintf (stderr,
- "test5: unexpected syminfo name got %s expected %s\n",
- symdata.name, "global");
- symdata.failed = 1;
- }
- else if (symdata.val != (uintptr_t) &global)
- {
- fprintf (stderr,
- "test5: unexpected syminfo value got %lx expected %lx\n",
- (unsigned long) symdata.val,
- (unsigned long) (uintptr_t) &global);
- symdata.failed = 1;
- }
- else if (symdata.size != sizeof (global))
- {
- fprintf (stderr,
- "test5: unexpected syminfo size got %lx expected %lx\n",
- (unsigned long) symdata.size,
- (unsigned long) sizeof (global));
- symdata.failed = 1;
- }
- }
-
- printf ("%s: backtrace_syminfo variable\n",
- symdata.failed ? "FAIL" : "PASS");
-
- if (symdata.failed)
- ++failures;
-
- return failures;
-}
-
-/* Check that are no files left open. */
-
-static void
-check_open_files (void)
-{
- int i;
-
- for (i = 3; i < 10; i++)
- {
- if (close (i) == 0)
- {
- fprintf (stderr,
- "ERROR: descriptor %d still open after tests complete\n",
- i);
- ++failures;
- }
- }
-}
-
-/* Run all the tests. */
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
-#if BACKTRACE_SUPPORTED
- test1 ();
- test2 ();
- test3 ();
- test4 ();
-#if BACKTRACE_SUPPORTS_DATA
- test5 ();
-#endif
-#endif
-
- check_open_files ();
-
- exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/compile b/fluent-bit/lib/libbacktrace-8602fda/compile
deleted file mode 100755
index 2ab71e4ea..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/compile
+++ /dev/null
@@ -1,348 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2016-01-11.22; # UTC
-
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- if test -f "$dir/lib$lib.a"; then
- found=yes
- lib=$dir/lib$lib.a
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
- icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config.guess b/fluent-bit/lib/libbacktrace-8602fda/config.guess
deleted file mode 100755
index 1972fda8e..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config.guess
+++ /dev/null
@@ -1,1700 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright 1992-2021 Free Software Foundation, Inc.
-
-timestamp='2021-01-25'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that
-# program. This Exception is an additional permission under section 7
-# of the GNU General Public License, version 3 ("GPLv3").
-#
-# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
-#
-# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
-#
-# Please send patches to <config-patches@gnu.org>.
-
-
-me=$(echo "$0" | sed -e 's,.*/,,')
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Options:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright 1992-2021 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-tmp=
-# shellcheck disable=SC2172
-trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
-
-set_cc_for_build() {
- # prevent multiple calls if $tmp is already set
- test "$tmp" && return 0
- : "${TMPDIR=/tmp}"
- # shellcheck disable=SC2039
- { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
- dummy=$tmp/dummy
- case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
- ,,) echo "int x;" > "$dummy.c"
- for driver in cc gcc c89 c99 ; do
- if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$driver"
- break
- fi
- done
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
- esac
-}
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if test -f /.attbin/uname ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown
-UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown
-UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown
-UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown
-
-case "$UNAME_SYSTEM" in
-Linux|GNU|GNU/*)
- LIBC=unknown
-
- set_cc_for_build
- cat <<-EOF > "$dummy.c"
- #include <features.h>
- #if defined(__UCLIBC__)
- LIBC=uclibc
- #elif defined(__dietlibc__)
- LIBC=dietlibc
- #elif defined(__GLIBC__)
- LIBC=gnu
- #else
- #include <stdarg.h>
- /* First heuristic to detect musl libc. */
- #ifdef __DEFINED_va_list
- LIBC=musl
- #endif
- #endif
- EOF
- eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')"
-
- # Second heuristic to detect musl libc.
- if [ "$LIBC" = unknown ] &&
- command -v ldd >/dev/null &&
- ldd --version 2>&1 | grep -q ^musl; then
- LIBC=musl
- fi
-
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- if [ "$LIBC" = unknown ]; then
- LIBC=gnu
- fi
- ;;
-esac
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \
- /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
- /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
- echo unknown))
- case "$UNAME_MACHINE_ARCH" in
- aarch64eb) machine=aarch64_be-unknown ;;
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- sh5el) machine=sh5le-unknown ;;
- earmv*)
- arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,')
- endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p')
- machine="${arch}${endian}"-unknown
- ;;
- *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently (or will in the future) and ABI.
- case "$UNAME_MACHINE_ARCH" in
- earm*)
- os=netbsdelf
- ;;
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ELF__
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # Determine ABI tags.
- case "$UNAME_MACHINE_ARCH" in
- earm*)
- expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr")
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "$UNAME_VERSION" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2)
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "$machine-${os}${release}${abi-}"
- exit ;;
- *:Bitrig:*:*)
- UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//')
- echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//')
- echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
- exit ;;
- *:LibertyBSD:*:*)
- UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//')
- echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
- exit ;;
- *:MidnightBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
- exit ;;
- *:ekkoBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
- exit ;;
- *:SolidBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
- exit ;;
- *:OS108:*:*)
- echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
- exit ;;
- macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
- *:MirBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
- *:Sortix:*:*)
- echo "$UNAME_MACHINE"-unknown-sortix
- exit ;;
- *:Twizzler:*:*)
- echo "$UNAME_MACHINE"-unknown-twizzler
- exit ;;
- *:Redox:*:*)
- echo "$UNAME_MACHINE"-unknown-redox
- exit ;;
- mips:OSF1:*.*)
- echo mips-dec-osf1
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}')
- ;;
- *5.*)
- UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}')
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1)
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE=alpha ;;
- "EV4.5 (21064)")
- UNAME_MACHINE=alpha ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE=alpha ;;
- "EV5 (21164)")
- UNAME_MACHINE=alphaev5 ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE=alphaev56 ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE=alphapca56 ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE=alphapca57 ;;
- "EV6 (21264)")
- UNAME_MACHINE=alphaev6 ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE=alphaev67 ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE=alphaev68 ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE=alphaev68 ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE=alphaev68 ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE=alphaev69 ;;
- "EV7 (21364)")
- UNAME_MACHINE=alphaev7 ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE=alphaev79 ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)"
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix"$UNAME_RELEASE"
- exit ;;
- arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "$( (/bin/universe) 2>/dev/null)" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case $(/usr/bin/uname -p) in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- s390x:SunOS:*:*)
- echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
- exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
- exit ;;
- i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux"$UNAME_RELEASE"
- exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- set_cc_for_build
- SUN_ARCH=i386
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if test "$CC_FOR_BUILD" != no_compiler_found; then
- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH=x86_64
- fi
- fi
- echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
- exit ;;
- sun4*:SunOS:*:*)
- case "$(/usr/bin/arch -k)" in
- Series*|S4*)
- UNAME_RELEASE=$(uname -v)
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')"
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos"$UNAME_RELEASE"
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null)
- test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
- case "$(/bin/arch)" in
- sun3)
- echo m68k-sun-sunos"$UNAME_RELEASE"
- ;;
- sun4)
- echo sparc-sun-sunos"$UNAME_RELEASE"
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos"$UNAME_RELEASE"
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint"$UNAME_RELEASE"
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint"$UNAME_RELEASE"
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint"$UNAME_RELEASE"
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten"$UNAME_RELEASE"
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten"$UNAME_RELEASE"
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix"$UNAME_RELEASE"
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix"$UNAME_RELEASE"
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix"$UNAME_RELEASE"
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
- dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') &&
- SYSTEM_NAME=$("$dummy" "$dummyarg") &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos"$UNAME_RELEASE"
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=$(/usr/bin/uname -p)
- if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
- then
- if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
- test "$TARGET_BINARY_INTERFACE"x = x
- then
- echo m88k-dg-dgux"$UNAME_RELEASE"
- else
- echo m88k-dg-dguxbcs"$UNAME_RELEASE"
- fi
- else
- echo i586-dg-dgux"$UNAME_RELEASE"
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')"
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if test -x /usr/bin/oslevel ; then
- IBM_REV=$(/usr/bin/oslevel)
- else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
- fi
- echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy")
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[4567])
- IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }')
- if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if test -x /usr/bin/lslpp ; then
- IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc |
- awk -F: '{ print $3 }' | sed s/[0-9]*$/0/)
- else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
- fi
- echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
- case "$UNAME_MACHINE" in
- 9000/31?) HP_ARCH=m68000 ;;
- 9000/[34]??) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if test -x /usr/bin/getconf; then
- sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null)
- sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null)
- case "$sc_cpu_version" in
- 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
- 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "$sc_kernel_bits" in
- 32) HP_ARCH=hppa2.0n ;;
- 64) HP_ARCH=hppa2.0w ;;
- '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if test "$HP_ARCH" = ""; then
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy")
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if test "$HP_ARCH" = hppa2.0w
- then
- set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
- grep -q __LP64__
- then
- HP_ARCH=hppa2.0w
- else
- HP_ARCH=hppa64
- fi
- fi
- echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
- echo ia64-hp-hpux"$HPUX_REV"
- exit ;;
- 3050*:HI-UX:*:*)
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if test -x /usr/sbin/sysversion ; then
- echo "$UNAME_MACHINE"-unknown-osf1mk
- else
- echo "$UNAME_MACHINE"-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)
- FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
- FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/')
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
- FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/')
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
- *:BSD/OS:*:*)
- echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
- arm:FreeBSD:*:*)
- UNAME_PROCESSOR=$(uname -p)
- set_cc_for_build
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi
- else
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf
- fi
- exit ;;
- *:FreeBSD:*:*)
- UNAME_PROCESSOR=$(/usr/bin/uname -p)
- case "$UNAME_PROCESSOR" in
- amd64)
- UNAME_PROCESSOR=x86_64 ;;
- i386)
- UNAME_PROCESSOR=i586 ;;
- esac
- echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
- exit ;;
- i*:CYGWIN*:*)
- echo "$UNAME_MACHINE"-pc-cygwin
- exit ;;
- *:MINGW64*:*)
- echo "$UNAME_MACHINE"-pc-mingw64
- exit ;;
- *:MINGW*:*)
- echo "$UNAME_MACHINE"-pc-mingw32
- exit ;;
- *:MSYS*:*)
- echo "$UNAME_MACHINE"-pc-msys
- exit ;;
- i*:PW*:*)
- echo "$UNAME_MACHINE"-pc-pw32
- exit ;;
- *:Interix*:*)
- case "$UNAME_MACHINE" in
- x86)
- echo i586-pc-interix"$UNAME_RELEASE"
- exit ;;
- authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix"$UNAME_RELEASE"
- exit ;;
- IA64)
- echo ia64-unknown-interix"$UNAME_RELEASE"
- exit ;;
- esac ;;
- i*:UWIN*:*)
- echo "$UNAME_MACHINE"-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-pc-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')"
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC"
- exit ;;
- *:Minix:*:*)
- echo "$UNAME_MACHINE"-unknown-minix
- exit ;;
- aarch64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- aarch64_be:Linux:*:*)
- UNAME_MACHINE=aarch64_be
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- alpha:Linux:*:*)
- case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- arm*:Linux:*:*)
- set_cc_for_build
- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_EABI__
- then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- else
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
- else
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
- fi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- cris:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
- crisv32:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
- e2k:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- frv:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- hexagon:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- i*86:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
- ia64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- k1om:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- m32r*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- m68*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- mips:Linux:*:* | mips64:Linux:*:*)
- set_cc_for_build
- IS_GLIBC=0
- test x"${LIBC}" = xgnu && IS_GLIBC=1
- sed 's/^ //' << EOF > "$dummy.c"
- #undef CPU
- #undef mips
- #undef mipsel
- #undef mips64
- #undef mips64el
- #if ${IS_GLIBC} && defined(_ABI64)
- LIBCABI=gnuabi64
- #else
- #if ${IS_GLIBC} && defined(_ABIN32)
- LIBCABI=gnuabin32
- #else
- LIBCABI=${LIBC}
- #endif
- #endif
-
- #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
- CPU=mipsisa64r6
- #else
- #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
- CPU=mipsisa32r6
- #else
- #if defined(__mips64)
- CPU=mips64
- #else
- CPU=mips
- #endif
- #endif
- #endif
-
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- MIPS_ENDIAN=el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- MIPS_ENDIAN=
- #else
- MIPS_ENDIAN=
- #endif
- #endif
-EOF
- eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')"
- test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
- ;;
- mips64el:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- openrisc*:Linux:*:*)
- echo or1k-unknown-linux-"$LIBC"
- exit ;;
- or32:Linux:*:* | or1k*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- padre:Linux:*:*)
- echo sparc-unknown-linux-"$LIBC"
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-"$LIBC"
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in
- PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
- PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
- *) echo hppa-unknown-linux-"$LIBC" ;;
- esac
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-"$LIBC"
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-"$LIBC"
- exit ;;
- ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-"$LIBC"
- exit ;;
- ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-"$LIBC"
- exit ;;
- riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
- exit ;;
- sh64*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- sh*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- tile*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- vax:Linux:*:*)
- echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
- exit ;;
- x86_64:Linux:*:*)
- set_cc_for_build
- LIBCABI=$LIBC
- if test "$CC_FOR_BUILD" != no_compiler_found; then
- if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_X32 >/dev/null
- then
- LIBCABI="$LIBC"x32
- fi
- fi
- echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
- exit ;;
- xtensa*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo "$UNAME_MACHINE"-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo "$UNAME_MACHINE"-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo "$UNAME_MACHINE"-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo "$UNAME_MACHINE"-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- i*86:*DOS:*:*)
- echo "$UNAME_MACHINE"-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:*)
- UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//')
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
- else
- echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case $(/bin/uname -X | grep "^Machine") in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=$(sed -n 's/.*Version //p' </usr/options/cb.name)
- echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //'))
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
- else
- echo "$UNAME_MACHINE"-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
- # Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configure will decide that
- # this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- NCR*:*:4.2:* | MPRAS*:*:4.2:*)
- OS_REL='.3'
- test -r /etc/.relid \
- && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv"$UNAME_RELEASE"
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=$( (uname -p) 2>/dev/null)
- echo "$UNAME_MACHINE"-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo "$UNAME_MACHINE"-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux"$UNAME_RELEASE"
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if test -d /usr/nec; then
- echo mips-nec-sysv"$UNAME_RELEASE"
- else
- echo mips-unknown-sysv"$UNAME_RELEASE"
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux"$UNAME_RELEASE"
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
- *:Rhapsody:*:*)
- echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
- arm64:Darwin:*:*)
- echo aarch64-apple-darwin"$UNAME_RELEASE"
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=$(uname -p)
- case $UNAME_PROCESSOR in
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- if command -v xcode-select > /dev/null 2> /dev/null && \
- ! xcode-select --print-path > /dev/null 2> /dev/null ; then
- # Avoid executing cc if there is no toolchain installed as
- # cc will be a stub that puts up a graphical alert
- # prompting the user to install developer tools.
- CC_FOR_BUILD=no_compiler_found
- else
- set_cc_for_build
- fi
- if test "$CC_FOR_BUILD" != no_compiler_found; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
- fi
- elif test "$UNAME_PROCESSOR" = i386 ; then
- # uname -m returns i386 or x86_64
- UNAME_PROCESSOR=$UNAME_MACHINE
- fi
- echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=$(uname -p)
- if test "$UNAME_PROCESSOR" = x86; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSV-*:NONSTOP_KERNEL:*:*)
- echo nsv-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- # shellcheck disable=SC2154
- if test "$cputype" = 386; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo "$UNAME_MACHINE"-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux"$UNAME_RELEASE"
- exit ;;
- *:DragonFly:*:*)
- echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=$( (uname -p) 2>/dev/null)
- case "$UNAME_MACHINE" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')"
- exit ;;
- i*86:rdos:*:*)
- echo "$UNAME_MACHINE"-pc-rdos
- exit ;;
- *:AROS:*:*)
- echo "$UNAME_MACHINE"-unknown-aros
- exit ;;
- x86_64:VMkernel:*:*)
- echo "$UNAME_MACHINE"-unknown-esx
- exit ;;
- amd64:Isilon\ OneFS:*:*)
- echo x86_64-unknown-onefs
- exit ;;
- *:Unleashed:*:*)
- echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
- exit ;;
-esac
-
-# No uname command or uname output not recognized.
-set_cc_for_build
-cat > "$dummy.c" <<EOF
-#ifdef _SEQUENT_
-#include <sys/types.h>
-#include <sys/utsname.h>
-#endif
-#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
-#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
-#include <signal.h>
-#if defined(_SIZE_T_) || defined(SIGLOST)
-#include <sys/utsname.h>
-#endif
-#endif
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null);
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
-#include <sys/param.h>
-#if defined (BSD)
-#if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-#else
-#if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#else
- printf ("vax-dec-bsd\n"); exit (0);
-#endif
-#endif
-#else
- printf ("vax-dec-bsd\n"); exit (0);
-#endif
-#else
-#if defined(_SIZE_T_) || defined(SIGLOST)
- struct utsname un;
- uname (&un);
- printf ("vax-dec-ultrix%s\n", un.release); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-#endif
-#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
-#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
-#if defined(_SIZE_T_) || defined(SIGLOST)
- struct utsname *un;
- uname (&un);
- printf ("mips-dec-ultrix%s\n", un.release); exit (0);
-#else
- printf ("mips-dec-ultrix\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
-
-echo "$0: unable to guess system type" >&2
-
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
- mips:Linux | mips64:Linux)
- # If we got here on MIPS GNU/Linux, output extra information.
- cat >&2 <<EOF
-
-NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
-the system type. Please install a C compiler and try again.
-EOF
- ;;
-esac
-
-cat >&2 <<EOF
-
-This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite *all*
-copies of config.guess and config.sub with the latest versions from:
-
- https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
-and
- https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
-EOF
-
-year=$(echo $timestamp | sed 's,-.*,,')
-# shellcheck disable=SC2003
-if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then
- cat >&2 <<EOF
-
-If $0 has already been updated, send the following data and any
-information you think might be pertinent to config-patches@gnu.org to
-provide the necessary information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = $( (uname -m) 2>/dev/null || echo unknown)
-uname -r = $( (uname -r) 2>/dev/null || echo unknown)
-uname -s = $( (uname -s) 2>/dev/null || echo unknown)
-uname -v = $( (uname -v) 2>/dev/null || echo unknown)
-
-/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null)
-/bin/uname -X = $( (/bin/uname -X) 2>/dev/null)
-
-hostinfo = $( (hostinfo) 2>/dev/null)
-/bin/universe = $( (/bin/universe) 2>/dev/null)
-/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null)
-/bin/arch = $( (/bin/arch) 2>/dev/null)
-/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null)
-/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null)
-
-UNAME_MACHINE = "$UNAME_MACHINE"
-UNAME_RELEASE = "$UNAME_RELEASE"
-UNAME_SYSTEM = "$UNAME_SYSTEM"
-UNAME_VERSION = "$UNAME_VERSION"
-EOF
-fi
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config.h.in b/fluent-bit/lib/libbacktrace-8602fda/config.h.in
deleted file mode 100644
index 0b01ddbb0..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config.h.in
+++ /dev/null
@@ -1,172 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* ELF size: 32 or 64 */
-#undef BACKTRACE_ELF_SIZE
-
-/* XCOFF size: 32 or 64 */
-#undef BACKTRACE_XCOFF_SIZE
-
-/* Define to 1 if you have the __atomic functions */
-#undef HAVE_ATOMIC_FUNCTIONS
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
-
-/* Define to 1 if you have the declaration of `getpagesize', and to 0 if you
- don't. */
-#undef HAVE_DECL_GETPAGESIZE
-
-/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
- don't. */
-#undef HAVE_DECL_STRNLEN
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define if dl_iterate_phdr is available. */
-#undef HAVE_DL_ITERATE_PHDR
-
-/* Define to 1 if you have the fcntl function */
-#undef HAVE_FCNTL
-
-/* Define if getexecname is available. */
-#undef HAVE_GETEXECNAME
-
-/* Define if _Unwind_GetIPInfo is available. */
-#undef HAVE_GETIPINFO
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have KERN_PROC and KERN_PROC_PATHNAME in <sys/sysctl.h>.
- */
-#undef HAVE_KERN_PROC
-
-/* Define to 1 if you have KERN_PROCARGS and KERN_PROC_PATHNAME in
- <sys/sysctl.h>. */
-#undef HAVE_KERN_PROC_ARGS
-
-/* Define if -llzma is available. */
-#undef HAVE_LIBLZMA
-
-/* Define to 1 if you have the <link.h> header file. */
-#undef HAVE_LINK_H
-
-/* Define if AIX loadquery is available. */
-#undef HAVE_LOADQUERY
-
-/* Define to 1 if you have the `lstat' function. */
-#undef HAVE_LSTAT
-
-/* Define to 1 if you have the <mach-o/dyld.h> header file. */
-#undef HAVE_MACH_O_DYLD_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `readlink' function. */
-#undef HAVE_READLINK
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the __sync functions */
-#undef HAVE_SYNC_FUNCTIONS
-
-/* Define to 1 if you have the <sys/ldr.h> header file. */
-#undef HAVE_SYS_LDR_H
-
-/* Define to 1 if you have the <sys/link.h> header file. */
-#undef HAVE_SYS_LINK_H
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#undef HAVE_SYS_MMAN_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if -lz is available. */
-#undef HAVE_ZLIB
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config.sub b/fluent-bit/lib/libbacktrace-8602fda/config.sub
deleted file mode 100755
index 38f3d037a..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config.sub
+++ /dev/null
@@ -1,1885 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright 1992-2021 Free Software Foundation, Inc.
-
-# shellcheck disable=SC2006,SC2268 # see below for rationale
-
-timestamp='2021-10-27'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that
-# program. This Exception is an additional permission under section 7
-# of the GNU General Public License, version 3 ("GPLv3").
-
-
-# Please send patches to <config-patches@gnu.org>.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-# The "shellcheck disable" line above the timestamp inhibits complaints
-# about features and limitations of the classic Bourne shell that were
-# superseded or lifted in POSIX. However, this script identifies a wide
-# variety of pre-POSIX systems that do not have POSIX shells at all, and
-# even some reasonably current systems (Solaris 10 as case-in-point) still
-# have a pre-POSIX /bin/sh.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
-
-Canonicalize a configuration name.
-
-Options:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright 1992-2021 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo "$1"
- exit ;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Split fields of configuration type
-# shellcheck disable=SC2162
-saved_IFS=$IFS
-IFS="-" read field1 field2 field3 field4 <<EOF
-$1
-EOF
-IFS=$saved_IFS
-
-# Separate into logical components for further validation
-case $1 in
- *-*-*-*-*)
- echo Invalid configuration \`"$1"\': more than four components >&2
- exit 1
- ;;
- *-*-*-*)
- basic_machine=$field1-$field2
- basic_os=$field3-$field4
- ;;
- *-*-*)
- # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
- # parts
- maybe_os=$field2-$field3
- case $maybe_os in
- nto-qnx* | linux-* | uclinux-uclibc* \
- | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
- | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
- | storm-chaos* | os2-emx* | rtmk-nova*)
- basic_machine=$field1
- basic_os=$maybe_os
- ;;
- android-linux)
- basic_machine=$field1-unknown
- basic_os=linux-android
- ;;
- *)
- basic_machine=$field1-$field2
- basic_os=$field3
- ;;
- esac
- ;;
- *-*)
- # A lone config we happen to match not fitting any pattern
- case $field1-$field2 in
- decstation-3100)
- basic_machine=mips-dec
- basic_os=
- ;;
- *-*)
- # Second component is usually, but not always the OS
- case $field2 in
- # Prevent following clause from handling this valid os
- sun*os*)
- basic_machine=$field1
- basic_os=$field2
- ;;
- zephyr*)
- basic_machine=$field1-unknown
- basic_os=$field2
- ;;
- # Manufacturers
- dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
- | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
- | unicom* | ibm* | next | hp | isi* | apollo | altos* \
- | convergent* | ncr* | news | 32* | 3600* | 3100* \
- | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
- | ultra | tti* | harris | dolphin | highlevel | gould \
- | cbm | ns | masscomp | apple | axis | knuth | cray \
- | microblaze* | sim | cisco \
- | oki | wec | wrs | winbond)
- basic_machine=$field1-$field2
- basic_os=
- ;;
- *)
- basic_machine=$field1
- basic_os=$field2
- ;;
- esac
- ;;
- esac
- ;;
- *)
- # Convert single-component short-hands not valid as part of
- # multi-component configurations.
- case $field1 in
- 386bsd)
- basic_machine=i386-pc
- basic_os=bsd
- ;;
- a29khif)
- basic_machine=a29k-amd
- basic_os=udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- basic_os=scout
- ;;
- alliant)
- basic_machine=fx80-alliant
- basic_os=
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- basic_os=
- ;;
- am29k)
- basic_machine=a29k-none
- basic_os=bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- basic_os=sysv
- ;;
- amiga)
- basic_machine=m68k-unknown
- basic_os=
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- basic_os=amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- basic_os=sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- basic_os=sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- basic_os=bsd
- ;;
- aros)
- basic_machine=i386-pc
- basic_os=aros
- ;;
- aux)
- basic_machine=m68k-apple
- basic_os=aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- basic_os=dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- basic_os=linux
- ;;
- cegcc)
- basic_machine=arm-unknown
- basic_os=cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- basic_os=bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- basic_os=bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- basic_os=bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- basic_os=bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- basic_os=bsd
- ;;
- cray)
- basic_machine=j90-cray
- basic_os=unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- basic_os=
- ;;
- da30)
- basic_machine=m68k-da30
- basic_os=
- ;;
- decstation | pmax | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- basic_os=
- ;;
- delta88)
- basic_machine=m88k-motorola
- basic_os=sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- basic_os=dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- basic_os=msdosdjgpp
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- basic_os=ebmon
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- basic_os=ose
- ;;
- gmicro)
- basic_machine=tron-gmicro
- basic_os=sysv
- ;;
- go32)
- basic_machine=i386-pc
- basic_os=go32
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- basic_os=hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- basic_os=xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- basic_os=hms
- ;;
- harris)
- basic_machine=m88k-harris
- basic_os=sysv3
- ;;
- hp300 | hp300hpux)
- basic_machine=m68k-hp
- basic_os=hpux
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- basic_os=bsd
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- basic_os=osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- basic_os=proelf
- ;;
- i386mach)
- basic_machine=i386-mach
- basic_os=mach
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- basic_os=sysv
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- basic_os=linux
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- basic_os=sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- basic_os=sysv
- ;;
- mingw64)
- basic_machine=x86_64-pc
- basic_os=mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- basic_os=mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- basic_os=mingw32ce
- ;;
- monitor)
- basic_machine=m68k-rom68k
- basic_os=coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- basic_os=morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- basic_os=moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- basic_os=msdos
- ;;
- msys)
- basic_machine=i686-pc
- basic_os=msys
- ;;
- mvs)
- basic_machine=i370-ibm
- basic_os=mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- basic_os=nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- basic_os=sysv4
- ;;
- netbsd386)
- basic_machine=i386-pc
- basic_os=netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- basic_os=linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- basic_os=newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- basic_os=newsos
- ;;
- necv70)
- basic_machine=v70-nec
- basic_os=sysv
- ;;
- nh3000)
- basic_machine=m68k-harris
- basic_os=cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- basic_os=cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- basic_os=nindy
- ;;
- mon960)
- basic_machine=i960-intel
- basic_os=mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- basic_os=nonstopux
- ;;
- os400)
- basic_machine=powerpc-ibm
- basic_os=os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- basic_os=ose
- ;;
- os68k)
- basic_machine=m68k-none
- basic_os=os68k
- ;;
- paragon)
- basic_machine=i860-intel
- basic_os=osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- basic_os=linux
- ;;
- psp)
- basic_machine=mipsallegrexel-sony
- basic_os=psp
- ;;
- pw32)
- basic_machine=i586-unknown
- basic_os=pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- basic_os=rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- basic_os=rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- basic_os=coff
- ;;
- sa29200)
- basic_machine=a29k-amd
- basic_os=udi
- ;;
- sei)
- basic_machine=mips-sei
- basic_os=seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- basic_os=
- ;;
- sps7)
- basic_machine=m68k-bull
- basic_os=sysv2
- ;;
- st2000)
- basic_machine=m68k-tandem
- basic_os=
- ;;
- stratus)
- basic_machine=i860-stratus
- basic_os=sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- basic_os=
- ;;
- sun2os3)
- basic_machine=m68000-sun
- basic_os=sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- basic_os=sunos4
- ;;
- sun3)
- basic_machine=m68k-sun
- basic_os=
- ;;
- sun3os3)
- basic_machine=m68k-sun
- basic_os=sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- basic_os=sunos4
- ;;
- sun4)
- basic_machine=sparc-sun
- basic_os=
- ;;
- sun4os3)
- basic_machine=sparc-sun
- basic_os=sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- basic_os=sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- basic_os=solaris2
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- basic_os=
- ;;
- sv1)
- basic_machine=sv1-cray
- basic_os=unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- basic_os=dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- basic_os=unicos
- ;;
- t90)
- basic_machine=t90-cray
- basic_os=unicos
- ;;
- toad1)
- basic_machine=pdp10-xkl
- basic_os=tops20
- ;;
- tpf)
- basic_machine=s390x-ibm
- basic_os=tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- basic_os=udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- basic_os=sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- basic_os=none
- ;;
- vaxv)
- basic_machine=vax-dec
- basic_os=sysv
- ;;
- vms)
- basic_machine=vax-dec
- basic_os=vms
- ;;
- vsta)
- basic_machine=i386-pc
- basic_os=vsta
- ;;
- vxworks960)
- basic_machine=i960-wrs
- basic_os=vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- basic_os=vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- basic_os=vxworks
- ;;
- xbox)
- basic_machine=i686-pc
- basic_os=mingw32
- ;;
- ymp)
- basic_machine=ymp-cray
- basic_os=unicos
- ;;
- *)
- basic_machine=$1
- basic_os=
- ;;
- esac
- ;;
-esac
-
-# Decode 1-component or ad-hoc basic machines
-case $basic_machine in
- # Here we handle the default manufacturer of certain CPU types. It is in
- # some cases the only manufacturer, in others, it is the most popular.
- w89k)
- cpu=hppa1.1
- vendor=winbond
- ;;
- op50n)
- cpu=hppa1.1
- vendor=oki
- ;;
- op60c)
- cpu=hppa1.1
- vendor=oki
- ;;
- ibm*)
- cpu=i370
- vendor=ibm
- ;;
- orion105)
- cpu=clipper
- vendor=highlevel
- ;;
- mac | mpw | mac-mpw)
- cpu=m68k
- vendor=apple
- ;;
- pmac | pmac-mpw)
- cpu=powerpc
- vendor=apple
- ;;
-
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- cpu=m68000
- vendor=att
- ;;
- 3b*)
- cpu=we32k
- vendor=att
- ;;
- bluegene*)
- cpu=powerpc
- vendor=ibm
- basic_os=cnk
- ;;
- decsystem10* | dec10*)
- cpu=pdp10
- vendor=dec
- basic_os=tops10
- ;;
- decsystem20* | dec20*)
- cpu=pdp10
- vendor=dec
- basic_os=tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- cpu=m68k
- vendor=motorola
- ;;
- dpx2*)
- cpu=m68k
- vendor=bull
- basic_os=sysv3
- ;;
- encore | umax | mmax)
- cpu=ns32k
- vendor=encore
- ;;
- elxsi)
- cpu=elxsi
- vendor=elxsi
- basic_os=${basic_os:-bsd}
- ;;
- fx2800)
- cpu=i860
- vendor=alliant
- ;;
- genix)
- cpu=ns32k
- vendor=ns
- ;;
- h3050r* | hiux*)
- cpu=hppa1.1
- vendor=hitachi
- basic_os=hiuxwe2
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- cpu=m68000
- vendor=hp
- ;;
- hp9k3[2-9][0-9])
- cpu=m68k
- vendor=hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
- ;;
- i*86v32)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- basic_os=sysv32
- ;;
- i*86v4*)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- basic_os=sysv4
- ;;
- i*86v)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- basic_os=sysv
- ;;
- i*86sol2)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- basic_os=solaris2
- ;;
- j90 | j90-cray)
- cpu=j90
- vendor=cray
- basic_os=${basic_os:-unicos}
- ;;
- iris | iris4d)
- cpu=mips
- vendor=sgi
- case $basic_os in
- irix*)
- ;;
- *)
- basic_os=irix4
- ;;
- esac
- ;;
- miniframe)
- cpu=m68000
- vendor=convergent
- ;;
- *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
- cpu=m68k
- vendor=atari
- basic_os=mint
- ;;
- news-3600 | risc-news)
- cpu=mips
- vendor=sony
- basic_os=newsos
- ;;
- next | m*-next)
- cpu=m68k
- vendor=next
- case $basic_os in
- openstep*)
- ;;
- nextstep*)
- ;;
- ns2*)
- basic_os=nextstep2
- ;;
- *)
- basic_os=nextstep3
- ;;
- esac
- ;;
- np1)
- cpu=np1
- vendor=gould
- ;;
- op50n-* | op60c-*)
- cpu=hppa1.1
- vendor=oki
- basic_os=proelf
- ;;
- pa-hitachi)
- cpu=hppa1.1
- vendor=hitachi
- basic_os=hiuxwe2
- ;;
- pbd)
- cpu=sparc
- vendor=tti
- ;;
- pbb)
- cpu=m68k
- vendor=tti
- ;;
- pc532)
- cpu=ns32k
- vendor=pc532
- ;;
- pn)
- cpu=pn
- vendor=gould
- ;;
- power)
- cpu=power
- vendor=ibm
- ;;
- ps2)
- cpu=i386
- vendor=ibm
- ;;
- rm[46]00)
- cpu=mips
- vendor=siemens
- ;;
- rtpc | rtpc-*)
- cpu=romp
- vendor=ibm
- ;;
- sde)
- cpu=mipsisa32
- vendor=sde
- basic_os=${basic_os:-elf}
- ;;
- simso-wrs)
- cpu=sparclite
- vendor=wrs
- basic_os=vxworks
- ;;
- tower | tower-32)
- cpu=m68k
- vendor=ncr
- ;;
- vpp*|vx|vx-*)
- cpu=f301
- vendor=fujitsu
- ;;
- w65)
- cpu=w65
- vendor=wdc
- ;;
- w89k-*)
- cpu=hppa1.1
- vendor=winbond
- basic_os=proelf
- ;;
- none)
- cpu=none
- vendor=none
- ;;
- leon|leon[3-9])
- cpu=sparc
- vendor=$basic_machine
- ;;
- leon-*|leon[3-9]-*)
- cpu=sparc
- vendor=`echo "$basic_machine" | sed 's/-.*//'`
- ;;
-
- *-*)
- # shellcheck disable=SC2162
- saved_IFS=$IFS
- IFS="-" read cpu vendor <<EOF
-$basic_machine
-EOF
- IFS=$saved_IFS
- ;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- cpu=$basic_machine
- vendor=pc
- ;;
- # These rules are duplicated from below for sake of the special case above;
- # i.e. things that normalized to x86 arches should also default to "pc"
- pc98)
- cpu=i386
- vendor=pc
- ;;
- x64 | amd64)
- cpu=x86_64
- vendor=pc
- ;;
- # Recognize the basic CPU types without company name.
- *)
- cpu=$basic_machine
- vendor=unknown
- ;;
-esac
-
-unset -v basic_machine
-
-# Decode basic machines in the full and proper CPU-Company form.
-case $cpu-$vendor in
- # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
- # some cases the only manufacturer, in others, it is the most popular.
- craynv-unknown)
- vendor=cray
- basic_os=${basic_os:-unicosmp}
- ;;
- c90-unknown | c90-cray)
- vendor=cray
- basic_os=${Basic_os:-unicos}
- ;;
- fx80-unknown)
- vendor=alliant
- ;;
- romp-unknown)
- vendor=ibm
- ;;
- mmix-unknown)
- vendor=knuth
- ;;
- microblaze-unknown | microblazeel-unknown)
- vendor=xilinx
- ;;
- rs6000-unknown)
- vendor=ibm
- ;;
- vax-unknown)
- vendor=dec
- ;;
- pdp11-unknown)
- vendor=dec
- ;;
- we32k-unknown)
- vendor=att
- ;;
- cydra-unknown)
- vendor=cydrome
- ;;
- i370-ibm*)
- vendor=ibm
- ;;
- orion-unknown)
- vendor=highlevel
- ;;
- xps-unknown | xps100-unknown)
- cpu=xps100
- vendor=honeywell
- ;;
-
- # Here we normalize CPU types with a missing or matching vendor
- dpx20-unknown | dpx20-bull)
- cpu=rs6000
- vendor=bull
- basic_os=${basic_os:-bosx}
- ;;
-
- # Here we normalize CPU types irrespective of the vendor
- amd64-*)
- cpu=x86_64
- ;;
- blackfin-*)
- cpu=bfin
- basic_os=linux
- ;;
- c54x-*)
- cpu=tic54x
- ;;
- c55x-*)
- cpu=tic55x
- ;;
- c6x-*)
- cpu=tic6x
- ;;
- e500v[12]-*)
- cpu=powerpc
- basic_os=${basic_os}"spe"
- ;;
- mips3*-*)
- cpu=mips64
- ;;
- ms1-*)
- cpu=mt
- ;;
- m68knommu-*)
- cpu=m68k
- basic_os=linux
- ;;
- m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
- cpu=s12z
- ;;
- openrisc-*)
- cpu=or32
- ;;
- parisc-*)
- cpu=hppa
- basic_os=linux
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- cpu=i586
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
- cpu=i686
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- cpu=i686
- ;;
- pentium4-*)
- cpu=i786
- ;;
- pc98-*)
- cpu=i386
- ;;
- ppc-* | ppcbe-*)
- cpu=powerpc
- ;;
- ppcle-* | powerpclittle-*)
- cpu=powerpcle
- ;;
- ppc64-*)
- cpu=powerpc64
- ;;
- ppc64le-* | powerpc64little-*)
- cpu=powerpc64le
- ;;
- sb1-*)
- cpu=mipsisa64sb1
- ;;
- sb1el-*)
- cpu=mipsisa64sb1el
- ;;
- sh5e[lb]-*)
- cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
- ;;
- spur-*)
- cpu=spur
- ;;
- strongarm-* | thumb-*)
- cpu=arm
- ;;
- tx39-*)
- cpu=mipstx39
- ;;
- tx39el-*)
- cpu=mipstx39el
- ;;
- x64-*)
- cpu=x86_64
- ;;
- xscale-* | xscalee[bl]-*)
- cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
- ;;
- arm64-*)
- cpu=aarch64
- ;;
-
- # Recognize the canonical CPU Types that limit and/or modify the
- # company names they are paired with.
- cr16-*)
- basic_os=${basic_os:-elf}
- ;;
- crisv32-* | etraxfs*-*)
- cpu=crisv32
- vendor=axis
- ;;
- cris-* | etrax*-*)
- cpu=cris
- vendor=axis
- ;;
- crx-*)
- basic_os=${basic_os:-elf}
- ;;
- neo-tandem)
- cpu=neo
- vendor=tandem
- ;;
- nse-tandem)
- cpu=nse
- vendor=tandem
- ;;
- nsr-tandem)
- cpu=nsr
- vendor=tandem
- ;;
- nsv-tandem)
- cpu=nsv
- vendor=tandem
- ;;
- nsx-tandem)
- cpu=nsx
- vendor=tandem
- ;;
- mipsallegrexel-sony)
- cpu=mipsallegrexel
- vendor=sony
- ;;
- tile*-*)
- basic_os=${basic_os:-linux-gnu}
- ;;
-
- *)
- # Recognize the canonical CPU types that are allowed with any
- # company name.
- case $cpu in
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | abacus \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
- | alphapca5[67] | alpha64pca5[67] \
- | am33_2.0 \
- | amdgcn \
- | arc | arceb | arc32 | arc64 \
- | arm | arm[lb]e | arme[lb] | armv* \
- | avr | avr32 \
- | asmjs \
- | ba \
- | be32 | be64 \
- | bfin | bpf | bs2000 \
- | c[123]* | c30 | [cjt]90 | c4x \
- | c8051 | clipper | craynv | csky | cydra \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | elxsi | epiphany \
- | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
- | h8300 | h8500 \
- | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i*86 | i860 | i960 | ia16 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | loongarch32 | loongarch64 | loongarchx32 \
- | m32c | m32r | m32rle \
- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
- | m88110 | m88k | maxq | mb | mcore | mep | metag \
- | microblaze | microblazeel \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64eb | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r3 | mipsisa32r3el \
- | mipsisa32r5 | mipsisa32r5el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r3 | mipsisa64r3el \
- | mipsisa64r5 | mipsisa64r5el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mmix \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nfp \
- | nios | nios2 | nios2eb | nios2el \
- | none | np1 | ns16k | ns32k | nvptx \
- | open8 \
- | or1k* \
- | or32 \
- | orion \
- | picochip \
- | pdp10 | pdp11 | pj | pjl | pn | power \
- | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
- | pru \
- | pyramid \
- | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
- | rl78 | romp | rs6000 | rx \
- | s390 | s390x \
- | score \
- | sh | shl \
- | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
- | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
- | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
- | spu \
- | tahoe \
- | thumbv7* \
- | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
- | tron \
- | ubicom32 \
- | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
- | vax \
- | visium \
- | w65 \
- | wasm32 | wasm64 \
- | we32k \
- | x86 | x86_64 | xc16x | xgate | xps100 \
- | xstormy16 | xtensa* \
- | ymp \
- | z8k | z80)
- ;;
-
- *)
- echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
- exit 1
- ;;
- esac
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $vendor in
- digital*)
- vendor=dec
- ;;
- commodore*)
- vendor=cbm
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if test x$basic_os != x
-then
-
-# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
-# set os.
-case $basic_os in
- gnu/linux*)
- kernel=linux
- os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
- ;;
- os2-emx)
- kernel=os2
- os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
- ;;
- nto-qnx*)
- kernel=nto
- os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
- ;;
- *-*)
- # shellcheck disable=SC2162
- saved_IFS=$IFS
- IFS="-" read kernel os <<EOF
-$basic_os
-EOF
- IFS=$saved_IFS
- ;;
- # Default OS when just kernel was specified
- nto*)
- kernel=nto
- os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
- ;;
- linux*)
- kernel=linux
- os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
- ;;
- *)
- kernel=
- os=$basic_os
- ;;
-esac
-
-# Now, normalize the OS (knowing we just have one component, it's not a kernel,
-# etc.)
-case $os in
- # First match some system type aliases that might get confused
- # with valid system types.
- # solaris* is a basic system type, with this one exception.
- auroraux)
- os=auroraux
- ;;
- bluegene*)
- os=cnk
- ;;
- solaris1 | solaris1.*)
- os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
- ;;
- solaris)
- os=solaris2
- ;;
- unixware*)
- os=sysv4.2uw
- ;;
- # es1800 is here to avoid being matched by es* (a different OS)
- es1800*)
- os=ose
- ;;
- # Some version numbers need modification
- chorusos*)
- os=chorusos
- ;;
- isc)
- os=isc2.2
- ;;
- sco6)
- os=sco5v6
- ;;
- sco5)
- os=sco3.2v5
- ;;
- sco4)
- os=sco3.2v4
- ;;
- sco3.2.[4-9]*)
- os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
- ;;
- sco*v* | scout)
- # Don't match below
- ;;
- sco*)
- os=sco3.2v2
- ;;
- psos*)
- os=psos
- ;;
- qnx*)
- os=qnx
- ;;
- hiux*)
- os=hiuxwe2
- ;;
- lynx*178)
- os=lynxos178
- ;;
- lynx*5)
- os=lynxos5
- ;;
- lynxos*)
- # don't get caught up in next wildcard
- ;;
- lynx*)
- os=lynxos
- ;;
- mac[0-9]*)
- os=`echo "$os" | sed -e 's|mac|macos|'`
- ;;
- opened*)
- os=openedition
- ;;
- os400*)
- os=os400
- ;;
- sunos5*)
- os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
- ;;
- sunos6*)
- os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
- ;;
- wince*)
- os=wince
- ;;
- utek*)
- os=bsd
- ;;
- dynix*)
- os=bsd
- ;;
- acis*)
- os=aos
- ;;
- atheos*)
- os=atheos
- ;;
- syllable*)
- os=syllable
- ;;
- 386bsd)
- os=bsd
- ;;
- ctix* | uts*)
- os=sysv
- ;;
- nova*)
- os=rtmk-nova
- ;;
- ns2)
- os=nextstep2
- ;;
- # Preserve the version number of sinix5.
- sinix5.*)
- os=`echo "$os" | sed -e 's|sinix|sysv|'`
- ;;
- sinix*)
- os=sysv4
- ;;
- tpf*)
- os=tpf
- ;;
- triton*)
- os=sysv3
- ;;
- oss*)
- os=sysv3
- ;;
- svr4*)
- os=sysv4
- ;;
- svr3)
- os=sysv3
- ;;
- sysvr4)
- os=sysv4
- ;;
- ose*)
- os=ose
- ;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
- os=mint
- ;;
- dicos*)
- os=dicos
- ;;
- pikeos*)
- # Until real need of OS specific support for
- # particular features comes up, bare metal
- # configurations are quite functional.
- case $cpu in
- arm*)
- os=eabi
- ;;
- *)
- os=elf
- ;;
- esac
- ;;
- *)
- # No normalization, but not necessarily accepted, that comes below.
- ;;
-esac
-
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-kernel=
-case $cpu-$vendor in
- score-*)
- os=elf
- ;;
- spu-*)
- os=elf
- ;;
- *-acorn)
- os=riscix1.2
- ;;
- arm*-rebel)
- kernel=linux
- os=gnu
- ;;
- arm*-semi)
- os=aout
- ;;
- c4x-* | tic4x-*)
- os=coff
- ;;
- c8051-*)
- os=elf
- ;;
- clipper-intergraph)
- os=clix
- ;;
- hexagon-*)
- os=elf
- ;;
- tic54x-*)
- os=coff
- ;;
- tic55x-*)
- os=coff
- ;;
- tic6x-*)
- os=coff
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=tops20
- ;;
- pdp11-*)
- os=none
- ;;
- *-dec | vax-*)
- os=ultrix4.2
- ;;
- m68*-apollo)
- os=domain
- ;;
- i386-sun)
- os=sunos4.0.2
- ;;
- m68000-sun)
- os=sunos3
- ;;
- m68*-cisco)
- os=aout
- ;;
- mep-*)
- os=elf
- ;;
- mips*-cisco)
- os=elf
- ;;
- mips*-*)
- os=elf
- ;;
- or32-*)
- os=coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=sysv3
- ;;
- sparc-* | *-sun)
- os=sunos4.1.1
- ;;
- pru-*)
- os=elf
- ;;
- *-be)
- os=beos
- ;;
- *-ibm)
- os=aix
- ;;
- *-knuth)
- os=mmixware
- ;;
- *-wec)
- os=proelf
- ;;
- *-winbond)
- os=proelf
- ;;
- *-oki)
- os=proelf
- ;;
- *-hp)
- os=hpux
- ;;
- *-hitachi)
- os=hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=sysv
- ;;
- *-cbm)
- os=amigaos
- ;;
- *-dg)
- os=dgux
- ;;
- *-dolphin)
- os=sysv3
- ;;
- m68k-ccur)
- os=rtu
- ;;
- m88k-omron*)
- os=luna
- ;;
- *-next)
- os=nextstep
- ;;
- *-sequent)
- os=ptx
- ;;
- *-crds)
- os=unos
- ;;
- *-ns)
- os=genix
- ;;
- i370-*)
- os=mvs
- ;;
- *-gould)
- os=sysv
- ;;
- *-highlevel)
- os=bsd
- ;;
- *-encore)
- os=bsd
- ;;
- *-sgi)
- os=irix
- ;;
- *-siemens)
- os=sysv4
- ;;
- *-masscomp)
- os=rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=uxpv
- ;;
- *-rom68k)
- os=coff
- ;;
- *-*bug)
- os=coff
- ;;
- *-apple)
- os=macos
- ;;
- *-atari*)
- os=mint
- ;;
- *-wrs)
- os=vxworks
- ;;
- *)
- os=none
- ;;
-esac
-
-fi
-
-# Now, validate our (potentially fixed-up) OS.
-case $os in
- # Sometimes we do "kernel-libc", so those need to count as OSes.
- musl* | newlib* | relibc* | uclibc*)
- ;;
- # Likewise for "kernel-abi"
- eabi* | gnueabi*)
- ;;
- # VxWorks passes extra cpu info in the 4th filed.
- simlinux | simwindows | spe)
- ;;
- # Now accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST end in a * to match a version number.
- gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
- | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
- | hiux* | abug | nacl* | netware* | windows* \
- | os9* | macos* | osx* | ios* \
- | mpw* | magic* | mmixware* | mon960* | lnews* \
- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* | twizzler* \
- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
- | mirbsd* | netbsd* | dicos* | openedition* | ose* \
- | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
- | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
- | udi* | lites* | ieee* | go32* | aux* | hcos* \
- | chorusrdb* | cegcc* | glidix* | serenity* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
- | midipix* | mingw32* | mingw64* | mint* \
- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
- | interix* | uwin* | mks* | rhapsody* | darwin* \
- | openstep* | oskit* | conix* | pw32* | nonstopux* \
- | storm-chaos* | tops10* | tenex* | tops20* | its* \
- | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
- | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
- | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
- | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
- | fiwix* )
- ;;
- # This one is extra strict with allowed versions
- sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- ;;
- none)
- ;;
- *)
- echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# As a final step for OS-related things, validate the OS-kernel combination
-# (given a valid OS), if there is a kernel.
-case $kernel-$os in
- linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
- | linux-musl* | linux-relibc* | linux-uclibc* )
- ;;
- uclinux-uclibc* )
- ;;
- -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
- # These are just libc implementations, not actual OSes, and thus
- # require a kernel.
- echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
- exit 1
- ;;
- kfreebsd*-gnu* | kopensolaris*-gnu*)
- ;;
- vxworks-simlinux | vxworks-simwindows | vxworks-spe)
- ;;
- nto-qnx*)
- ;;
- os2-emx)
- ;;
- *-eabi* | *-gnueabi*)
- ;;
- -*)
- # Blank kernel with real OS is always fine.
- ;;
- *-*)
- echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
- exit 1
- ;;
-esac
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-case $vendor in
- unknown)
- case $cpu-$os in
- *-riscix*)
- vendor=acorn
- ;;
- *-sunos*)
- vendor=sun
- ;;
- *-cnk* | *-aix*)
- vendor=ibm
- ;;
- *-beos*)
- vendor=be
- ;;
- *-hpux*)
- vendor=hp
- ;;
- *-mpeix*)
- vendor=hp
- ;;
- *-hiux*)
- vendor=hitachi
- ;;
- *-unos*)
- vendor=crds
- ;;
- *-dgux*)
- vendor=dg
- ;;
- *-luna*)
- vendor=omron
- ;;
- *-genix*)
- vendor=ns
- ;;
- *-clix*)
- vendor=intergraph
- ;;
- *-mvs* | *-opened*)
- vendor=ibm
- ;;
- *-os400*)
- vendor=ibm
- ;;
- s390-* | s390x-*)
- vendor=ibm
- ;;
- *-ptx*)
- vendor=sequent
- ;;
- *-tpf*)
- vendor=ibm
- ;;
- *-vxsim* | *-vxworks* | *-windiss*)
- vendor=wrs
- ;;
- *-aux*)
- vendor=apple
- ;;
- *-hms*)
- vendor=hitachi
- ;;
- *-mpw* | *-macos*)
- vendor=apple
- ;;
- *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
- vendor=atari
- ;;
- *-vos*)
- vendor=stratus
- ;;
- esac
- ;;
-esac
-
-echo "$cpu-$vendor-${kernel:+$kernel-}$os"
-exit
-
-# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/enable.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/enable.m4
deleted file mode 100644
index 88b29b8aa..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/enable.m4
+++ /dev/null
@@ -1,38 +0,0 @@
-dnl ----------------------------------------------------------------------
-dnl This whole bit snagged from libstdc++-v3.
-
-dnl
-dnl GCC_ENABLE
-dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING)
-dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, permit a|b|c)
-dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, SHELL-CODE-HANDLER)
-dnl
-dnl See docs/html/17_intro/configury.html#enable for documentation.
-dnl
-AC_DEFUN([GCC_ENABLE],[dnl
-m4_define([_g_switch],[--enable-$1])dnl
-m4_define([_g_help],[AC_HELP_STRING(_g_switch$3,[$4 @<:@default=$2@:>@])])dnl
- AC_ARG_ENABLE($1,_g_help,
- m4_bmatch([$5],
- [^permit ],
- [[
- case "$enableval" in
- m4_bpatsubst([$5],[permit ])) ;;
- *) AC_MSG_ERROR(Unknown argument to enable/disable $1) ;;
- dnl Idea for future: generate a URL pointing to
- dnl "onlinedocs/configopts.html#whatever"
- esac
- ]],
- [^$],
- [[
- case "$enableval" in
- yes|no) ;;
- *) AC_MSG_ERROR(Argument to enable/disable $1 must be yes or no) ;;
- esac
- ]],
- [[$5]]),
- [enable_]m4_bpatsubst([$1],-,_)[=][$2])
-m4_undefine([_g_switch])dnl
-m4_undefine([_g_help])dnl
-])
-
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/lead-dot.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/lead-dot.m4
deleted file mode 100644
index 123f541bb..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/lead-dot.m4
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- Autoconf -*-
-# Copyright (C) 2003, 2009 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-
-# serial 1
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/libtool.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/libtool.m4
deleted file mode 100644
index 17f8e5f30..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/libtool.m4
+++ /dev/null
@@ -1,7436 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 56 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2009 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- _LT_PROG_XSI_SHELLFNS
-
- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS="$save_LDFLAGS"
- ])
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
- # build without first building modern cctools / linker.
- case $host_cpu-$host_os in
- *-rhapsody* | *-darwin1.[[012]])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- *-darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- *-darwin*)
- # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
- # deployment target is forced to an earlier version.
- case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
- UNSET,*-darwin[[89]]*|UNSET,*-darwin[[12]][[0123456789]]*)
- ;;
- 10.[[012]][[,.]]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- *)
- ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
-# Checks for linker and compiler features on Darwin / macOS / iOS
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- m4_if([$1], [CXX],
-[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[
-lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\(.*\)$/\1/
- p
- }
- }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case "$ECHO" in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-sparc*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
- test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-
-# uclinux* changes (here and below) have been submitted to the libtool
-# project, but have not yet been accepted: they are GCC-local changes
-# for the time being. (See
-# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method == "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_save_LIBS="$LIBS"
- lt_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS="$lt_save_LIBS"
- CFLAGS="$lt_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ F* | *Sun*Fortran*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])],
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- )
- LDFLAGS="$save_LDFLAGS"
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
- [[If ld is used when linking, flag to hardcode $libdir into a binary
- during linking. This must work even if $libdir does not exist]])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting ${shlibpath_var} if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
- [Fix the shell variable $srcfile for the compiler])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report which library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- gnu*)
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)="$GXX"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case $p in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- else
- prev=
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- case $p in
- -L* | -R*)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- ;;
-
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- CC=${F77-"f77"}
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$G77"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- CC=${FC-"f95"}
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC="$lt_save_CC"
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=${1%%=*}
- func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=$(( $[*] ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=${#1}
-}
-
-_LT_EOF
- ;;
- *) # Bourne compatible functions.
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-}
-
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "$[@]"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$[1]+=\$[2]"
-}
-_LT_EOF
- ;;
- *)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
- ;;
- esac
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/ltoptions.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/ltoptions.m4
deleted file mode 100644
index 5ef12ced2..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/ltoptions.m4
+++ /dev/null
@@ -1,369 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [pic_mode="$withval"],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/ltsugar.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/ltsugar.m4
deleted file mode 100644
index 9000a057d..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/ltversion.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/ltversion.m4
deleted file mode 100644
index bf87f7713..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# Generated from ltversion.in.
-
-# serial 3134 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.2.7a])
-m4_define([LT_PACKAGE_REVISION], [1.3134])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.7a'
-macro_revision='1.3134'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/lt~obsolete.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/lt~obsolete.m4
deleted file mode 100644
index bf92b5e07..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 4 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/multi.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/multi.m4
deleted file mode 100644
index 10680a5b3..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/multi.m4
+++ /dev/null
@@ -1,68 +0,0 @@
-## -*- Autoconf -*-
-# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 6
-
-# AM_ENABLE_MULTILIB([MAKEFILE], [REL-TO-TOP-SRCDIR])
-# ---------------------------------------------------
-# Add --enable-multilib to configure.
-AC_DEFUN([AM_ENABLE_MULTILIB],
-[# Default to --enable-multilib
-AC_ARG_ENABLE(multilib,
-[ --enable-multilib build many library versions (default)],
-[case "$enableval" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR([bad value $enableval for multilib option]) ;;
- esac],
- [multilib=yes])
-
-# We may get other options which we leave undocumented:
-# --with-target-subdir, --with-multisrctop, --with-multisubdir
-# See config-ml.in if you want the gory details.
-
-if test "$srcdir" = "."; then
- if test "$with_target_subdir" != "."; then
- multi_basedir="$srcdir/$with_multisrctop../$2"
- else
- multi_basedir="$srcdir/$with_multisrctop$2"
- fi
-else
- multi_basedir="$srcdir/$2"
-fi
-AC_SUBST(multi_basedir)
-
-# Even if the default multilib is not a cross compilation,
-# it may be that some of the other multilibs are.
-if test $cross_compiling = no && test $multilib = yes \
- && test "x${with_multisubdir}" != x ; then
- cross_compiling=maybe
-fi
-
-AC_OUTPUT_COMMANDS([
-# Only add multilib support code if we just rebuilt the top-level
-# Makefile.
-case " $CONFIG_FILES " in
- *" ]m4_default([$1],Makefile)[ "*)
- ac_file=]m4_default([$1],Makefile)[ . ${multi_basedir}/config-ml.in
- ;;
-esac],
- [
-srcdir="$srcdir"
-host="$host"
-target="$target"
-with_multisubdir="$with_multisubdir"
-with_multisrctop="$with_multisrctop"
-with_target_subdir="$with_target_subdir"
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-multi_basedir="$multi_basedir"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-CC="$CC"
-CXX="$CXX"
-GFORTRAN="$GFORTRAN"
-GDC="$GDC"])])dnl
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/override.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/override.m4
deleted file mode 100644
index b3b7f97b0..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/override.m4
+++ /dev/null
@@ -1,117 +0,0 @@
-dnl Fix Autoconf bugs by overriding broken internal Autoconf
-dnl macros with backports of fixes from newer releases.
-dnl
-dnl The override bits of this file should be a no-op for the newest
-dnl Autoconf version, which means they can be removed once the complete
-dnl tree has moved to a new enough Autoconf version.
-dnl
-dnl The _GCC_AUTOCONF_VERSION_TEST ensures that exactly the desired
-dnl Autoconf version is used. It should be kept for consistency.
-
-dnl Use ifdef/ifelse over m4_ifdef/m4_ifelse to be clean for 2.13.
-ifdef([m4_PACKAGE_VERSION], [
-
-dnl Provide m4_copy_force and m4_rename_force for old Autoconf versions.
-
-m4_ifndef([m4_copy_force],
-[m4_define([m4_copy_force],
-[m4_ifdef([$2], [m4_undefine([$2])])m4_copy($@)])])
-
-m4_ifndef([m4_rename_force],
-[m4_define([m4_rename_force],
-[m4_ifdef([$2], [m4_undefine([$2])])m4_rename($@)])])
-
-dnl AC_DEFUN a commonly used macro so this file is picked up.
-m4_copy([AC_PREREQ], [_AC_PREREQ])
-AC_DEFUN([AC_PREREQ], [frob])
-m4_copy_force([_AC_PREREQ], [AC_PREREQ])
-
-
-dnl Ensure exactly this Autoconf version is used
-m4_ifndef([_GCC_AUTOCONF_VERSION],
- [m4_define([_GCC_AUTOCONF_VERSION], [2.69])])
-
-dnl Test for the exact version when AC_INIT is expanded.
-dnl This allows to update the tree in steps (for testing)
-dnl by putting
-dnl m4_define([_GCC_AUTOCONF_VERSION], [X.Y])
-dnl in configure.ac before AC_INIT,
-dnl without rewriting this file.
-dnl Or for updating the whole tree at once with the definition above.
-AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK],
-[m4_if(m4_defn([_GCC_AUTOCONF_VERSION]),
- m4_defn([m4_PACKAGE_VERSION]), [],
- [m4_fatal([Please use exactly Autoconf ]_GCC_AUTOCONF_VERSION[ instead of ]m4_defn([m4_PACKAGE_VERSION])[.])])
-])
-dnl don't do this for libbacktrace
-dnl m4_define([AC_INIT], m4_defn([AC_INIT])[
-dnl _GCC_AUTOCONF_VERSION_CHECK
-dnl ])
-
-
-dnl Ensure we do not use a buggy M4.
-m4_if(m4_index([..wi.d.], [.d.]), [-1],
- [m4_fatal(m4_do([m4 with buggy strstr detected. Please install
-GNU M4 1.4.16 or newer and set the M4 environment variable]))])
-
-
-dnl Fix 2.64 cross compile detection for AVR and RTEMS
-dnl by not trying to compile fopen.
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.64],
- [m4_foreach([_GCC_LANG], [C, C++, Fortran, Fortran 77],
- [m4_define([_AC_LANG_IO_PROGRAM(]_GCC_LANG[)], m4_defn([AC_LANG_PROGRAM(]_GCC_LANG[)]))])])
-
-m4_version_prereq([2.66],, [
-dnl We need AC_CHECK_DECL which works for overloaded C++ functions.
-
-# _AC_CHECK_DECL_BODY
-# -------------------
-# Shell function body for AC_CHECK_DECL.
-m4_define([_AC_CHECK_DECL_BODY],
-[ AS_LINENO_PUSH([$[]1])
- [as_decl_name=`echo $][2|sed 's/ *(.*//'`]
- [as_decl_use=`echo $][2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`]
- AC_CACHE_CHECK([whether $as_decl_name is declared], [$[]3],
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$[]4],
-[@%:@ifndef $[]as_decl_name
-@%:@ifdef __cplusplus
- (void) $[]as_decl_use;
-@%:@else
- (void) $[]as_decl_name;
-@%:@endif
-@%:@endif
-])],
- [AS_VAR_SET([$[]3], [yes])],
- [AS_VAR_SET([$[]3], [no])])])
- AS_LINENO_POP
-])# _AC_CHECK_DECL_BODY
-
-# _AC_CHECK_DECLS(SYMBOL, ACTION-IF_FOUND, ACTION-IF-NOT-FOUND,
-# INCLUDES)
-# -------------------------------------------------------------
-# Helper to AC_CHECK_DECLS, which generates the check for a single
-# SYMBOL with INCLUDES, performs the AC_DEFINE, then expands
-# ACTION-IF-FOUND or ACTION-IF-NOT-FOUND.
-m4_define([_AC_CHECK_DECLS],
-[AC_CHECK_DECL([$1], [ac_have_decl=1], [ac_have_decl=0], [$4])]dnl
-[AC_DEFINE_UNQUOTED(AS_TR_CPP(m4_bpatsubst(HAVE_DECL_[$1],[ *(.*])),
- [$ac_have_decl],
- [Define to 1 if you have the declaration of `$1',
- and to 0 if you don't.])]dnl
-[m4_ifvaln([$2$3], [AS_IF([test $ac_have_decl = 1], [$2], [$3])])])
-
-])
-
-dnl If flex/lex are not found, the top level configure sets LEX to
-dnl "/path_to/missing flex". When AC_PROG_LEX tries to find the flex
-dnl output file, it calls $LEX to do so, but the current lightweight
-dnl "missing" won't create a file. This results in an error.
-dnl Avoid calling the bulk of AC_PROG_LEX when $LEX is "missing".
-AC_DEFUN_ONCE([AC_PROG_LEX],
-[AC_CHECK_PROGS(LEX, flex lex, :)
-case "$LEX" in
- :|*"missing "*) ;;
- *) _AC_PROG_LEX_YYTEXT_DECL ;;
-esac])
-
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/unwind_ipinfo.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/unwind_ipinfo.m4
deleted file mode 100644
index efc79903b..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/unwind_ipinfo.m4
+++ /dev/null
@@ -1,37 +0,0 @@
-dnl
-dnl Check whether _Unwind_GetIPInfo is available without doing a link
-dnl test so we can use this with libstdc++-v3 and libjava. Need to
-dnl use $target to set defaults because automatic checking is not possible
-dnl without a link test (and maybe even with a link test).
-dnl
-
-AC_DEFUN([GCC_CHECK_UNWIND_GETIPINFO], [
- AC_ARG_WITH(system-libunwind,
- [ --with-system-libunwind use installed libunwind])
- # If system-libunwind was not specifically set, pick a default setting.
- if test x$with_system_libunwind = x; then
- case ${target} in
- ia64-*-hpux*) with_system_libunwind=yes ;;
- *) with_system_libunwind=no ;;
- esac
- fi
- # Based on system-libunwind and target, do we have ipinfo?
- if test x$with_system_libunwind = xyes; then
- case ${target} in
- ia64-*-*) have_unwind_getipinfo=no ;;
- *) have_unwind_getipinfo=yes ;;
- esac
- else
- # Darwin before version 9 does not have _Unwind_GetIPInfo.
- changequote(,)
- case ${target} in
- *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
- *) have_unwind_getipinfo=yes ;;
- esac
- changequote([,])
- fi
-
- if test x$have_unwind_getipinfo = xyes; then
- AC_DEFINE(HAVE_GETIPINFO, 1, [Define if _Unwind_GetIPInfo is available.])
- fi
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/config/warnings.m4 b/fluent-bit/lib/libbacktrace-8602fda/config/warnings.m4
deleted file mode 100644
index ce007f9b7..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/config/warnings.m4
+++ /dev/null
@@ -1,227 +0,0 @@
-# Autoconf include file defining macros related to compile-time warnings.
-
-# Copyright 2004, 2005, 2007, 2009, 2011 Free Software Foundation, Inc.
-
-#This file is part of GCC.
-
-#GCC is free software; you can redistribute it and/or modify it under
-#the terms of the GNU General Public License as published by the Free
-#Software Foundation; either version 3, or (at your option) any later
-#version.
-
-#GCC is distributed in the hope that it will be useful, but WITHOUT
-#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-#for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GCC; see the file COPYING3. If not see
-#<http://www.gnu.org/licenses/>.
-
-# ACX_PROG_CC_WARNING_OPTS(WARNINGS, [VARIABLE = WARN_CFLAGS])
-# Sets @VARIABLE@ to the subset of the given options which the
-# compiler accepts.
-AC_DEFUN([ACX_PROG_CC_WARNING_OPTS],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_LANG_PUSH(C)
-m4_pushdef([acx_Var], [m4_default([$2], [WARN_CFLAGS])])dnl
-AC_SUBST(acx_Var)dnl
-m4_expand_once([acx_Var=
-],m4_quote(acx_Var=))dnl
-save_CFLAGS="$CFLAGS"
-for real_option in $1; do
- # Do the check with the no- prefix removed since gcc silently
- # accepts any -Wno-* option on purpose
- case $real_option in
- -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
- *) option=$real_option ;;
- esac
- AS_VAR_PUSHDEF([acx_Woption], [acx_cv_prog_cc_warning_$option])
- AC_CACHE_CHECK([whether $CC supports $option], acx_Woption,
- [CFLAGS="$option"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_VAR_SET(acx_Woption, yes)],
- [AS_VAR_SET(acx_Woption, no)])
- ])
- AS_IF([test AS_VAR_GET(acx_Woption) = yes],
- [acx_Var="$acx_Var${acx_Var:+ }$real_option"])
- AS_VAR_POPDEF([acx_Woption])dnl
-done
-CFLAGS="$save_CFLAGS"
-m4_popdef([acx_Var])dnl
-AC_LANG_POP(C)
-])# ACX_PROG_CC_WARNING_OPTS
-
-# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC])
-# Append to VARIABLE "-pedantic" + the argument, if the compiler is GCC
-# and accepts all of those options simultaneously, otherwise to nothing.
-AC_DEFUN([ACX_PROG_CC_WARNING_ALMOST_PEDANTIC],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_LANG_PUSH(C)
-m4_pushdef([acx_Var], [m4_default([$2], [WARN_PEDANTIC])])dnl
-AC_SUBST(acx_Var)dnl
-m4_expand_once([acx_Var=
-],m4_quote(acx_Var=))dnl
-# Do the check with the no- prefix removed from the warning options
-# since gcc silently accepts any -Wno-* option on purpose
-m4_pushdef([acx_Woptions], [m4_bpatsubst([$1], [-Wno-], [-W])])dnl
-AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_]acx_Woptions)dnl
-AS_IF([test "$GCC" = yes],
-[AC_CACHE_CHECK([whether $CC supports -pedantic ]acx_Woptions, acx_Pedantic,
-[save_CFLAGS="$CFLAGS"
-CFLAGS="-pedantic acx_Woptions"
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_VAR_SET(acx_Pedantic, yes)],
- [AS_VAR_SET(acx_Pedantic, no)])
-CFLAGS="$save_CFLAGS"])
-AS_IF([test AS_VAR_GET(acx_Pedantic) = yes],
- [acx_Var="$acx_Var${acx_Var:+ }-pedantic $1"])
-])
-AS_VAR_POPDEF([acx_Pedantic])dnl
-m4_popdef([acx_Woptions])dnl
-m4_popdef([acx_Var])dnl
-AC_LANG_POP(C)
-])# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC
-
-# ACX_PROG_CC_WARNINGS_ARE_ERRORS([x.y.z], [VARIABLE = WERROR])
-# sets @VARIABLE@ to "-Werror" if the compiler is GCC >=x.y.z, or if
-# --enable-werror-always was given on the command line, otherwise
-# to nothing.
-# If the argument is the word "manual" instead of a version number,
-# then @VARIABLE@ will be set to -Werror only if --enable-werror-always
-# appeared on the configure command line.
-AC_DEFUN([ACX_PROG_CC_WARNINGS_ARE_ERRORS],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_LANG_PUSH(C)
-m4_pushdef([acx_Var], [m4_default([$2], [WERROR])])dnl
-AC_SUBST(acx_Var)dnl
-m4_expand_once([acx_Var=
-],m4_quote(acx_Var=))dnl
-AC_ARG_ENABLE(werror-always,
- AS_HELP_STRING([--enable-werror-always],
- [enable -Werror despite compiler version]),
-[], [enable_werror_always=no])
-AS_IF([test $enable_werror_always = yes],
- [acx_Var="$acx_Var${acx_Var:+ }-Werror"])
- m4_if($1, [manual],,
- [AS_VAR_PUSHDEF([acx_GCCvers], [acx_cv_prog_cc_gcc_$1_or_newer])dnl
- AC_CACHE_CHECK([whether $CC is GCC >=$1], acx_GCCvers,
- [set fnord `echo $1 | tr '.' ' '`
- shift
- AC_PREPROC_IFELSE(
-[#if __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ \
- < [$]1 * 10000 + [$]2 * 100 + [$]3
-#error insufficient
-#endif],
- [AS_VAR_SET(acx_GCCvers, yes)],
- [AS_VAR_SET(acx_GCCvers, no)])])
- AS_IF([test AS_VAR_GET(acx_GCCvers) = yes],
- [acx_Var="$acx_Var${acx_Var:+ }-Werror"])
- AS_VAR_POPDEF([acx_GCCvers])])
-m4_popdef([acx_Var])dnl
-AC_LANG_POP(C)
-])# ACX_PROG_CC_WARNINGS_ARE_ERRORS
-
-# ACX_PROG_CXX_WARNING_OPTS(WARNINGS, [VARIABLE = WARN_CXXFLAGS])
-# Sets @VARIABLE@ to the subset of the given options which the
-# compiler accepts.
-AC_DEFUN([ACX_PROG_CXX_WARNING_OPTS],
-[AC_REQUIRE([AC_PROG_CXX])dnl
-AC_LANG_PUSH(C++)
-m4_pushdef([acx_Var], [m4_default([$2], [WARN_CXXFLAGS])])dnl
-AC_SUBST(acx_Var)dnl
-m4_expand_once([acx_Var=
-],m4_quote(acx_Var=))dnl
-save_CXXFLAGS="$CXXFLAGS"
-for real_option in $1; do
- # Do the check with the no- prefix removed since gcc silently
- # accepts any -Wno-* option on purpose
- case $real_option in
- -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
- *) option=$real_option ;;
- esac
- AS_VAR_PUSHDEF([acx_Woption], [acx_cv_prog_cc_warning_$option])
- AC_CACHE_CHECK([whether $CXX supports $option], acx_Woption,
- [CXXFLAGS="$option"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_VAR_SET(acx_Woption, yes)],
- [AS_VAR_SET(acx_Woption, no)])
- ])
- AS_IF([test AS_VAR_GET(acx_Woption) = yes],
- [acx_Var="$acx_Var${acx_Var:+ }$real_option"])
- AS_VAR_POPDEF([acx_Woption])dnl
-done
-CXXFLAGS="$save_CXXFLAGS"
-m4_popdef([acx_Var])dnl
-AC_LANG_POP(C++)
-])# ACX_PROG_CXX_WARNING_OPTS
-
-# ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC])
-# Append to VARIABLE "-pedantic" + the argument, if the compiler is G++
-# and accepts all of those options simultaneously, otherwise to nothing.
-AC_DEFUN([ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC],
-[AC_REQUIRE([AC_PROG_CXX])dnl
-AC_LANG_PUSH(C++)
-m4_pushdef([acx_Var], [m4_default([$2], [WARN_PEDANTIC])])dnl
-AC_SUBST(acx_Var)dnl
-m4_expand_once([acx_Var=
-],m4_quote(acx_Var=))dnl
-# Do the check with the no- prefix removed from the warning options
-# since gcc silently accepts any -Wno-* option on purpose
-m4_pushdef([acx_Woptions], [m4_bpatsubst([$1], [-Wno-], [-W])])dnl
-AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_]acx_Woptions)dnl
-AS_IF([test "$GXX" = yes],
-[AC_CACHE_CHECK([whether $CXX supports -pedantic ]acx_Woptions, acx_Pedantic,
-[save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="-pedantic acx_Woptions"
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_VAR_SET(acx_Pedantic, yes)],
- [AS_VAR_SET(acx_Pedantic, no)])
-CXXFLAGS="$save_CXXFLAGS"])
-AS_IF([test AS_VAR_GET(acx_Pedantic) = yes],
- [acx_Var="$acx_Var${acx_Var:+ }-pedantic $1"])
-])
-AS_VAR_POPDEF([acx_Pedantic])dnl
-m4_popdef([acx_Woptions])dnl
-m4_popdef([acx_Var])dnl
-AC_LANG_POP(C++)
-])# ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC
-
-# ACX_PROG_CXX_WARNINGS_ARE_ERRORS([x.y.z], [VARIABLE = WERROR])
-# sets @VARIABLE@ to "-Werror" if the compiler is G++ >=x.y.z, or if
-# --enable-werror-always was given on the command line, otherwise
-# to nothing.
-# If the argument is the word "manual" instead of a version number,
-# then @VARIABLE@ will be set to -Werror only if --enable-werror-always
-# appeared on the configure command line.
-AC_DEFUN([ACX_PROG_CXX_WARNINGS_ARE_ERRORS],
-[AC_REQUIRE([AC_PROG_CXX])dnl
-AC_LANG_PUSH(C++)
-m4_pushdef([acx_Var], [m4_default([$2], [WERROR])])dnl
-AC_SUBST(acx_Var)dnl
-m4_expand_once([acx_Var=
-],m4_quote(acx_Var=))dnl
-AC_ARG_ENABLE(werror-always,
- AS_HELP_STRING([--enable-werror-always],
- [enable -Werror despite compiler version]),
-[], [enable_werror_always=no])
-AS_IF([test $enable_werror_always = yes],
- [acx_Var="$acx_Var${acx_Var:+ }-Werror"])
- m4_if($1, [manual],,
- [AS_VAR_PUSHDEF([acx_GXXvers], [acx_cv_prog_cxx_gxx_$1_or_newer])dnl
- AC_CACHE_CHECK([whether $CXX is G++ >=$1], acx_GXXvers,
- [set fnord `echo $1 | tr '.' ' '`
- shift
- AC_PREPROC_IFELSE(
-[#if __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ \
- < [$]1 * 10000 + [$]2 * 100 + [$]3
-#error insufficient
-#endif],
- [AS_VAR_SET(acx_GXXvers, yes)],
- [AS_VAR_SET(acx_GXXvers, no)])])
- AS_IF([test AS_VAR_GET(acx_GXXvers) = yes],
- [acx_Var="$acx_Var${acx_Var:+ }-Werror"])
- AS_VAR_POPDEF([acx_GXXvers])])
-m4_popdef([acx_Var])dnl
-AC_LANG_POP(C++)
-])# ACX_PROG_CXX_WARNINGS_ARE_ERRORS
diff --git a/fluent-bit/lib/libbacktrace-8602fda/configure b/fluent-bit/lib/libbacktrace-8602fda/configure
deleted file mode 100755
index 7dfba5e65..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/configure
+++ /dev/null
@@ -1,15569 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for package-unused version-unused.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1
-
- test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='package-unused'
-PACKAGE_TARNAME='libbacktrace'
-PACKAGE_VERSION='version-unused'
-PACKAGE_STRING='package-unused version-unused'
-PACKAGE_BUGREPORT=''
-PACKAGE_URL=''
-
-ac_unique_file="backtrace.h"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-NATIVE_FALSE
-NATIVE_TRUE
-HAVE_LIBLZMA_FALSE
-HAVE_LIBLZMA_TRUE
-HAVE_MINIDEBUG_FALSE
-HAVE_MINIDEBUG_TRUE
-HAVE_COMM_FALSE
-HAVE_COMM_TRUE
-COMM
-HAVE_XZ_FALSE
-HAVE_XZ_TRUE
-XZ
-USE_DSYMUTIL_FALSE
-USE_DSYMUTIL_TRUE
-HAVE_OBJCOPY_DEBUGLINK_FALSE
-HAVE_OBJCOPY_DEBUGLINK_TRUE
-READELF
-OBJCOPY
-HAVE_COMPRESSED_DEBUG_FALSE
-HAVE_COMPRESSED_DEBUG_TRUE
-HAVE_ZLIB_FALSE
-HAVE_ZLIB_TRUE
-HAVE_DWARF5_FALSE
-HAVE_DWARF5_TRUE
-HAVE_PTHREAD_FALSE
-HAVE_PTHREAD_TRUE
-PTHREAD_CFLAGS
-CLOCK_GETTIME_LINK
-BACKTRACE_USES_MALLOC
-ALLOC_FILE
-VIEW_FILE
-BACKTRACE_SUPPORTS_DATA
-BACKTRACE_SUPPORTED
-HAVE_ELF_FALSE
-HAVE_ELF_TRUE
-FORMAT_FILE
-BACKTRACE_SUPPORTS_THREADS
-PIC_FLAG
-WARN_FLAGS
-EXTRA_FLAGS
-BACKTRACE_FILE
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-AR
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-SED
-LIBTOOL
-HAVE_DWZ_FALSE
-HAVE_DWZ_TRUE
-DWZ
-RANLIB
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-libtool_VERSION
-EGREP
-GREP
-CPP
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-target_os
-target_vendor
-target_cpu
-target
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-multi_basedir
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_multilib
-enable_shared
-enable_silent_rules
-enable_maintainer_mode
-with_target_subdir
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-enable_libtool_lock
-enable_largefile
-enable_werror
-with_system_libunwind
-enable_host_shared
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-OBJCOPY
-DSYMUTIL
-NM'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures package-unused version-unused to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/libbacktrace]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
- --target=TARGET configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of package-unused version-unused:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-multilib build many library versions (default)
- --enable-shared[=PKGS] build shared libraries [default=no]
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-maintainer-mode
- enable make rules and dependencies not useful (and
- sometimes confusing) to the casual installer
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
- --disable-largefile omit support for large files
- --disable-werror disable building with -Werror
- --enable-host-shared build host code as shared libraries
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-target-subdir=SUBDIR Configuring in a subdirectory for target
- --with-pic try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-system-libunwind use installed libunwind
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
- OBJCOPY location of objcopy
- DSYMUTIL location of dsymutil
- NM location of nm
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to the package provider.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-package-unused configure version-unused
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- as_decl_name=`echo $2|sed 's/ *(.*//'`
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
- (void) $as_decl_use;
-#else
- (void) $as_decl_name;
-#endif
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_decl
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by package-unused $as_me version-unused, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-
-
-# with_target_subdir is used when configured as part of a GCC tree.
-if test -n "${with_target_subdir}"; then
- # Default to --enable-multilib
-# Check whether --enable-multilib was given.
-if test "${enable_multilib+set}" = set; then :
- enableval=$enable_multilib; case "$enableval" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) as_fn_error $? "bad value $enableval for multilib option" "$LINENO" 5 ;;
- esac
-else
- multilib=yes
-fi
-
-
-# We may get other options which we leave undocumented:
-# --with-target-subdir, --with-multisrctop, --with-multisubdir
-# See config-ml.in if you want the gory details.
-
-if test "$srcdir" = "."; then
- if test "$with_target_subdir" != "."; then
- multi_basedir="$srcdir/$with_multisrctop../.."
- else
- multi_basedir="$srcdir/$with_multisrctop.."
- fi
-else
- multi_basedir="$srcdir/.."
-fi
-
-
-# Even if the default multilib is not a cross compilation,
-# it may be that some of the other multilibs are.
-if test $cross_compiling = no && test $multilib = yes \
- && test "x${with_multisubdir}" != x ; then
- cross_compiling=maybe
-fi
-
-ac_config_commands="$ac_config_commands default-1"
-
-fi
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
-$as_echo_n "checking target system type... " >&6; }
-if ${ac_cv_target+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$target_alias" = x; then
- ac_cv_target=$ac_cv_host
-else
- ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
-$as_echo "$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-target_alias=${target_alias-$host_alias}
-
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
- MINIX=yes
-else
- MINIX=
-fi
-
-
- if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-# define __EXTENSIONS__ 1
- $ac_includes_default
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_safe_to_define___extensions__=yes
-else
- ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
- test $ac_cv_safe_to_define___extensions__ = yes &&
- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-
-
-# Default to not building a shared library.
-# Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=no
-fi
-
-
-
-
-
-
-
-
-
-
-libtool_VERSION=1:0:0
-
-
-# 1.11.1: Require that version of automake.
-# foreign: Don't require README, INSTALL, NEWS, etc.
-# no-define: Don't define PACKAGE and VERSION.
-# no-dependencies: Don't generate automatic dependencies.
-# (because it breaks when using bootstrap-lean, since some of the
-# headers are gone at "make install" time).
-# -Wall: Issue all automake warnings.
-# -Wno-portability: Don't warn about constructs supported by GNU make.
-# (because GCC requires GNU make anyhow).
-am__api_version='1.15'
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='libbacktrace'
- VERSION='version-unused'
-
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
- # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
- if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-
-# Check whether --with-target-subdir was given.
-if test "${with_target_subdir+set}" = set; then :
- withval=$with_target_subdir;
-fi
-
-
-# We must force CC to /not/ be precious variables; otherwise
-# the wrong, non-multilib-adjusted value will be used in multilibs.
-# As a side effect, we have to subst CFLAGS ourselves.
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-case "$AWK" in
-"") as_fn_error $? "can't build without awk" "$LINENO" 5 ;;
-esac
-
-# Extract the first word of "dwz", so it can be a program name with args.
-set dummy dwz; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DWZ+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DWZ"; then
- ac_cv_prog_DWZ="$DWZ" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DWZ="dwz"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DWZ=$ac_cv_prog_DWZ
-if test -n "$DWZ"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DWZ" >&5
-$as_echo "$DWZ" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- if test "$DWZ" != ""; then
- HAVE_DWZ_TRUE=
- HAVE_DWZ_FALSE='#'
-else
- HAVE_DWZ_TRUE='#'
- HAVE_DWZ_FALSE=
-fi
-
-
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.2.7a'
-macro_revision='1.3134'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case "$ECHO" in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="ar"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-else
- AR="$ac_cv_prog_AR"
-fi
-
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_save_LIBS="$LIBS"
- lt_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS="$lt_save_LIBS"
- CFLAGS="$lt_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-sparc*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_LIPO="lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
- # build without first building modern cctools / linker.
- case $host_cpu-$host_os in
- *-rhapsody* | *-darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- *-darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- *-darwin*)
- # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
- # deployment target is forced to an earlier version.
- case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
- UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
- ;;
- 10.[012][,.]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- *)
- ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
-
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; pic_mode="$withval"
-else
- pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- lt_prog_compiler_pic='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- lt_prog_compiler_pic='-Xcompiler -fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ F* | *Sun*Fortran*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_flag_spec_ld=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='${wl}--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec=
- hardcode_libdir_flag_spec_ld='-rpath $libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\(.*\)$/\1/
- p
- }
- }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\(.*\)$/\1/
- p
- }
- }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- fix_srcfile_path='`cygpath -w "$srcfile"`'
- enable_shared_with_static_runtimes=yes
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_flag_spec_ld='+b $libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo(void) {}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([A-Za-z]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-
-# uclinux* changes (here and below) have been submitted to the libtool
-# project, but have not yet been accepted: they are GCC-local changes
-# for the time being. (See
-# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line 11275 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line 11381 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report which library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-
-# Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
- enableval=$enable_largefile;
-fi
-
-if test "$enable_largefile" != no; then
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_sys_largefile_CC=no
- if test "$GCC" != yes; then
- ac_save_CC=$CC
- while :; do
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- if ac_fn_c_try_compile "$LINENO"; then :
- break
-fi
-rm -f core conftest.err conftest.$ac_objext
- CC="$CC -n32"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_largefile_CC=' -n32'; break
-fi
-rm -f core conftest.err conftest.$ac_objext
- break
- done
- CC=$ac_save_CC
- rm -f conftest.$ac_ext
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-$as_echo "$ac_cv_sys_largefile_CC" >&6; }
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if ${ac_cv_sys_file_offset_bits+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_file_offset_bits=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _FILE_OFFSET_BITS 64
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_file_offset_bits=64; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cv_sys_file_offset_bits=unknown
- break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
-case $ac_cv_sys_file_offset_bits in #(
- no | unknown) ;;
- *)
-cat >>confdefs.h <<_ACEOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
-;;
-esac
-rm -rf conftest*
- if test $ac_cv_sys_file_offset_bits = unknown; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if ${ac_cv_sys_large_files+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_large_files=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_large_files=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cv_sys_large_files=unknown
- break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-$as_echo "$ac_cv_sys_large_files" >&6; }
-case $ac_cv_sys_large_files in #(
- no | unknown) ;;
- *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
-;;
-esac
-rm -rf conftest*
- fi
-
-
-fi
-
-
-backtrace_supported=yes
-
-if test -n "${with_target_subdir}"; then
- # We are compiling a GCC library. We can assume that the unwind
- # library exists.
- BACKTRACE_FILE="backtrace.lo simple.lo"
-else
- ac_fn_c_check_header_mongrel "$LINENO" "unwind.h" "ac_cv_header_unwind_h" "$ac_includes_default"
-if test "x$ac_cv_header_unwind_h" = xyes; then :
- ac_fn_c_check_func "$LINENO" "_Unwind_Backtrace" "ac_cv_func__Unwind_Backtrace"
-if test "x$ac_cv_func__Unwind_Backtrace" = xyes; then :
- BACKTRACE_FILE="backtrace.lo simple.lo"
-else
- BACKTRACE_FILE="nounwind.lo"
- backtrace_supported=no
-fi
-
-else
- BACKTRACE_FILE="nounwind.lo"
- backtrace_supported=no
-fi
-
-
-fi
-
-
-EXTRA_FLAGS=
-if test -n "${with_target_subdir}"; then
- EXTRA_FLAGS="-funwind-tables -frandom-seed=\$@"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -funwind-tables option" >&5
-$as_echo_n "checking for -funwind-tables option... " >&6; }
-if ${libbacktrace_cv_c_unwind_tables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- CFLAGS_hold="$CFLAGS"
- CFLAGS="$CFLAGS -funwind-tables"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-static int f() { return 0; }
-int
-main ()
-{
-return f();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- libbacktrace_cv_c_unwind_tables=yes
-else
- libbacktrace_cv_c_unwind_tables=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$CFLAGS_hold"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_c_unwind_tables" >&5
-$as_echo "$libbacktrace_cv_c_unwind_tables" >&6; }
- if test "$libbacktrace_cv_c_unwind_tables" = "yes"; then
- EXTRA_FLAGS=-funwind-tables
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -frandom-seed=string option" >&5
-$as_echo_n "checking for -frandom-seed=string option... " >&6; }
-if ${libbacktrace_cv_c_random_seed_string+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- CFLAGS_hold="$CFLAGS"
- CFLAGS="$CFLAGS -frandom-seed=conftest.lo"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- libbacktrace_cv_c_random_seed_string=yes
-else
- libbacktrace_cv_c_random_seed_string=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$CFLAGS_hold"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_c_random_seed_string" >&5
-$as_echo "$libbacktrace_cv_c_random_seed_string" >&6; }
- if test "$libbacktrace_cv_c_random_seed_string" = "yes"; then
- EXTRA_FLAGS="$EXTRA_FLAGS -frandom-seed=\$@"
- fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-WARN_FLAGS=
-save_CFLAGS="$CFLAGS"
-for real_option in -W -Wall -Wwrite-strings -Wstrict-prototypes \
- -Wmissing-prototypes -Wold-style-definition \
- -Wmissing-format-attribute -Wcast-qual; do
- # Do the check with the no- prefix removed since gcc silently
- # accepts any -Wno-* option on purpose
- case $real_option in
- -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
- *) option=$real_option ;;
- esac
- as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
-$as_echo_n "checking whether $CC supports $option... " >&6; }
-if eval \${$as_acx_Woption+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- CFLAGS="$option"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$as_acx_Woption=yes"
-else
- eval "$as_acx_Woption=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-eval ac_res=\$$as_acx_Woption
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
- WARN_FLAGS="$WARN_FLAGS${WARN_FLAGS:+ }$real_option"
-fi
- done
-CFLAGS="$save_CFLAGS"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# Check whether --enable-werror was given.
-if test "${enable_werror+set}" = set; then :
- enableval=$enable_werror;
-fi
-
-if test "x$enable_werror" != "xno" && test -n "${with_target_subdir}"; then :
- WARN_FLAGS="$WARN_FLAGS -Werror"
-fi
-
-
-
-if test -n "${with_target_subdir}"; then
-
-
-# Check whether --with-system-libunwind was given.
-if test "${with_system_libunwind+set}" = set; then :
- withval=$with_system_libunwind;
-fi
-
- # If system-libunwind was not specifically set, pick a default setting.
- if test x$with_system_libunwind = x; then
- case ${target} in
- ia64-*-hpux*) with_system_libunwind=yes ;;
- *) with_system_libunwind=no ;;
- esac
- fi
- # Based on system-libunwind and target, do we have ipinfo?
- if test x$with_system_libunwind = xyes; then
- case ${target} in
- ia64-*-*) have_unwind_getipinfo=no ;;
- *) have_unwind_getipinfo=yes ;;
- esac
- else
- # Darwin before version 9 does not have _Unwind_GetIPInfo.
-
- case ${target} in
- *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
- *) have_unwind_getipinfo=yes ;;
- esac
-
- fi
-
- if test x$have_unwind_getipinfo = xyes; then
-
-$as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
-
- fi
-
-else
- ac_save_CFFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror-implicit-function-declaration"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _Unwind_GetIPInfo" >&5
-$as_echo_n "checking for _Unwind_GetIPInfo... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include "unwind.h"
- struct _Unwind_Context *context;
- int ip_before_insn = 0;
-int
-main ()
-{
-return _Unwind_GetIPInfo (context, &ip_before_insn);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- have_unwind_getipinfo=yes
-else
- have_unwind_getipinfo=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- CFLAGS="$ac_save_CFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_unwind_getipinfo" >&5
-$as_echo "$have_unwind_getipinfo" >&6; }
- if test "$have_unwind_getipinfo" = "yes"; then
-
-$as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
-
- fi
-fi
-
-# Enable --enable-host-shared.
-# Check whether --enable-host-shared was given.
-if test "${enable_host_shared+set}" = set; then :
- enableval=$enable_host_shared; PIC_FLAG=-fPIC
-else
- PIC_FLAG=
-fi
-
-
-
-# Test for __sync support.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking __sync extensions" >&5
-$as_echo_n "checking __sync extensions... " >&6; }
-if ${libbacktrace_cv_sys_sync+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "${with_target_subdir}"; then
- case "${host}" in
- hppa*-*-hpux*) libbacktrace_cv_sys_sync=no ;;
- *) libbacktrace_cv_sys_sync=yes ;;
- esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int i;
-int
-main ()
-{
-__sync_bool_compare_and_swap (&i, i, i);
- __sync_lock_test_and_set (&i, 1);
- __sync_lock_release (&i);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- libbacktrace_cv_sys_sync=yes
-else
- libbacktrace_cv_sys_sync=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_sys_sync" >&5
-$as_echo "$libbacktrace_cv_sys_sync" >&6; }
-BACKTRACE_SUPPORTS_THREADS=0
-if test "$libbacktrace_cv_sys_sync" = "yes"; then
- BACKTRACE_SUPPORTS_THREADS=1
-
-$as_echo "#define HAVE_SYNC_FUNCTIONS 1" >>confdefs.h
-
-fi
-
-
-# Test for __atomic support.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking __atomic extensions" >&5
-$as_echo_n "checking __atomic extensions... " >&6; }
-if ${libbacktrace_cv_sys_atomic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "${with_target_subdir}"; then
- libbacktrace_cv_sys_atomic=yes
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int i;
-int
-main ()
-{
-__atomic_load_n (&i, __ATOMIC_ACQUIRE);
- __atomic_store_n (&i, 1, __ATOMIC_RELEASE);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- libbacktrace_cv_sys_atomic=yes
-else
- libbacktrace_cv_sys_atomic=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_sys_atomic" >&5
-$as_echo "$libbacktrace_cv_sys_atomic" >&6; }
-if test "$libbacktrace_cv_sys_atomic" = "yes"; then
-
-$as_echo "#define HAVE_ATOMIC_FUNCTIONS 1" >>confdefs.h
-
-fi
-
-# The library needs to be able to read the executable itself. Compile
-# a file to determine the executable format. The awk script
-# filetype.awk prints out the file type.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking output filetype" >&5
-$as_echo_n "checking output filetype... " >&6; }
-if ${libbacktrace_cv_sys_filetype+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- filetype=
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int i;
-int
-main ()
-{
-int j;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- filetype=`${AWK} -f $srcdir/filetype.awk conftest.$ac_objext`
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "compiler failed
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-libbacktrace_cv_sys_filetype=$filetype
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_sys_filetype" >&5
-$as_echo "$libbacktrace_cv_sys_filetype" >&6; }
-
-# Match the file type to decide what files to compile.
-FORMAT_FILE=
-backtrace_supports_data=yes
-case "$libbacktrace_cv_sys_filetype" in
-elf*) FORMAT_FILE="elf.lo" ;;
-macho) FORMAT_FILE="macho.lo" ;;
-pecoff) FORMAT_FILE="pecoff.lo"
- backtrace_supports_data=no
- ;;
-xcoff*) FORMAT_FILE="xcoff.lo"
- backtrace_supports_data=no
- ;;
-*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not determine output file type" >&5
-$as_echo "$as_me: WARNING: could not determine output file type" >&2;}
- FORMAT_FILE="unknown.lo"
- backtrace_supported=no
- ;;
-esac
-
-
-# ELF defines.
-elfsize=
-case "$libbacktrace_cv_sys_filetype" in
-elf32) elfsize=32 ;;
-elf64) elfsize=64 ;;
-*) elfsize=unused
-esac
-
-cat >>confdefs.h <<_ACEOF
-#define BACKTRACE_ELF_SIZE $elfsize
-_ACEOF
-
- if test "$FORMAT_FILE" = "elf.lo"; then
- HAVE_ELF_TRUE=
- HAVE_ELF_FALSE='#'
-else
- HAVE_ELF_TRUE='#'
- HAVE_ELF_FALSE=
-fi
-
-
-# XCOFF defines.
-xcoffsize=
-case "$libbacktrace_cv_sys_filetype" in
-xcoff32) xcoffsize=32 ;;
-xcoff64) xcoffsize=64 ;;
-*) xcoffsize=unused
-esac
-
-cat >>confdefs.h <<_ACEOF
-#define BACKTRACE_XCOFF_SIZE $xcoffsize
-_ACEOF
-
-
-BACKTRACE_SUPPORTED=0
-if test "$backtrace_supported" = "yes"; then
- BACKTRACE_SUPPORTED=1
-fi
-
-
-BACKTRACE_SUPPORTS_DATA=0
-if test "$backtrace_supports_data" = "yes"; then
- BACKTRACE_SUPPORTS_DATA=1
-fi
-
-
-for ac_header in sys/mman.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_mman_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_MMAN_H 1
-_ACEOF
-
-fi
-
-done
-
-if test "$ac_cv_header_sys_mman_h" = "no"; then
- have_mmap=no
-else
- if test -n "${with_target_subdir}"; then
- # When built as a GCC target library, we can't do a link test. We
- # simply assume that if we have mman.h, we have mmap.
- have_mmap=yes
- case "${host}" in
- spu-*-*|*-*-msdosdjgpp)
- # The SPU does not have mmap, but it has a sys/mman.h header file
- # containing "mmap_eaddr" and the mmap flags, confusing the test.
- # DJGPP also has sys/man.h, but no mmap
- have_mmap=no ;;
- esac
- else
- ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = xyes; then :
- have_mmap=yes
-else
- have_mmap=no
-fi
-
- fi
-fi
-if test "$have_mmap" = "no"; then
- VIEW_FILE=read.lo
- ALLOC_FILE=alloc.lo
-else
- VIEW_FILE=mmapio.lo
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <sys/mman.h>
-#if !defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
- #error no MAP_ANONYMOUS
-#endif
-
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ALLOC_FILE=mmap.lo
-else
- ALLOC_FILE=alloc.lo
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-fi
-
-
-
-BACKTRACE_USES_MALLOC=0
-if test "$ALLOC_FILE" = "alloc.lo"; then
- BACKTRACE_USES_MALLOC=1
-fi
-
-
-# Check for dl_iterate_phdr.
-for ac_header in link.h sys/link.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-if test "$ac_cv_header_link_h" = "no" -a "$ac_cv_header_sys_link_h" = "no"; then
- have_dl_iterate_phdr=no
-else
- if test -n "${with_target_subdir}"; then
- link_h=link.h
- if test "$ac_cv_header_link_h" = "no"; then
- link_h=sys/link.h
- fi
- # When built as a GCC target library, we can't do a link test.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$link_h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "dl_iterate_phdr" >/dev/null 2>&1; then :
- have_dl_iterate_phdr=yes
-else
- have_dl_iterate_phdr=no
-fi
-rm -f conftest*
-
- case "${host}" in
- *-*-solaris2.10*)
- # Avoid dl_iterate_phdr on Solaris 10, where it is in the
- # header file but is only in -ldl.
- have_dl_iterate_phdr=no ;;
- esac
- else
- ac_fn_c_check_func "$LINENO" "dl_iterate_phdr" "ac_cv_func_dl_iterate_phdr"
-if test "x$ac_cv_func_dl_iterate_phdr" = xyes; then :
- have_dl_iterate_phdr=yes
-else
- have_dl_iterate_phdr=no
-fi
-
- fi
-fi
-if test "$have_dl_iterate_phdr" = "yes"; then
-
-$as_echo "#define HAVE_DL_ITERATE_PHDR 1" >>confdefs.h
-
-fi
-
-# Check for header file for Mach-O image functions.
-for ac_header in mach-o/dyld.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "mach-o/dyld.h" "ac_cv_header_mach_o_dyld_h" "$ac_includes_default"
-if test "x$ac_cv_header_mach_o_dyld_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_MACH_O_DYLD_H 1
-_ACEOF
-
-fi
-
-done
-
-
-# Check for loadquery.
-for ac_header in sys/ldr.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "sys/ldr.h" "ac_cv_header_sys_ldr_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_ldr_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_LDR_H 1
-_ACEOF
-
-fi
-
-done
-
-if test "$ac_cv_header_sys_ldr_h" = "no"; then
- have_loadquery=no
-else
- if test -n "${with_target_subdir}"; then
- # When built as a GCC target library, we can't do a link test.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/ldr.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "loadquery" >/dev/null 2>&1; then :
- have_loadquery=yes
-else
- have_loadquery=no
-fi
-rm -f conftest*
-
- else
- ac_fn_c_check_func "$LINENO" "loadquery" "ac_cv_func_loadquery"
-if test "x$ac_cv_func_loadquery" = xyes; then :
- have_loadquery=yes
-else
- have_loadquery=no
-fi
-
- fi
-fi
-if test "$have_loadquery" = "yes"; then
-
-$as_echo "#define HAVE_LOADQUERY 1" >>confdefs.h
-
-fi
-
-# Check for the fcntl function.
-if test -n "${with_target_subdir}"; then
- case "${host}" in
- *-*-mingw*) have_fcntl=no ;;
- spu-*-*) have_fcntl=no ;;
- *) have_fcntl=yes ;;
- esac
-else
- ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl"
-if test "x$ac_cv_func_fcntl" = xyes; then :
- have_fcntl=yes
-else
- have_fcntl=no
-fi
-
-fi
-if test "$have_fcntl" = "yes"; then
-
-$as_echo "#define HAVE_FCNTL 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strnlen" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNLEN $ac_have_decl
-_ACEOF
-ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getpagesize" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETPAGESIZE $ac_have_decl
-_ACEOF
-
-for ac_func in lstat readlink
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-# Check for getexecname function.
-if test -n "${with_target_subdir}"; then
- case "${host}" in
- *-*-solaris2*) have_getexecname=yes ;;
- *) have_getexecname=no ;;
- esac
-else
- ac_fn_c_check_func "$LINENO" "getexecname" "ac_cv_func_getexecname"
-if test "x$ac_cv_func_getexecname" = xyes; then :
- have_getexecname=yes
-else
- have_getexecname=no
-fi
-
-fi
-if test "$have_getexecname" = "yes"; then
-
-$as_echo "#define HAVE_GETEXECNAME 1" >>confdefs.h
-
-fi
-
-# Check for sysctl definitions.
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for KERN_PROC" >&5
-$as_echo_n "checking for KERN_PROC... " >&6; }
-if ${libbacktrace_cv_proc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <sys/types.h>
-#include <sys/sysctl.h>
-
-int
-main ()
-{
-int mib0 = CTL_KERN; int mib1 = KERN_PROC; int mib2 = KERN_PROC_PATHNAME;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- libbacktrace_cv_proc=yes
-else
- libbacktrace_cv_proc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_proc" >&5
-$as_echo "$libbacktrace_cv_proc" >&6; }
-if test "$libbacktrace_cv_proc" = "yes"; then
-
-$as_echo "#define HAVE_KERN_PROC 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for KERN_PROG_ARGS" >&5
-$as_echo_n "checking for KERN_PROG_ARGS... " >&6; }
-if ${libbacktrace_cv_procargs+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <sys/types.h>
-#include <sys/sysctl.h>
-
-int
-main ()
-{
-int mib0 = CTL_KERN; int mib1 = KERN_PROC_ARGS; int mib2 = KERN_PROC_PATHNAME;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- libbacktrace_cv_procargs=yes
-else
- libbacktrace_cv_procargs=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_procargs" >&5
-$as_echo "$libbacktrace_cv_procargs" >&6; }
-if test "$libbacktrace_cv_procargs" = "yes"; then
-
-$as_echo "#define HAVE_KERN_PROC_ARGS 1" >>confdefs.h
-
-fi
-
-# Check for the clock_gettime function.
-for ac_func in clock_gettime
-do :
- ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
-if test "x$ac_cv_func_clock_gettime" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_CLOCK_GETTIME 1
-_ACEOF
-
-fi
-done
-
-clock_gettime_link=
-# At least for glibc, clock_gettime is in librt. But don't
-# pull that in if it still doesn't give us the function we want. This
-# test is copied from libgomp, and modified to not link in -lrt as
-# we're using this for test timing only.
-if test "$ac_cv_func_clock_gettime" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
-$as_echo_n "checking for clock_gettime in -lrt... " >&6; }
-if ${ac_cv_lib_rt_clock_gettime+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lrt $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char clock_gettime ();
-int
-main ()
-{
-return clock_gettime ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_rt_clock_gettime=yes
-else
- ac_cv_lib_rt_clock_gettime=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5
-$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
-if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :
- CLOCK_GETTIME_LINK=-lrt
-
-$as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
-
-fi
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is supported" >&5
-$as_echo_n "checking whether -pthread is supported... " >&6; }
-if ${libgo_cv_lib_pthread+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- CFLAGS_hold=$CFLAGS
-CFLAGS="$CFLAGS -pthread"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int i;
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- libgo_cv_lib_pthread=yes
-else
- libgo_cv_lib_pthread=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-CFLAGS=$CFLAGS_hold
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_lib_pthread" >&5
-$as_echo "$libgo_cv_lib_pthread" >&6; }
-PTHREAD_CFLAGS=
-if test "$libgo_cv_lib_pthread" = yes; then
- PTHREAD_CFLAGS=-pthread
-fi
-
-
- if test "$libgo_cv_lib_pthread" = yes; then
- HAVE_PTHREAD_TRUE=
- HAVE_PTHREAD_FALSE='#'
-else
- HAVE_PTHREAD_TRUE='#'
- HAVE_PTHREAD_FALSE=
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -gdwarf-5 is supported" >&5
-$as_echo_n "checking whether -gdwarf-5 is supported... " >&6; }
-if ${libbacktrace_cv_lib_dwarf5+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- CFLAGS_hold=$CFLAGS
-CFLAGS="$CFLAGS -gdwarf-5"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int i;
-int
-main ()
-{
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- libbacktrace_cv_lib_dwarf5=yes
-else
- libbacktrace_cv_lib_dwarf5=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-CFLAGS=$CFLAGS_hold
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_lib_dwarf5" >&5
-$as_echo "$libbacktrace_cv_lib_dwarf5" >&6; }
- if test "$libbacktrace_cv_lib_dwarf5" = yes; then
- HAVE_DWARF5_TRUE=
- HAVE_DWARF5_FALSE='#'
-else
- HAVE_DWARF5_TRUE='#'
- HAVE_DWARF5_FALSE=
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
-$as_echo_n "checking for compress in -lz... " >&6; }
-if ${ac_cv_lib_z_compress+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char compress ();
-int
-main ()
-{
-return compress ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_z_compress=yes
-else
- ac_cv_lib_z_compress=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
-$as_echo "$ac_cv_lib_z_compress" >&6; }
-if test "x$ac_cv_lib_z_compress" = xyes; then :
-
-$as_echo "#define HAVE_ZLIB 1" >>confdefs.h
-
-fi
-
- if test "$ac_cv_lib_z_compress" = yes; then
- HAVE_ZLIB_TRUE=
- HAVE_ZLIB_FALSE='#'
-else
- HAVE_ZLIB_TRUE='#'
- HAVE_ZLIB_FALSE=
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --compress-debug-sections is supported" >&5
-$as_echo_n "checking whether --compress-debug-sections is supported... " >&6; }
-if ${libgo_cv_ld_compress+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- LDFLAGS_hold=$LDFLAGS
-LDFLAGS="$LDFLAGS -Wl,--compress-debug-sections=zlib-gnu"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- libgo_cv_ld_compress=yes
-else
- libgo_cv_ld_compress=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LDFLAGS=$LDFLAGS_hold
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_ld_compress" >&5
-$as_echo "$libgo_cv_ld_compress" >&6; }
- if test "$libgo_cv_ld_compress" = yes; then
- HAVE_COMPRESSED_DEBUG_TRUE=
- HAVE_COMPRESSED_DEBUG_FALSE='#'
-else
- HAVE_COMPRESSED_DEBUG_TRUE='#'
- HAVE_COMPRESSED_DEBUG_FALSE=
-fi
-
-
-
-# Extract the first word of "objcopy", so it can be a program name with args.
-set dummy objcopy; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJCOPY+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJCOPY"; then
- ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJCOPY="objcopy"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJCOPY=$ac_cv_prog_OBJCOPY
-if test -n "$OBJCOPY"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
-$as_echo "$OBJCOPY" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "readelf", so it can be a program name with args.
-set dummy readelf; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_READELF+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$READELF"; then
- ac_cv_prog_READELF="$READELF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_READELF="readelf"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-READELF=$ac_cv_prog_READELF
-if test -n "$READELF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
-$as_echo "$READELF" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether objcopy supports debuglink" >&5
-$as_echo_n "checking whether objcopy supports debuglink... " >&6; }
-if ${libbacktrace_cv_objcopy_debuglink+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "${with_target_subdir}"; then
- libbacktrace_cv_objcopy_debuglink=no
-elif ! test -n "${OBJCOPY}"; then
- libbacktrace_cv_objcopy_debuglink=no
-elif ${OBJCOPY} --help | grep add-gnu-debuglink >/dev/null 2>&1; then
- libbacktrace_cv_objcopy_debuglink=yes
-else
- libbacktrace_cv_objcopy_debuglink=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_objcopy_debuglink" >&5
-$as_echo "$libbacktrace_cv_objcopy_debuglink" >&6; }
- if test "$libbacktrace_cv_objcopy_debuglink" = yes; then
- HAVE_OBJCOPY_DEBUGLINK_TRUE=
- HAVE_OBJCOPY_DEBUGLINK_FALSE='#'
-else
- HAVE_OBJCOPY_DEBUGLINK_TRUE='#'
- HAVE_OBJCOPY_DEBUGLINK_FALSE=
-fi
-
-
-
-# Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- if test -n "${DSYMUTIL}" -a "$FORMAT_FILE" = "macho.lo"; then
- USE_DSYMUTIL_TRUE=
- USE_DSYMUTIL_FALSE='#'
-else
- USE_DSYMUTIL_TRUE='#'
- USE_DSYMUTIL_FALSE=
-fi
-
-
-
-# Extract the first word of "nm", so it can be a program name with args.
-set dummy nm; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- ac_cv_prog_NM="$NM" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_NM="nm"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-NM=$ac_cv_prog_NM
-if test -n "$NM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
-$as_echo "$NM" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-# Extract the first word of "xz", so it can be a program name with args.
-set dummy xz; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_XZ+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$XZ"; then
- ac_cv_prog_XZ="$XZ" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_XZ="xz"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-XZ=$ac_cv_prog_XZ
-if test -n "$XZ"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XZ" >&5
-$as_echo "$XZ" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- if test "$XZ" != ""; then
- HAVE_XZ_TRUE=
- HAVE_XZ_FALSE='#'
-else
- HAVE_XZ_TRUE='#'
- HAVE_XZ_FALSE=
-fi
-
-# Extract the first word of "comm", so it can be a program name with args.
-set dummy comm; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_COMM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$COMM"; then
- ac_cv_prog_COMM="$COMM" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_COMM="comm"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-COMM=$ac_cv_prog_COMM
-if test -n "$COMM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMM" >&5
-$as_echo "$COMM" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- if test "$COMM" != ""; then
- HAVE_COMM_TRUE=
- HAVE_COMM_FALSE='#'
-else
- HAVE_COMM_TRUE='#'
- HAVE_COMM_FALSE=
-fi
-
-
- if test "${with_target_subdir}" = "" -a "$FORMAT_FILE" = "elf.lo" -a "${OBJCOPY}" != "" -a "${NM}" != "" -a "${XZ}" != "" -a "${COMM}" != ""; then
- HAVE_MINIDEBUG_TRUE=
- HAVE_MINIDEBUG_FALSE='#'
-else
- HAVE_MINIDEBUG_TRUE='#'
- HAVE_MINIDEBUG_FALSE=
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_auto_decoder in -llzma" >&5
-$as_echo_n "checking for lzma_auto_decoder in -llzma... " >&6; }
-if ${ac_cv_lib_lzma_lzma_auto_decoder+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-llzma $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char lzma_auto_decoder ();
-int
-main ()
-{
-return lzma_auto_decoder ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_lzma_lzma_auto_decoder=yes
-else
- ac_cv_lib_lzma_lzma_auto_decoder=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_auto_decoder" >&5
-$as_echo "$ac_cv_lib_lzma_lzma_auto_decoder" >&6; }
-if test "x$ac_cv_lib_lzma_lzma_auto_decoder" = xyes; then :
-
-$as_echo "#define HAVE_LIBLZMA 1" >>confdefs.h
-
-fi
-
- if test "$ac_cv_lib_lzma_lzma_auto_decoder" = yes; then
- HAVE_LIBLZMA_TRUE=
- HAVE_LIBLZMA_FALSE='#'
-else
- HAVE_LIBLZMA_TRUE='#'
- HAVE_LIBLZMA_FALSE=
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether tests can run" >&5
-$as_echo_n "checking whether tests can run... " >&6; }
-if ${libbacktrace_cv_sys_native+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- libbacktrace_cv_sys_native=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- libbacktrace_cv_sys_native=yes
-else
- libbacktrace_cv_sys_native=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_sys_native" >&5
-$as_echo "$libbacktrace_cv_sys_native" >&6; }
- if test "$libbacktrace_cv_sys_native" = "yes"; then
- NATIVE_TRUE=
- NATIVE_FALSE='#'
-else
- NATIVE_TRUE='#'
- NATIVE_FALSE=
-fi
-
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-ac_config_files="$ac_config_files Makefile backtrace-supported.h"
-
-ac_config_files="$ac_config_files install-debuginfo-for-buildid.sh"
-
-
-# We need multilib support, but only if configuring for the target.
-ac_config_commands="$ac_config_commands default"
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_DWZ_TRUE}" && test -z "${HAVE_DWZ_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_DWZ\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_ELF_TRUE}" && test -z "${HAVE_ELF_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_ELF\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_PTHREAD_TRUE}" && test -z "${HAVE_PTHREAD_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_PTHREAD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_DWARF5_TRUE}" && test -z "${HAVE_DWARF5_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_DWARF5\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_ZLIB\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_COMPRESSED_DEBUG_TRUE}" && test -z "${HAVE_COMPRESSED_DEBUG_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_COMPRESSED_DEBUG\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_OBJCOPY_DEBUGLINK_TRUE}" && test -z "${HAVE_OBJCOPY_DEBUGLINK_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_OBJCOPY_DEBUGLINK\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_DSYMUTIL_TRUE}" && test -z "${USE_DSYMUTIL_FALSE}"; then
- as_fn_error $? "conditional \"USE_DSYMUTIL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_XZ_TRUE}" && test -z "${HAVE_XZ_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_XZ\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_COMM_TRUE}" && test -z "${HAVE_COMM_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_COMM\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_MINIDEBUG_TRUE}" && test -z "${HAVE_MINIDEBUG_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_MINIDEBUG\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_LIBLZMA_TRUE}" && test -z "${HAVE_LIBLZMA_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_LIBLZMA\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${NATIVE_TRUE}" && test -z "${NATIVE_FALSE}"; then
- as_fn_error $? "conditional \"NATIVE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by package-unused $as_me version-unused, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-package-unused config.status version-unused
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-
-srcdir="$srcdir"
-host="$host"
-target="$target"
-with_multisubdir="$with_multisubdir"
-with_multisrctop="$with_multisrctop"
-with_target_subdir="$with_target_subdir"
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-multi_basedir="$multi_basedir"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-CC="$CC"
-CXX="$CXX"
-GFORTRAN="$GFORTRAN"
-GDC="$GDC"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-AR \
-AR_FLAGS \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
-lt_prog_compiler_pic \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
-hardcode_libdir_separator \
-fix_srcfile_path \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-# Variables needed in config.status (file generation) which aren't already
-# passed by autoconf.
-SUBDIRS="$SUBDIRS"
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "backtrace-supported.h") CONFIG_FILES="$CONFIG_FILES backtrace-supported.h" ;;
- "install-debuginfo-for-buildid.sh") CONFIG_FILES="$CONFIG_FILES install-debuginfo-for-buildid.sh" ;;
- "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "default-1":C)
-# Only add multilib support code if we just rebuilt the top-level
-# Makefile.
-case " $CONFIG_FILES " in
- *" Makefile "*)
- ac_file=Makefile . ${multi_basedir}/config-ml.in
- ;;
-esac ;;
- "libtool":C)
-
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags=""
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking. This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- case $xsi_shell in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=${1%%=*}
- func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=${#1}
-}
-
-_LT_EOF
- ;;
- *) # Bourne compatible functions.
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$1+=\$2"
-}
-_LT_EOF
- ;;
- *)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$1=\$$1\$2"
-}
-
-_LT_EOF
- ;;
- esac
-
-
- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
- ;;
- "install-debuginfo-for-buildid.sh":F) chmod +x install-debuginfo-for-buildid.sh ;;
- "default":C) if test -n "$CONFIG_FILES"; then
- if test -n "${with_target_subdir}"; then
- # Multilibs need MULTISUBDIR defined correctly in certain makefiles so
- # that multilib installs will end up installed in the correct place.
- # The testsuite needs it for multilib-aware ABI baseline files.
- # To work around this not being passed down from config-ml.in ->
- # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually
- # append it here. Only modify Makefiles that have just been created.
- #
- # Also, get rid of this simulated-VPATH thing that automake does.
- cat > vpsed << \_EOF
- s!`test -f '$<' || echo '$(srcdir)/'`!!
-_EOF
- for i in $SUBDIRS; do
- case $CONFIG_FILES in
- *${i}/Makefile*)
- #echo "Adding MULTISUBDIR to $i/Makefile"
- sed -f vpsed $i/Makefile > tmp
- grep '^MULTISUBDIR =' Makefile >> tmp
- mv tmp $i/Makefile
- ;;
- esac
- done
- rm vpsed
- fi
- fi
- ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/fluent-bit/lib/libbacktrace-8602fda/configure.ac b/fluent-bit/lib/libbacktrace-8602fda/configure.ac
deleted file mode 100644
index 2857e74e9..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/configure.ac
+++ /dev/null
@@ -1,582 +0,0 @@
-# configure.ac -- Backtrace configure script.
-# Copyright (C) 2012-2021 Free Software Foundation, Inc.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-# (1) Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-
-# (2) Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-
-# (3) The name of the author may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-AC_PREREQ(2.69)
-AC_INIT(package-unused, version-unused,, libbacktrace)
-AC_CONFIG_SRCDIR(backtrace.h)
-AC_CONFIG_HEADER(config.h)
-AC_CONFIG_MACRO_DIR(config)
-
-# with_target_subdir is used when configured as part of a GCC tree.
-if test -n "${with_target_subdir}"; then
- AM_ENABLE_MULTILIB(, ..)
-fi
-
-AC_CANONICAL_SYSTEM
-target_alias=${target_alias-$host_alias}
-
-AC_USE_SYSTEM_EXTENSIONS
-
-# Default to not building a shared library.
-AC_DISABLE_SHARED
-
-libtool_VERSION=1:0:0
-AC_SUBST(libtool_VERSION)
-
-# 1.11.1: Require that version of automake.
-# foreign: Don't require README, INSTALL, NEWS, etc.
-# no-define: Don't define PACKAGE and VERSION.
-# no-dependencies: Don't generate automatic dependencies.
-# (because it breaks when using bootstrap-lean, since some of the
-# headers are gone at "make install" time).
-# -Wall: Issue all automake warnings.
-# -Wno-portability: Don't warn about constructs supported by GNU make.
-# (because GCC requires GNU make anyhow).
-AM_INIT_AUTOMAKE([1.11.1 foreign no-dist no-define no-dependencies -Wall -Wno-portability])
-
-AM_MAINTAINER_MODE
-
-AC_ARG_WITH(target-subdir,
-[ --with-target-subdir=SUBDIR Configuring in a subdirectory for target])
-
-# We must force CC to /not/ be precious variables; otherwise
-# the wrong, non-multilib-adjusted value will be used in multilibs.
-# As a side effect, we have to subst CFLAGS ourselves.
-m4_rename([_AC_ARG_VAR_PRECIOUS],[backtrace_PRECIOUS])
-m4_define([_AC_ARG_VAR_PRECIOUS],[])
-AC_PROG_CC
-m4_rename_force([backtrace_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
-
-AC_SUBST(CFLAGS)
-
-AC_PROG_RANLIB
-
-AC_PROG_AWK
-case "$AWK" in
-"") AC_MSG_ERROR([can't build without awk]) ;;
-esac
-
-AC_CHECK_PROG(DWZ, dwz, dwz)
-AM_CONDITIONAL(HAVE_DWZ, test "$DWZ" != "")
-
-LT_INIT
-AM_PROG_LIBTOOL
-
-AC_SYS_LARGEFILE
-
-backtrace_supported=yes
-
-if test -n "${with_target_subdir}"; then
- # We are compiling a GCC library. We can assume that the unwind
- # library exists.
- BACKTRACE_FILE="backtrace.lo simple.lo"
-else
- AC_CHECK_HEADER([unwind.h],
- [AC_CHECK_FUNC([_Unwind_Backtrace],
- [BACKTRACE_FILE="backtrace.lo simple.lo"],
- [BACKTRACE_FILE="nounwind.lo"
- backtrace_supported=no])],
- [BACKTRACE_FILE="nounwind.lo"
- backtrace_supported=no])
-fi
-AC_SUBST(BACKTRACE_FILE)
-
-EXTRA_FLAGS=
-if test -n "${with_target_subdir}"; then
- EXTRA_FLAGS="-funwind-tables -frandom-seed=\$@"
-else
- AC_CACHE_CHECK([for -funwind-tables option],
- [libbacktrace_cv_c_unwind_tables],
- [CFLAGS_hold="$CFLAGS"
- CFLAGS="$CFLAGS -funwind-tables"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([static int f() { return 0; }], [return f();])],
- [libbacktrace_cv_c_unwind_tables=yes],
- [libbacktrace_cv_c_unwind_tables=no])
- CFLAGS="$CFLAGS_hold"])
- if test "$libbacktrace_cv_c_unwind_tables" = "yes"; then
- EXTRA_FLAGS=-funwind-tables
- fi
- AC_CACHE_CHECK([for -frandom-seed=string option],
- [libbacktrace_cv_c_random_seed_string],
- [CFLAGS_hold="$CFLAGS"
- CFLAGS="$CFLAGS -frandom-seed=conftest.lo"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([], [return 0;])],
- [libbacktrace_cv_c_random_seed_string=yes],
- [libbacktrace_cv_c_random_seed_string=no])
- CFLAGS="$CFLAGS_hold"])
- if test "$libbacktrace_cv_c_random_seed_string" = "yes"; then
- EXTRA_FLAGS="$EXTRA_FLAGS -frandom-seed=\$@"
- fi
-fi
-AC_SUBST(EXTRA_FLAGS)
-
-ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
- -Wmissing-prototypes -Wold-style-definition \
- -Wmissing-format-attribute -Wcast-qual],
- [WARN_FLAGS])
-
-AC_ARG_ENABLE([werror],
- [AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
-AS_IF([test "x$enable_werror" != "xno" && test -n "${with_target_subdir}"],
- [WARN_FLAGS="$WARN_FLAGS -Werror"])
-
-AC_SUBST(WARN_FLAGS)
-
-if test -n "${with_target_subdir}"; then
- GCC_CHECK_UNWIND_GETIPINFO
-else
- ac_save_CFFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror-implicit-function-declaration"
- AC_MSG_CHECKING([for _Unwind_GetIPInfo])
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [#include "unwind.h"
- struct _Unwind_Context *context;
- int ip_before_insn = 0;],
- [return _Unwind_GetIPInfo (context, &ip_before_insn);])],
- [have_unwind_getipinfo=yes], [have_unwind_getipinfo=no])
- CFLAGS="$ac_save_CFLAGS"
- AC_MSG_RESULT([$have_unwind_getipinfo])
- if test "$have_unwind_getipinfo" = "yes"; then
- AC_DEFINE(HAVE_GETIPINFO, 1, [Define if _Unwind_GetIPInfo is available.])
- fi
-fi
-
-# Enable --enable-host-shared.
-AC_ARG_ENABLE(host-shared,
-[AS_HELP_STRING([--enable-host-shared],
- [build host code as shared libraries])],
-[PIC_FLAG=-fPIC], [PIC_FLAG=])
-AC_SUBST(PIC_FLAG)
-
-# Test for __sync support.
-AC_CACHE_CHECK([__sync extensions],
-[libbacktrace_cv_sys_sync],
-[if test -n "${with_target_subdir}"; then
- case "${host}" in
- hppa*-*-hpux*) libbacktrace_cv_sys_sync=no ;;
- *) libbacktrace_cv_sys_sync=yes ;;
- esac
- else
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([int i;],
- [__sync_bool_compare_and_swap (&i, i, i);
- __sync_lock_test_and_set (&i, 1);
- __sync_lock_release (&i);])],
- [libbacktrace_cv_sys_sync=yes],
- [libbacktrace_cv_sys_sync=no])
- fi])
-BACKTRACE_SUPPORTS_THREADS=0
-if test "$libbacktrace_cv_sys_sync" = "yes"; then
- BACKTRACE_SUPPORTS_THREADS=1
- AC_DEFINE([HAVE_SYNC_FUNCTIONS], 1,
- [Define to 1 if you have the __sync functions])
-fi
-AC_SUBST(BACKTRACE_SUPPORTS_THREADS)
-
-# Test for __atomic support.
-AC_CACHE_CHECK([__atomic extensions],
-[libbacktrace_cv_sys_atomic],
-[if test -n "${with_target_subdir}"; then
- libbacktrace_cv_sys_atomic=yes
- else
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([int i;],
- [__atomic_load_n (&i, __ATOMIC_ACQUIRE);
- __atomic_store_n (&i, 1, __ATOMIC_RELEASE);])],
- [libbacktrace_cv_sys_atomic=yes],
- [libbacktrace_cv_sys_atomic=no])
- fi])
-if test "$libbacktrace_cv_sys_atomic" = "yes"; then
- AC_DEFINE([HAVE_ATOMIC_FUNCTIONS], 1,
- [Define to 1 if you have the __atomic functions])
-fi
-
-# The library needs to be able to read the executable itself. Compile
-# a file to determine the executable format. The awk script
-# filetype.awk prints out the file type.
-AC_CACHE_CHECK([output filetype],
-[libbacktrace_cv_sys_filetype],
-[filetype=
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([int i;], [int j;])],
- [filetype=`${AWK} -f $srcdir/filetype.awk conftest.$ac_objext`],
- [AC_MSG_FAILURE([compiler failed])])
-libbacktrace_cv_sys_filetype=$filetype])
-
-# Match the file type to decide what files to compile.
-FORMAT_FILE=
-backtrace_supports_data=yes
-case "$libbacktrace_cv_sys_filetype" in
-elf*) FORMAT_FILE="elf.lo" ;;
-macho) FORMAT_FILE="macho.lo" ;;
-pecoff) FORMAT_FILE="pecoff.lo"
- backtrace_supports_data=no
- ;;
-xcoff*) FORMAT_FILE="xcoff.lo"
- backtrace_supports_data=no
- ;;
-*) AC_MSG_WARN([could not determine output file type])
- FORMAT_FILE="unknown.lo"
- backtrace_supported=no
- ;;
-esac
-AC_SUBST(FORMAT_FILE)
-
-# ELF defines.
-elfsize=
-case "$libbacktrace_cv_sys_filetype" in
-elf32) elfsize=32 ;;
-elf64) elfsize=64 ;;
-*) elfsize=unused
-esac
-AC_DEFINE_UNQUOTED([BACKTRACE_ELF_SIZE], [$elfsize], [ELF size: 32 or 64])
-AM_CONDITIONAL(HAVE_ELF, test "$FORMAT_FILE" = "elf.lo")
-
-# XCOFF defines.
-xcoffsize=
-case "$libbacktrace_cv_sys_filetype" in
-xcoff32) xcoffsize=32 ;;
-xcoff64) xcoffsize=64 ;;
-*) xcoffsize=unused
-esac
-AC_DEFINE_UNQUOTED([BACKTRACE_XCOFF_SIZE], [$xcoffsize], [XCOFF size: 32 or 64])
-
-BACKTRACE_SUPPORTED=0
-if test "$backtrace_supported" = "yes"; then
- BACKTRACE_SUPPORTED=1
-fi
-AC_SUBST(BACKTRACE_SUPPORTED)
-
-BACKTRACE_SUPPORTS_DATA=0
-if test "$backtrace_supports_data" = "yes"; then
- BACKTRACE_SUPPORTS_DATA=1
-fi
-AC_SUBST(BACKTRACE_SUPPORTS_DATA)
-
-AC_CHECK_HEADERS(sys/mman.h)
-if test "$ac_cv_header_sys_mman_h" = "no"; then
- have_mmap=no
-else
- if test -n "${with_target_subdir}"; then
- # When built as a GCC target library, we can't do a link test. We
- # simply assume that if we have mman.h, we have mmap.
- have_mmap=yes
- case "${host}" in
- spu-*-*|*-*-msdosdjgpp)
- # The SPU does not have mmap, but it has a sys/mman.h header file
- # containing "mmap_eaddr" and the mmap flags, confusing the test.
- # DJGPP also has sys/man.h, but no mmap
- have_mmap=no ;;
- esac
- else
- AC_CHECK_FUNC(mmap, [have_mmap=yes], [have_mmap=no])
- fi
-fi
-if test "$have_mmap" = "no"; then
- VIEW_FILE=read.lo
- ALLOC_FILE=alloc.lo
-else
- VIEW_FILE=mmapio.lo
- AC_PREPROC_IFELSE([AC_LANG_SOURCE([
-#include <sys/mman.h>
-#if !defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
- #error no MAP_ANONYMOUS
-#endif
-])], [ALLOC_FILE=mmap.lo], [ALLOC_FILE=alloc.lo])
-fi
-AC_SUBST(VIEW_FILE)
-AC_SUBST(ALLOC_FILE)
-
-BACKTRACE_USES_MALLOC=0
-if test "$ALLOC_FILE" = "alloc.lo"; then
- BACKTRACE_USES_MALLOC=1
-fi
-AC_SUBST(BACKTRACE_USES_MALLOC)
-
-# Check for dl_iterate_phdr.
-AC_CHECK_HEADERS(link.h sys/link.h)
-if test "$ac_cv_header_link_h" = "no" -a "$ac_cv_header_sys_link_h" = "no"; then
- have_dl_iterate_phdr=no
-else
- if test -n "${with_target_subdir}"; then
- link_h=link.h
- if test "$ac_cv_header_link_h" = "no"; then
- link_h=sys/link.h
- fi
- # When built as a GCC target library, we can't do a link test.
- AC_EGREP_HEADER([dl_iterate_phdr], [$link_h], [have_dl_iterate_phdr=yes],
- [have_dl_iterate_phdr=no])
- case "${host}" in
- *-*-solaris2.10*)
- # Avoid dl_iterate_phdr on Solaris 10, where it is in the
- # header file but is only in -ldl.
- have_dl_iterate_phdr=no ;;
- esac
- else
- AC_CHECK_FUNC([dl_iterate_phdr], [have_dl_iterate_phdr=yes],
- [have_dl_iterate_phdr=no])
- fi
-fi
-if test "$have_dl_iterate_phdr" = "yes"; then
- AC_DEFINE(HAVE_DL_ITERATE_PHDR, 1, [Define if dl_iterate_phdr is available.])
-fi
-
-# Check for header file for Mach-O image functions.
-AC_CHECK_HEADERS(mach-o/dyld.h)
-
-# Check for loadquery.
-AC_CHECK_HEADERS(sys/ldr.h)
-if test "$ac_cv_header_sys_ldr_h" = "no"; then
- have_loadquery=no
-else
- if test -n "${with_target_subdir}"; then
- # When built as a GCC target library, we can't do a link test.
- AC_EGREP_HEADER([loadquery], [sys/ldr.h], [have_loadquery=yes],
- [have_loadquery=no])
- else
- AC_CHECK_FUNC([loadquery], [have_loadquery=yes],
- [have_loadquery=no])
- fi
-fi
-if test "$have_loadquery" = "yes"; then
- AC_DEFINE(HAVE_LOADQUERY, 1, [Define if AIX loadquery is available.])
-fi
-
-# Check for the fcntl function.
-if test -n "${with_target_subdir}"; then
- case "${host}" in
- *-*-mingw*) have_fcntl=no ;;
- spu-*-*) have_fcntl=no ;;
- *) have_fcntl=yes ;;
- esac
-else
- AC_CHECK_FUNC(fcntl, [have_fcntl=yes], [have_fcntl=no])
-fi
-if test "$have_fcntl" = "yes"; then
- AC_DEFINE([HAVE_FCNTL], 1,
- [Define to 1 if you have the fcntl function])
-fi
-
-AC_CHECK_DECLS([strnlen, getpagesize])
-AC_CHECK_FUNCS(lstat readlink)
-
-# Check for getexecname function.
-if test -n "${with_target_subdir}"; then
- case "${host}" in
- *-*-solaris2*) have_getexecname=yes ;;
- *) have_getexecname=no ;;
- esac
-else
- AC_CHECK_FUNC(getexecname, [have_getexecname=yes], [have_getexecname=no])
-fi
-if test "$have_getexecname" = "yes"; then
- AC_DEFINE(HAVE_GETEXECNAME, 1, [Define if getexecname is available.])
-fi
-
-# Check for sysctl definitions.
-
-AC_CACHE_CHECK([for KERN_PROC],
-[libbacktrace_cv_proc],
-[AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([
-#include <sys/types.h>
-#include <sys/sysctl.h>
-], [int mib0 = CTL_KERN; int mib1 = KERN_PROC; int mib2 = KERN_PROC_PATHNAME;])],
- [libbacktrace_cv_proc=yes],
- [libbacktrace_cv_proc=no])])
-if test "$libbacktrace_cv_proc" = "yes"; then
- AC_DEFINE([HAVE_KERN_PROC], 1,
- [Define to 1 if you have KERN_PROC and KERN_PROC_PATHNAME in <sys/sysctl.h>.])
-fi
-
-AC_CACHE_CHECK([for KERN_PROG_ARGS],
-[libbacktrace_cv_procargs],
-[AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([
-#include <sys/types.h>
-#include <sys/sysctl.h>
-], [int mib0 = CTL_KERN; int mib1 = KERN_PROC_ARGS; int mib2 = KERN_PROC_PATHNAME;])],
- [libbacktrace_cv_procargs=yes],
- [libbacktrace_cv_procargs=no])])
-if test "$libbacktrace_cv_procargs" = "yes"; then
- AC_DEFINE([HAVE_KERN_PROC_ARGS], 1,
- [Define to 1 if you have KERN_PROCARGS and KERN_PROC_PATHNAME in <sys/sysctl.h>.])
-fi
-
-# Check for the clock_gettime function.
-AC_CHECK_FUNCS(clock_gettime)
-clock_gettime_link=
-# At least for glibc, clock_gettime is in librt. But don't
-# pull that in if it still doesn't give us the function we want. This
-# test is copied from libgomp, and modified to not link in -lrt as
-# we're using this for test timing only.
-if test "$ac_cv_func_clock_gettime" = no; then
- AC_CHECK_LIB(rt, clock_gettime,
- [CLOCK_GETTIME_LINK=-lrt
- AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
- [Define to 1 if you have the `clock_gettime' function.])])
-fi
-AC_SUBST(CLOCK_GETTIME_LINK)
-
-dnl Test whether the compiler supports the -pthread option.
-AC_CACHE_CHECK([whether -pthread is supported],
-[libgo_cv_lib_pthread],
-[CFLAGS_hold=$CFLAGS
-CFLAGS="$CFLAGS -pthread"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
-[libgo_cv_lib_pthread=yes],
-[libgo_cv_lib_pthread=no])
-CFLAGS=$CFLAGS_hold])
-PTHREAD_CFLAGS=
-if test "$libgo_cv_lib_pthread" = yes; then
- PTHREAD_CFLAGS=-pthread
-fi
-AC_SUBST(PTHREAD_CFLAGS)
-
-AM_CONDITIONAL(HAVE_PTHREAD, test "$libgo_cv_lib_pthread" = yes)
-
-dnl Test whether the compiler and the linker support the -gdwarf-5 option.
-AC_CACHE_CHECK([whether -gdwarf-5 is supported],
-[libbacktrace_cv_lib_dwarf5],
-[CFLAGS_hold=$CFLAGS
-CFLAGS="$CFLAGS -gdwarf-5"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;], [return 0;])],
-[libbacktrace_cv_lib_dwarf5=yes],
-[libbacktrace_cv_lib_dwarf5=no])
-CFLAGS=$CFLAGS_hold])
-AM_CONDITIONAL(HAVE_DWARF5, test "$libbacktrace_cv_lib_dwarf5" = yes)
-
-AC_CHECK_LIB([z], [compress],
- [AC_DEFINE(HAVE_ZLIB, 1, [Define if -lz is available.])])
-AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_lib_z_compress" = yes)
-
-dnl Test whether the linker supports the --compress_debug_sections option.
-AC_CACHE_CHECK([whether --compress-debug-sections is supported],
-[libgo_cv_ld_compress],
-[LDFLAGS_hold=$LDFLAGS
-LDFLAGS="$LDFLAGS -Wl,--compress-debug-sections=zlib-gnu"
-AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
-[libgo_cv_ld_compress=yes],
-[libgo_cv_ld_compress=no])
-LDFLAGS=$LDFLAGS_hold])
-AM_CONDITIONAL(HAVE_COMPRESSED_DEBUG, test "$libgo_cv_ld_compress" = yes)
-
-AC_ARG_VAR(OBJCOPY, [location of objcopy])
-AC_CHECK_PROG(OBJCOPY, objcopy, objcopy,)
-AC_CHECK_PROG(READELF, readelf, readelf)
-AC_CACHE_CHECK([whether objcopy supports debuglink],
-[libbacktrace_cv_objcopy_debuglink],
-[if test -n "${with_target_subdir}"; then
- libbacktrace_cv_objcopy_debuglink=no
-elif ! test -n "${OBJCOPY}"; then
- libbacktrace_cv_objcopy_debuglink=no
-elif ${OBJCOPY} --help | grep add-gnu-debuglink >/dev/null 2>&1; then
- libbacktrace_cv_objcopy_debuglink=yes
-else
- libbacktrace_cv_objcopy_debuglink=no
-fi])
-AM_CONDITIONAL(HAVE_OBJCOPY_DEBUGLINK, test "$libbacktrace_cv_objcopy_debuglink" = yes)
-
-AC_ARG_VAR(DSYMUTIL, [location of dsymutil])
-AC_CHECK_PROG(DSYMUTIL, dsymutil, dsymutil)
-AM_CONDITIONAL(USE_DSYMUTIL, test -n "${DSYMUTIL}" -a "$FORMAT_FILE" = "macho.lo")
-
-AC_ARG_VAR(NM, [location of nm])
-AC_CHECK_PROG(NM, nm, nm)
-
-AC_CHECK_PROG(XZ, xz, xz)
-AM_CONDITIONAL(HAVE_XZ, test "$XZ" != "")
-AC_CHECK_PROG(COMM, comm, comm)
-AM_CONDITIONAL(HAVE_COMM, test "$COMM" != "")
-
-AM_CONDITIONAL(HAVE_MINIDEBUG,
- test "${with_target_subdir}" = "" -a "$FORMAT_FILE" = "elf.lo" -a "${OBJCOPY}" != "" -a "${NM}" != "" -a "${XZ}" != "" -a "${COMM}" != "")
-
-AC_CHECK_LIB([lzma], [lzma_auto_decoder],
- [AC_DEFINE(HAVE_LIBLZMA, 1, [Define if -llzma is available.])])
-AM_CONDITIONAL(HAVE_LIBLZMA, test "$ac_cv_lib_lzma_lzma_auto_decoder" = yes)
-
-AC_CACHE_CHECK([whether tests can run],
- [libbacktrace_cv_sys_native],
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([], [return 0;])],
- [libbacktrace_cv_sys_native=yes],
- [libbacktrace_cv_sys_native=no],
- [libbacktrace_cv_sys_native=no])])
-AM_CONDITIONAL(NATIVE, test "$libbacktrace_cv_sys_native" = "yes")
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-AC_CONFIG_FILES(Makefile backtrace-supported.h)
-AC_CONFIG_FILES(install-debuginfo-for-buildid.sh, chmod +x install-debuginfo-for-buildid.sh)
-
-# We need multilib support, but only if configuring for the target.
-AC_CONFIG_COMMANDS([default],
-[if test -n "$CONFIG_FILES"; then
- if test -n "${with_target_subdir}"; then
- # Multilibs need MULTISUBDIR defined correctly in certain makefiles so
- # that multilib installs will end up installed in the correct place.
- # The testsuite needs it for multilib-aware ABI baseline files.
- # To work around this not being passed down from config-ml.in ->
- # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually
- # append it here. Only modify Makefiles that have just been created.
- #
- # Also, get rid of this simulated-VPATH thing that automake does.
- cat > vpsed << \_EOF
- s!`test -f '$<' || echo '$(srcdir)/'`!!
-_EOF
- for i in $SUBDIRS; do
- case $CONFIG_FILES in
- *${i}/Makefile*)
- #echo "Adding MULTISUBDIR to $i/Makefile"
- sed -f vpsed $i/Makefile > tmp
- grep '^MULTISUBDIR =' Makefile >> tmp
- mv tmp $i/Makefile
- ;;
- esac
- done
- rm vpsed
- fi
- fi
-],
-[
-# Variables needed in config.status (file generation) which aren't already
-# passed by autoconf.
-SUBDIRS="$SUBDIRS"
-])
-
-AC_OUTPUT
diff --git a/fluent-bit/lib/libbacktrace-8602fda/dwarf.c b/fluent-bit/lib/libbacktrace-8602fda/dwarf.c
deleted file mode 100644
index 5b2724e6a..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/dwarf.c
+++ /dev/null
@@ -1,4402 +0,0 @@
-/* dwarf.c -- Get file/line information from DWARF for backtraces.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#include "filenames.h"
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* DWARF constants. */
-
-enum dwarf_tag {
- DW_TAG_entry_point = 0x3,
- DW_TAG_compile_unit = 0x11,
- DW_TAG_inlined_subroutine = 0x1d,
- DW_TAG_subprogram = 0x2e,
- DW_TAG_skeleton_unit = 0x4a,
-};
-
-enum dwarf_form {
- DW_FORM_addr = 0x01,
- DW_FORM_block2 = 0x03,
- DW_FORM_block4 = 0x04,
- DW_FORM_data2 = 0x05,
- DW_FORM_data4 = 0x06,
- DW_FORM_data8 = 0x07,
- DW_FORM_string = 0x08,
- DW_FORM_block = 0x09,
- DW_FORM_block1 = 0x0a,
- DW_FORM_data1 = 0x0b,
- DW_FORM_flag = 0x0c,
- DW_FORM_sdata = 0x0d,
- DW_FORM_strp = 0x0e,
- DW_FORM_udata = 0x0f,
- DW_FORM_ref_addr = 0x10,
- DW_FORM_ref1 = 0x11,
- DW_FORM_ref2 = 0x12,
- DW_FORM_ref4 = 0x13,
- DW_FORM_ref8 = 0x14,
- DW_FORM_ref_udata = 0x15,
- DW_FORM_indirect = 0x16,
- DW_FORM_sec_offset = 0x17,
- DW_FORM_exprloc = 0x18,
- DW_FORM_flag_present = 0x19,
- DW_FORM_ref_sig8 = 0x20,
- DW_FORM_strx = 0x1a,
- DW_FORM_addrx = 0x1b,
- DW_FORM_ref_sup4 = 0x1c,
- DW_FORM_strp_sup = 0x1d,
- DW_FORM_data16 = 0x1e,
- DW_FORM_line_strp = 0x1f,
- DW_FORM_implicit_const = 0x21,
- DW_FORM_loclistx = 0x22,
- DW_FORM_rnglistx = 0x23,
- DW_FORM_ref_sup8 = 0x24,
- DW_FORM_strx1 = 0x25,
- DW_FORM_strx2 = 0x26,
- DW_FORM_strx3 = 0x27,
- DW_FORM_strx4 = 0x28,
- DW_FORM_addrx1 = 0x29,
- DW_FORM_addrx2 = 0x2a,
- DW_FORM_addrx3 = 0x2b,
- DW_FORM_addrx4 = 0x2c,
- DW_FORM_GNU_addr_index = 0x1f01,
- DW_FORM_GNU_str_index = 0x1f02,
- DW_FORM_GNU_ref_alt = 0x1f20,
- DW_FORM_GNU_strp_alt = 0x1f21
-};
-
-enum dwarf_attribute {
- DW_AT_sibling = 0x01,
- DW_AT_location = 0x02,
- DW_AT_name = 0x03,
- DW_AT_ordering = 0x09,
- DW_AT_subscr_data = 0x0a,
- DW_AT_byte_size = 0x0b,
- DW_AT_bit_offset = 0x0c,
- DW_AT_bit_size = 0x0d,
- DW_AT_element_list = 0x0f,
- DW_AT_stmt_list = 0x10,
- DW_AT_low_pc = 0x11,
- DW_AT_high_pc = 0x12,
- DW_AT_language = 0x13,
- DW_AT_member = 0x14,
- DW_AT_discr = 0x15,
- DW_AT_discr_value = 0x16,
- DW_AT_visibility = 0x17,
- DW_AT_import = 0x18,
- DW_AT_string_length = 0x19,
- DW_AT_common_reference = 0x1a,
- DW_AT_comp_dir = 0x1b,
- DW_AT_const_value = 0x1c,
- DW_AT_containing_type = 0x1d,
- DW_AT_default_value = 0x1e,
- DW_AT_inline = 0x20,
- DW_AT_is_optional = 0x21,
- DW_AT_lower_bound = 0x22,
- DW_AT_producer = 0x25,
- DW_AT_prototyped = 0x27,
- DW_AT_return_addr = 0x2a,
- DW_AT_start_scope = 0x2c,
- DW_AT_bit_stride = 0x2e,
- DW_AT_upper_bound = 0x2f,
- DW_AT_abstract_origin = 0x31,
- DW_AT_accessibility = 0x32,
- DW_AT_address_class = 0x33,
- DW_AT_artificial = 0x34,
- DW_AT_base_types = 0x35,
- DW_AT_calling_convention = 0x36,
- DW_AT_count = 0x37,
- DW_AT_data_member_location = 0x38,
- DW_AT_decl_column = 0x39,
- DW_AT_decl_file = 0x3a,
- DW_AT_decl_line = 0x3b,
- DW_AT_declaration = 0x3c,
- DW_AT_discr_list = 0x3d,
- DW_AT_encoding = 0x3e,
- DW_AT_external = 0x3f,
- DW_AT_frame_base = 0x40,
- DW_AT_friend = 0x41,
- DW_AT_identifier_case = 0x42,
- DW_AT_macro_info = 0x43,
- DW_AT_namelist_items = 0x44,
- DW_AT_priority = 0x45,
- DW_AT_segment = 0x46,
- DW_AT_specification = 0x47,
- DW_AT_static_link = 0x48,
- DW_AT_type = 0x49,
- DW_AT_use_location = 0x4a,
- DW_AT_variable_parameter = 0x4b,
- DW_AT_virtuality = 0x4c,
- DW_AT_vtable_elem_location = 0x4d,
- DW_AT_allocated = 0x4e,
- DW_AT_associated = 0x4f,
- DW_AT_data_location = 0x50,
- DW_AT_byte_stride = 0x51,
- DW_AT_entry_pc = 0x52,
- DW_AT_use_UTF8 = 0x53,
- DW_AT_extension = 0x54,
- DW_AT_ranges = 0x55,
- DW_AT_trampoline = 0x56,
- DW_AT_call_column = 0x57,
- DW_AT_call_file = 0x58,
- DW_AT_call_line = 0x59,
- DW_AT_description = 0x5a,
- DW_AT_binary_scale = 0x5b,
- DW_AT_decimal_scale = 0x5c,
- DW_AT_small = 0x5d,
- DW_AT_decimal_sign = 0x5e,
- DW_AT_digit_count = 0x5f,
- DW_AT_picture_string = 0x60,
- DW_AT_mutable = 0x61,
- DW_AT_threads_scaled = 0x62,
- DW_AT_explicit = 0x63,
- DW_AT_object_pointer = 0x64,
- DW_AT_endianity = 0x65,
- DW_AT_elemental = 0x66,
- DW_AT_pure = 0x67,
- DW_AT_recursive = 0x68,
- DW_AT_signature = 0x69,
- DW_AT_main_subprogram = 0x6a,
- DW_AT_data_bit_offset = 0x6b,
- DW_AT_const_expr = 0x6c,
- DW_AT_enum_class = 0x6d,
- DW_AT_linkage_name = 0x6e,
- DW_AT_string_length_bit_size = 0x6f,
- DW_AT_string_length_byte_size = 0x70,
- DW_AT_rank = 0x71,
- DW_AT_str_offsets_base = 0x72,
- DW_AT_addr_base = 0x73,
- DW_AT_rnglists_base = 0x74,
- DW_AT_dwo_name = 0x76,
- DW_AT_reference = 0x77,
- DW_AT_rvalue_reference = 0x78,
- DW_AT_macros = 0x79,
- DW_AT_call_all_calls = 0x7a,
- DW_AT_call_all_source_calls = 0x7b,
- DW_AT_call_all_tail_calls = 0x7c,
- DW_AT_call_return_pc = 0x7d,
- DW_AT_call_value = 0x7e,
- DW_AT_call_origin = 0x7f,
- DW_AT_call_parameter = 0x80,
- DW_AT_call_pc = 0x81,
- DW_AT_call_tail_call = 0x82,
- DW_AT_call_target = 0x83,
- DW_AT_call_target_clobbered = 0x84,
- DW_AT_call_data_location = 0x85,
- DW_AT_call_data_value = 0x86,
- DW_AT_noreturn = 0x87,
- DW_AT_alignment = 0x88,
- DW_AT_export_symbols = 0x89,
- DW_AT_deleted = 0x8a,
- DW_AT_defaulted = 0x8b,
- DW_AT_loclists_base = 0x8c,
- DW_AT_lo_user = 0x2000,
- DW_AT_hi_user = 0x3fff,
- DW_AT_MIPS_fde = 0x2001,
- DW_AT_MIPS_loop_begin = 0x2002,
- DW_AT_MIPS_tail_loop_begin = 0x2003,
- DW_AT_MIPS_epilog_begin = 0x2004,
- DW_AT_MIPS_loop_unroll_factor = 0x2005,
- DW_AT_MIPS_software_pipeline_depth = 0x2006,
- DW_AT_MIPS_linkage_name = 0x2007,
- DW_AT_MIPS_stride = 0x2008,
- DW_AT_MIPS_abstract_name = 0x2009,
- DW_AT_MIPS_clone_origin = 0x200a,
- DW_AT_MIPS_has_inlines = 0x200b,
- DW_AT_HP_block_index = 0x2000,
- DW_AT_HP_unmodifiable = 0x2001,
- DW_AT_HP_prologue = 0x2005,
- DW_AT_HP_epilogue = 0x2008,
- DW_AT_HP_actuals_stmt_list = 0x2010,
- DW_AT_HP_proc_per_section = 0x2011,
- DW_AT_HP_raw_data_ptr = 0x2012,
- DW_AT_HP_pass_by_reference = 0x2013,
- DW_AT_HP_opt_level = 0x2014,
- DW_AT_HP_prof_version_id = 0x2015,
- DW_AT_HP_opt_flags = 0x2016,
- DW_AT_HP_cold_region_low_pc = 0x2017,
- DW_AT_HP_cold_region_high_pc = 0x2018,
- DW_AT_HP_all_variables_modifiable = 0x2019,
- DW_AT_HP_linkage_name = 0x201a,
- DW_AT_HP_prof_flags = 0x201b,
- DW_AT_HP_unit_name = 0x201f,
- DW_AT_HP_unit_size = 0x2020,
- DW_AT_HP_widened_byte_size = 0x2021,
- DW_AT_HP_definition_points = 0x2022,
- DW_AT_HP_default_location = 0x2023,
- DW_AT_HP_is_result_param = 0x2029,
- DW_AT_sf_names = 0x2101,
- DW_AT_src_info = 0x2102,
- DW_AT_mac_info = 0x2103,
- DW_AT_src_coords = 0x2104,
- DW_AT_body_begin = 0x2105,
- DW_AT_body_end = 0x2106,
- DW_AT_GNU_vector = 0x2107,
- DW_AT_GNU_guarded_by = 0x2108,
- DW_AT_GNU_pt_guarded_by = 0x2109,
- DW_AT_GNU_guarded = 0x210a,
- DW_AT_GNU_pt_guarded = 0x210b,
- DW_AT_GNU_locks_excluded = 0x210c,
- DW_AT_GNU_exclusive_locks_required = 0x210d,
- DW_AT_GNU_shared_locks_required = 0x210e,
- DW_AT_GNU_odr_signature = 0x210f,
- DW_AT_GNU_template_name = 0x2110,
- DW_AT_GNU_call_site_value = 0x2111,
- DW_AT_GNU_call_site_data_value = 0x2112,
- DW_AT_GNU_call_site_target = 0x2113,
- DW_AT_GNU_call_site_target_clobbered = 0x2114,
- DW_AT_GNU_tail_call = 0x2115,
- DW_AT_GNU_all_tail_call_sites = 0x2116,
- DW_AT_GNU_all_call_sites = 0x2117,
- DW_AT_GNU_all_source_call_sites = 0x2118,
- DW_AT_GNU_macros = 0x2119,
- DW_AT_GNU_deleted = 0x211a,
- DW_AT_GNU_dwo_name = 0x2130,
- DW_AT_GNU_dwo_id = 0x2131,
- DW_AT_GNU_ranges_base = 0x2132,
- DW_AT_GNU_addr_base = 0x2133,
- DW_AT_GNU_pubnames = 0x2134,
- DW_AT_GNU_pubtypes = 0x2135,
- DW_AT_GNU_discriminator = 0x2136,
- DW_AT_GNU_locviews = 0x2137,
- DW_AT_GNU_entry_view = 0x2138,
- DW_AT_VMS_rtnbeg_pd_address = 0x2201,
- DW_AT_use_GNAT_descriptive_type = 0x2301,
- DW_AT_GNAT_descriptive_type = 0x2302,
- DW_AT_GNU_numerator = 0x2303,
- DW_AT_GNU_denominator = 0x2304,
- DW_AT_GNU_bias = 0x2305,
- DW_AT_upc_threads_scaled = 0x3210,
- DW_AT_PGI_lbase = 0x3a00,
- DW_AT_PGI_soffset = 0x3a01,
- DW_AT_PGI_lstride = 0x3a02,
- DW_AT_APPLE_optimized = 0x3fe1,
- DW_AT_APPLE_flags = 0x3fe2,
- DW_AT_APPLE_isa = 0x3fe3,
- DW_AT_APPLE_block = 0x3fe4,
- DW_AT_APPLE_major_runtime_vers = 0x3fe5,
- DW_AT_APPLE_runtime_class = 0x3fe6,
- DW_AT_APPLE_omit_frame_ptr = 0x3fe7,
- DW_AT_APPLE_property_name = 0x3fe8,
- DW_AT_APPLE_property_getter = 0x3fe9,
- DW_AT_APPLE_property_setter = 0x3fea,
- DW_AT_APPLE_property_attribute = 0x3feb,
- DW_AT_APPLE_objc_complete_type = 0x3fec,
- DW_AT_APPLE_property = 0x3fed
-};
-
-enum dwarf_line_number_op {
- DW_LNS_extended_op = 0x0,
- DW_LNS_copy = 0x1,
- DW_LNS_advance_pc = 0x2,
- DW_LNS_advance_line = 0x3,
- DW_LNS_set_file = 0x4,
- DW_LNS_set_column = 0x5,
- DW_LNS_negate_stmt = 0x6,
- DW_LNS_set_basic_block = 0x7,
- DW_LNS_const_add_pc = 0x8,
- DW_LNS_fixed_advance_pc = 0x9,
- DW_LNS_set_prologue_end = 0xa,
- DW_LNS_set_epilogue_begin = 0xb,
- DW_LNS_set_isa = 0xc,
-};
-
-enum dwarf_extended_line_number_op {
- DW_LNE_end_sequence = 0x1,
- DW_LNE_set_address = 0x2,
- DW_LNE_define_file = 0x3,
- DW_LNE_set_discriminator = 0x4,
-};
-
-enum dwarf_line_number_content_type {
- DW_LNCT_path = 0x1,
- DW_LNCT_directory_index = 0x2,
- DW_LNCT_timestamp = 0x3,
- DW_LNCT_size = 0x4,
- DW_LNCT_MD5 = 0x5,
- DW_LNCT_lo_user = 0x2000,
- DW_LNCT_hi_user = 0x3fff
-};
-
-enum dwarf_range_list_entry {
- DW_RLE_end_of_list = 0x00,
- DW_RLE_base_addressx = 0x01,
- DW_RLE_startx_endx = 0x02,
- DW_RLE_startx_length = 0x03,
- DW_RLE_offset_pair = 0x04,
- DW_RLE_base_address = 0x05,
- DW_RLE_start_end = 0x06,
- DW_RLE_start_length = 0x07
-};
-
-enum dwarf_unit_type {
- DW_UT_compile = 0x01,
- DW_UT_type = 0x02,
- DW_UT_partial = 0x03,
- DW_UT_skeleton = 0x04,
- DW_UT_split_compile = 0x05,
- DW_UT_split_type = 0x06,
- DW_UT_lo_user = 0x80,
- DW_UT_hi_user = 0xff
-};
-
-#if !defined(HAVE_DECL_STRNLEN) || !HAVE_DECL_STRNLEN
-
-/* If strnlen is not declared, provide our own version. */
-
-static size_t
-xstrnlen (const char *s, size_t maxlen)
-{
- size_t i;
-
- for (i = 0; i < maxlen; ++i)
- if (s[i] == '\0')
- break;
- return i;
-}
-
-#define strnlen xstrnlen
-
-#endif
-
-/* A buffer to read DWARF info. */
-
-struct dwarf_buf
-{
- /* Buffer name for error messages. */
- const char *name;
- /* Start of the buffer. */
- const unsigned char *start;
- /* Next byte to read. */
- const unsigned char *buf;
- /* The number of bytes remaining. */
- size_t left;
- /* Whether the data is big-endian. */
- int is_bigendian;
- /* Error callback routine. */
- backtrace_error_callback error_callback;
- /* Data for error_callback. */
- void *data;
- /* Non-zero if we've reported an underflow error. */
- int reported_underflow;
-};
-
-/* A single attribute in a DWARF abbreviation. */
-
-struct attr
-{
- /* The attribute name. */
- enum dwarf_attribute name;
- /* The attribute form. */
- enum dwarf_form form;
- /* The attribute value, for DW_FORM_implicit_const. */
- int64_t val;
-};
-
-/* A single DWARF abbreviation. */
-
-struct abbrev
-{
- /* The abbrev code--the number used to refer to the abbrev. */
- uint64_t code;
- /* The entry tag. */
- enum dwarf_tag tag;
- /* Non-zero if this abbrev has child entries. */
- int has_children;
- /* The number of attributes. */
- size_t num_attrs;
- /* The attributes. */
- struct attr *attrs;
-};
-
-/* The DWARF abbreviations for a compilation unit. This structure
- only exists while reading the compilation unit. Most DWARF readers
- seem to a hash table to map abbrev ID's to abbrev entries.
- However, we primarily care about GCC, and GCC simply issues ID's in
- numerical order starting at 1. So we simply keep a sorted vector,
- and try to just look up the code. */
-
-struct abbrevs
-{
- /* The number of abbrevs in the vector. */
- size_t num_abbrevs;
- /* The abbrevs, sorted by the code field. */
- struct abbrev *abbrevs;
-};
-
-/* The different kinds of attribute values. */
-
-enum attr_val_encoding
-{
- /* No attribute value. */
- ATTR_VAL_NONE,
- /* An address. */
- ATTR_VAL_ADDRESS,
- /* An index into the .debug_addr section, whose value is relative to
- * the DW_AT_addr_base attribute of the compilation unit. */
- ATTR_VAL_ADDRESS_INDEX,
- /* A unsigned integer. */
- ATTR_VAL_UINT,
- /* A sigd integer. */
- ATTR_VAL_SINT,
- /* A string. */
- ATTR_VAL_STRING,
- /* An index into the .debug_str_offsets section. */
- ATTR_VAL_STRING_INDEX,
- /* An offset to other data in the containing unit. */
- ATTR_VAL_REF_UNIT,
- /* An offset to other data within the .debug_info section. */
- ATTR_VAL_REF_INFO,
- /* An offset to other data within the alt .debug_info section. */
- ATTR_VAL_REF_ALT_INFO,
- /* An offset to data in some other section. */
- ATTR_VAL_REF_SECTION,
- /* A type signature. */
- ATTR_VAL_REF_TYPE,
- /* An index into the .debug_rnglists section. */
- ATTR_VAL_RNGLISTS_INDEX,
- /* A block of data (not represented). */
- ATTR_VAL_BLOCK,
- /* An expression (not represented). */
- ATTR_VAL_EXPR,
-};
-
-/* An attribute value. */
-
-struct attr_val
-{
- /* How the value is stored in the field u. */
- enum attr_val_encoding encoding;
- union
- {
- /* ATTR_VAL_ADDRESS*, ATTR_VAL_UINT, ATTR_VAL_REF*. */
- uint64_t uint;
- /* ATTR_VAL_SINT. */
- int64_t sint;
- /* ATTR_VAL_STRING. */
- const char *string;
- /* ATTR_VAL_BLOCK not stored. */
- } u;
-};
-
-/* The line number program header. */
-
-struct line_header
-{
- /* The version of the line number information. */
- int version;
- /* Address size. */
- int addrsize;
- /* The minimum instruction length. */
- unsigned int min_insn_len;
- /* The maximum number of ops per instruction. */
- unsigned int max_ops_per_insn;
- /* The line base for special opcodes. */
- int line_base;
- /* The line range for special opcodes. */
- unsigned int line_range;
- /* The opcode base--the first special opcode. */
- unsigned int opcode_base;
- /* Opcode lengths, indexed by opcode - 1. */
- const unsigned char *opcode_lengths;
- /* The number of directory entries. */
- size_t dirs_count;
- /* The directory entries. */
- const char **dirs;
- /* The number of filenames. */
- size_t filenames_count;
- /* The filenames. */
- const char **filenames;
-};
-
-/* A format description from a line header. */
-
-struct line_header_format
-{
- int lnct; /* LNCT code. */
- enum dwarf_form form; /* Form of entry data. */
-};
-
-/* Map a single PC value to a file/line. We will keep a vector of
- these sorted by PC value. Each file/line will be correct from the
- PC up to the PC of the next entry if there is one. We allocate one
- extra entry at the end so that we can use bsearch. */
-
-struct line
-{
- /* PC. */
- uintptr_t pc;
- /* File name. Many entries in the array are expected to point to
- the same file name. */
- const char *filename;
- /* Line number. */
- int lineno;
- /* Index of the object in the original array read from the DWARF
- section, before it has been sorted. The index makes it possible
- to use Quicksort and maintain stability. */
- int idx;
-};
-
-/* A growable vector of line number information. This is used while
- reading the line numbers. */
-
-struct line_vector
-{
- /* Memory. This is an array of struct line. */
- struct backtrace_vector vec;
- /* Number of valid mappings. */
- size_t count;
-};
-
-/* A function described in the debug info. */
-
-struct function
-{
- /* The name of the function. */
- const char *name;
- /* If this is an inlined function, the filename of the call
- site. */
- const char *caller_filename;
- /* If this is an inlined function, the line number of the call
- site. */
- int caller_lineno;
- /* Map PC ranges to inlined functions. */
- struct function_addrs *function_addrs;
- size_t function_addrs_count;
-};
-
-/* An address range for a function. This maps a PC value to a
- specific function. */
-
-struct function_addrs
-{
- /* Range is LOW <= PC < HIGH. */
- uint64_t low;
- uint64_t high;
- /* Function for this address range. */
- struct function *function;
-};
-
-/* A growable vector of function address ranges. */
-
-struct function_vector
-{
- /* Memory. This is an array of struct function_addrs. */
- struct backtrace_vector vec;
- /* Number of address ranges present. */
- size_t count;
-};
-
-/* A DWARF compilation unit. This only holds the information we need
- to map a PC to a file and line. */
-
-struct unit
-{
- /* The first entry for this compilation unit. */
- const unsigned char *unit_data;
- /* The length of the data for this compilation unit. */
- size_t unit_data_len;
- /* The offset of UNIT_DATA from the start of the information for
- this compilation unit. */
- size_t unit_data_offset;
- /* Offset of the start of the compilation unit from the start of the
- .debug_info section. */
- size_t low_offset;
- /* Offset of the end of the compilation unit from the start of the
- .debug_info section. */
- size_t high_offset;
- /* DWARF version. */
- int version;
- /* Whether unit is DWARF64. */
- int is_dwarf64;
- /* Address size. */
- int addrsize;
- /* Offset into line number information. */
- off_t lineoff;
- /* Offset of compilation unit in .debug_str_offsets. */
- uint64_t str_offsets_base;
- /* Offset of compilation unit in .debug_addr. */
- uint64_t addr_base;
- /* Offset of compilation unit in .debug_rnglists. */
- uint64_t rnglists_base;
- /* Primary source file. */
- const char *filename;
- /* Compilation command working directory. */
- const char *comp_dir;
- /* Absolute file name, only set if needed. */
- const char *abs_filename;
- /* The abbreviations for this unit. */
- struct abbrevs abbrevs;
-
- /* The fields above this point are read in during initialization and
- may be accessed freely. The fields below this point are read in
- as needed, and therefore require care, as different threads may
- try to initialize them simultaneously. */
-
- /* PC to line number mapping. This is NULL if the values have not
- been read. This is (struct line *) -1 if there was an error
- reading the values. */
- struct line *lines;
- /* Number of entries in lines. */
- size_t lines_count;
- /* PC ranges to function. */
- struct function_addrs *function_addrs;
- size_t function_addrs_count;
-};
-
-/* An address range for a compilation unit. This maps a PC value to a
- specific compilation unit. Note that we invert the representation
- in DWARF: instead of listing the units and attaching a list of
- ranges, we list the ranges and have each one point to the unit.
- This lets us do a binary search to find the unit. */
-
-struct unit_addrs
-{
- /* Range is LOW <= PC < HIGH. */
- uint64_t low;
- uint64_t high;
- /* Compilation unit for this address range. */
- struct unit *u;
-};
-
-/* A growable vector of compilation unit address ranges. */
-
-struct unit_addrs_vector
-{
- /* Memory. This is an array of struct unit_addrs. */
- struct backtrace_vector vec;
- /* Number of address ranges present. */
- size_t count;
-};
-
-/* A growable vector of compilation unit pointer. */
-
-struct unit_vector
-{
- struct backtrace_vector vec;
- size_t count;
-};
-
-/* The information we need to map a PC to a file and line. */
-
-struct dwarf_data
-{
- /* The data for the next file we know about. */
- struct dwarf_data *next;
- /* The data for .gnu_debugaltlink. */
- struct dwarf_data *altlink;
- /* The base address for this file. */
- uintptr_t base_address;
- /* A sorted list of address ranges. */
- struct unit_addrs *addrs;
- /* Number of address ranges in list. */
- size_t addrs_count;
- /* A sorted list of units. */
- struct unit **units;
- /* Number of units in the list. */
- size_t units_count;
- /* The unparsed DWARF debug data. */
- struct dwarf_sections dwarf_sections;
- /* Whether the data is big-endian or not. */
- int is_bigendian;
- /* A vector used for function addresses. We keep this here so that
- we can grow the vector as we read more functions. */
- struct function_vector fvec;
-};
-
-/* Report an error for a DWARF buffer. */
-
-static void
-dwarf_buf_error (struct dwarf_buf *buf, const char *msg, int errnum)
-{
- char b[200];
-
- snprintf (b, sizeof b, "%s in %s at %d",
- msg, buf->name, (int) (buf->buf - buf->start));
- buf->error_callback (buf->data, b, errnum);
-}
-
-/* Require at least COUNT bytes in BUF. Return 1 if all is well, 0 on
- error. */
-
-static int
-require (struct dwarf_buf *buf, size_t count)
-{
- if (buf->left >= count)
- return 1;
-
- if (!buf->reported_underflow)
- {
- dwarf_buf_error (buf, "DWARF underflow", 0);
- buf->reported_underflow = 1;
- }
-
- return 0;
-}
-
-/* Advance COUNT bytes in BUF. Return 1 if all is well, 0 on
- error. */
-
-static int
-advance (struct dwarf_buf *buf, size_t count)
-{
- if (!require (buf, count))
- return 0;
- buf->buf += count;
- buf->left -= count;
- return 1;
-}
-
-/* Read one zero-terminated string from BUF and advance past the string. */
-
-static const char *
-read_string (struct dwarf_buf *buf)
-{
- const char *p = (const char *)buf->buf;
- size_t len = strnlen (p, buf->left);
-
- /* - If len == left, we ran out of buffer before finding the zero terminator.
- Generate an error by advancing len + 1.
- - If len < left, advance by len + 1 to skip past the zero terminator. */
- size_t count = len + 1;
-
- if (!advance (buf, count))
- return NULL;
-
- return p;
-}
-
-/* Read one byte from BUF and advance 1 byte. */
-
-static unsigned char
-read_byte (struct dwarf_buf *buf)
-{
- const unsigned char *p = buf->buf;
-
- if (!advance (buf, 1))
- return 0;
- return p[0];
-}
-
-/* Read a signed char from BUF and advance 1 byte. */
-
-static signed char
-read_sbyte (struct dwarf_buf *buf)
-{
- const unsigned char *p = buf->buf;
-
- if (!advance (buf, 1))
- return 0;
- return (*p ^ 0x80) - 0x80;
-}
-
-/* Read a uint16 from BUF and advance 2 bytes. */
-
-static uint16_t
-read_uint16 (struct dwarf_buf *buf)
-{
- const unsigned char *p = buf->buf;
-
- if (!advance (buf, 2))
- return 0;
- if (buf->is_bigendian)
- return ((uint16_t) p[0] << 8) | (uint16_t) p[1];
- else
- return ((uint16_t) p[1] << 8) | (uint16_t) p[0];
-}
-
-/* Read a 24 bit value from BUF and advance 3 bytes. */
-
-static uint32_t
-read_uint24 (struct dwarf_buf *buf)
-{
- const unsigned char *p = buf->buf;
-
- if (!advance (buf, 3))
- return 0;
- if (buf->is_bigendian)
- return (((uint32_t) p[0] << 16) | ((uint32_t) p[1] << 8)
- | (uint32_t) p[2]);
- else
- return (((uint32_t) p[2] << 16) | ((uint32_t) p[1] << 8)
- | (uint32_t) p[0]);
-}
-
-/* Read a uint32 from BUF and advance 4 bytes. */
-
-static uint32_t
-read_uint32 (struct dwarf_buf *buf)
-{
- const unsigned char *p = buf->buf;
-
- if (!advance (buf, 4))
- return 0;
- if (buf->is_bigendian)
- return (((uint32_t) p[0] << 24) | ((uint32_t) p[1] << 16)
- | ((uint32_t) p[2] << 8) | (uint32_t) p[3]);
- else
- return (((uint32_t) p[3] << 24) | ((uint32_t) p[2] << 16)
- | ((uint32_t) p[1] << 8) | (uint32_t) p[0]);
-}
-
-/* Read a uint64 from BUF and advance 8 bytes. */
-
-static uint64_t
-read_uint64 (struct dwarf_buf *buf)
-{
- const unsigned char *p = buf->buf;
-
- if (!advance (buf, 8))
- return 0;
- if (buf->is_bigendian)
- return (((uint64_t) p[0] << 56) | ((uint64_t) p[1] << 48)
- | ((uint64_t) p[2] << 40) | ((uint64_t) p[3] << 32)
- | ((uint64_t) p[4] << 24) | ((uint64_t) p[5] << 16)
- | ((uint64_t) p[6] << 8) | (uint64_t) p[7]);
- else
- return (((uint64_t) p[7] << 56) | ((uint64_t) p[6] << 48)
- | ((uint64_t) p[5] << 40) | ((uint64_t) p[4] << 32)
- | ((uint64_t) p[3] << 24) | ((uint64_t) p[2] << 16)
- | ((uint64_t) p[1] << 8) | (uint64_t) p[0]);
-}
-
-/* Read an offset from BUF and advance the appropriate number of
- bytes. */
-
-static uint64_t
-read_offset (struct dwarf_buf *buf, int is_dwarf64)
-{
- if (is_dwarf64)
- return read_uint64 (buf);
- else
- return read_uint32 (buf);
-}
-
-/* Read an address from BUF and advance the appropriate number of
- bytes. */
-
-static uint64_t
-read_address (struct dwarf_buf *buf, int addrsize)
-{
- switch (addrsize)
- {
- case 1:
- return read_byte (buf);
- case 2:
- return read_uint16 (buf);
- case 4:
- return read_uint32 (buf);
- case 8:
- return read_uint64 (buf);
- default:
- dwarf_buf_error (buf, "unrecognized address size", 0);
- return 0;
- }
-}
-
-/* Return whether a value is the highest possible address, given the
- address size. */
-
-static int
-is_highest_address (uint64_t address, int addrsize)
-{
- switch (addrsize)
- {
- case 1:
- return address == (unsigned char) -1;
- case 2:
- return address == (uint16_t) -1;
- case 4:
- return address == (uint32_t) -1;
- case 8:
- return address == (uint64_t) -1;
- default:
- return 0;
- }
-}
-
-/* Read an unsigned LEB128 number. */
-
-static uint64_t
-read_uleb128 (struct dwarf_buf *buf)
-{
- uint64_t ret;
- unsigned int shift;
- int overflow;
- unsigned char b;
-
- ret = 0;
- shift = 0;
- overflow = 0;
- do
- {
- const unsigned char *p;
-
- p = buf->buf;
- if (!advance (buf, 1))
- return 0;
- b = *p;
- if (shift < 64)
- ret |= ((uint64_t) (b & 0x7f)) << shift;
- else if (!overflow)
- {
- dwarf_buf_error (buf, "LEB128 overflows uint64_t", 0);
- overflow = 1;
- }
- shift += 7;
- }
- while ((b & 0x80) != 0);
-
- return ret;
-}
-
-/* Read a signed LEB128 number. */
-
-static int64_t
-read_sleb128 (struct dwarf_buf *buf)
-{
- uint64_t val;
- unsigned int shift;
- int overflow;
- unsigned char b;
-
- val = 0;
- shift = 0;
- overflow = 0;
- do
- {
- const unsigned char *p;
-
- p = buf->buf;
- if (!advance (buf, 1))
- return 0;
- b = *p;
- if (shift < 64)
- val |= ((uint64_t) (b & 0x7f)) << shift;
- else if (!overflow)
- {
- dwarf_buf_error (buf, "signed LEB128 overflows uint64_t", 0);
- overflow = 1;
- }
- shift += 7;
- }
- while ((b & 0x80) != 0);
-
- if ((b & 0x40) != 0 && shift < 64)
- val |= ((uint64_t) -1) << shift;
-
- return (int64_t) val;
-}
-
-/* Return the length of an LEB128 number. */
-
-static size_t
-leb128_len (const unsigned char *p)
-{
- size_t ret;
-
- ret = 1;
- while ((*p & 0x80) != 0)
- {
- ++p;
- ++ret;
- }
- return ret;
-}
-
-/* Read initial_length from BUF and advance the appropriate number of bytes. */
-
-static uint64_t
-read_initial_length (struct dwarf_buf *buf, int *is_dwarf64)
-{
- uint64_t len;
-
- len = read_uint32 (buf);
- if (len == 0xffffffff)
- {
- len = read_uint64 (buf);
- *is_dwarf64 = 1;
- }
- else
- *is_dwarf64 = 0;
-
- return len;
-}
-
-/* Free an abbreviations structure. */
-
-static void
-free_abbrevs (struct backtrace_state *state, struct abbrevs *abbrevs,
- backtrace_error_callback error_callback, void *data)
-{
- size_t i;
-
- for (i = 0; i < abbrevs->num_abbrevs; ++i)
- backtrace_free (state, abbrevs->abbrevs[i].attrs,
- abbrevs->abbrevs[i].num_attrs * sizeof (struct attr),
- error_callback, data);
- backtrace_free (state, abbrevs->abbrevs,
- abbrevs->num_abbrevs * sizeof (struct abbrev),
- error_callback, data);
- abbrevs->num_abbrevs = 0;
- abbrevs->abbrevs = NULL;
-}
-
-/* Read an attribute value. Returns 1 on success, 0 on failure. If
- the value can be represented as a uint64_t, sets *VAL and sets
- *IS_VALID to 1. We don't try to store the value of other attribute
- forms, because we don't care about them. */
-
-static int
-read_attribute (enum dwarf_form form, uint64_t implicit_val,
- struct dwarf_buf *buf, int is_dwarf64, int version,
- int addrsize, const struct dwarf_sections *dwarf_sections,
- struct dwarf_data *altlink, struct attr_val *val)
-{
- /* Avoid warnings about val.u.FIELD may be used uninitialized if
- this function is inlined. The warnings aren't valid but can
- occur because the different fields are set and used
- conditionally. */
- memset (val, 0, sizeof *val);
-
- switch (form)
- {
- case DW_FORM_addr:
- val->encoding = ATTR_VAL_ADDRESS;
- val->u.uint = read_address (buf, addrsize);
- return 1;
- case DW_FORM_block2:
- val->encoding = ATTR_VAL_BLOCK;
- return advance (buf, read_uint16 (buf));
- case DW_FORM_block4:
- val->encoding = ATTR_VAL_BLOCK;
- return advance (buf, read_uint32 (buf));
- case DW_FORM_data2:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = read_uint16 (buf);
- return 1;
- case DW_FORM_data4:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = read_uint32 (buf);
- return 1;
- case DW_FORM_data8:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = read_uint64 (buf);
- return 1;
- case DW_FORM_data16:
- val->encoding = ATTR_VAL_BLOCK;
- return advance (buf, 16);
- case DW_FORM_string:
- val->encoding = ATTR_VAL_STRING;
- val->u.string = read_string (buf);
- return val->u.string == NULL ? 0 : 1;
- case DW_FORM_block:
- val->encoding = ATTR_VAL_BLOCK;
- return advance (buf, read_uleb128 (buf));
- case DW_FORM_block1:
- val->encoding = ATTR_VAL_BLOCK;
- return advance (buf, read_byte (buf));
- case DW_FORM_data1:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = read_byte (buf);
- return 1;
- case DW_FORM_flag:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = read_byte (buf);
- return 1;
- case DW_FORM_sdata:
- val->encoding = ATTR_VAL_SINT;
- val->u.sint = read_sleb128 (buf);
- return 1;
- case DW_FORM_strp:
- {
- uint64_t offset;
-
- offset = read_offset (buf, is_dwarf64);
- if (offset >= dwarf_sections->size[DEBUG_STR])
- {
- dwarf_buf_error (buf, "DW_FORM_strp out of range", 0);
- return 0;
- }
- val->encoding = ATTR_VAL_STRING;
- val->u.string =
- (const char *) dwarf_sections->data[DEBUG_STR] + offset;
- return 1;
- }
- case DW_FORM_line_strp:
- {
- uint64_t offset;
-
- offset = read_offset (buf, is_dwarf64);
- if (offset >= dwarf_sections->size[DEBUG_LINE_STR])
- {
- dwarf_buf_error (buf, "DW_FORM_line_strp out of range", 0);
- return 0;
- }
- val->encoding = ATTR_VAL_STRING;
- val->u.string =
- (const char *) dwarf_sections->data[DEBUG_LINE_STR] + offset;
- return 1;
- }
- case DW_FORM_udata:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = read_uleb128 (buf);
- return 1;
- case DW_FORM_ref_addr:
- val->encoding = ATTR_VAL_REF_INFO;
- if (version == 2)
- val->u.uint = read_address (buf, addrsize);
- else
- val->u.uint = read_offset (buf, is_dwarf64);
- return 1;
- case DW_FORM_ref1:
- val->encoding = ATTR_VAL_REF_UNIT;
- val->u.uint = read_byte (buf);
- return 1;
- case DW_FORM_ref2:
- val->encoding = ATTR_VAL_REF_UNIT;
- val->u.uint = read_uint16 (buf);
- return 1;
- case DW_FORM_ref4:
- val->encoding = ATTR_VAL_REF_UNIT;
- val->u.uint = read_uint32 (buf);
- return 1;
- case DW_FORM_ref8:
- val->encoding = ATTR_VAL_REF_UNIT;
- val->u.uint = read_uint64 (buf);
- return 1;
- case DW_FORM_ref_udata:
- val->encoding = ATTR_VAL_REF_UNIT;
- val->u.uint = read_uleb128 (buf);
- return 1;
- case DW_FORM_indirect:
- {
- uint64_t form;
-
- form = read_uleb128 (buf);
- if (form == DW_FORM_implicit_const)
- {
- dwarf_buf_error (buf,
- "DW_FORM_indirect to DW_FORM_implicit_const",
- 0);
- return 0;
- }
- return read_attribute ((enum dwarf_form) form, 0, buf, is_dwarf64,
- version, addrsize, dwarf_sections, altlink,
- val);
- }
- case DW_FORM_sec_offset:
- val->encoding = ATTR_VAL_REF_SECTION;
- val->u.uint = read_offset (buf, is_dwarf64);
- return 1;
- case DW_FORM_exprloc:
- val->encoding = ATTR_VAL_EXPR;
- return advance (buf, read_uleb128 (buf));
- case DW_FORM_flag_present:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = 1;
- return 1;
- case DW_FORM_ref_sig8:
- val->encoding = ATTR_VAL_REF_TYPE;
- val->u.uint = read_uint64 (buf);
- return 1;
- case DW_FORM_strx: case DW_FORM_strx1: case DW_FORM_strx2:
- case DW_FORM_strx3: case DW_FORM_strx4:
- {
- uint64_t offset;
-
- switch (form)
- {
- case DW_FORM_strx:
- offset = read_uleb128 (buf);
- break;
- case DW_FORM_strx1:
- offset = read_byte (buf);
- break;
- case DW_FORM_strx2:
- offset = read_uint16 (buf);
- break;
- case DW_FORM_strx3:
- offset = read_uint24 (buf);
- break;
- case DW_FORM_strx4:
- offset = read_uint32 (buf);
- break;
- default:
- /* This case can't happen. */
- return 0;
- }
- val->encoding = ATTR_VAL_STRING_INDEX;
- val->u.uint = offset;
- return 1;
- }
- case DW_FORM_addrx: case DW_FORM_addrx1: case DW_FORM_addrx2:
- case DW_FORM_addrx3: case DW_FORM_addrx4:
- {
- uint64_t offset;
-
- switch (form)
- {
- case DW_FORM_addrx:
- offset = read_uleb128 (buf);
- break;
- case DW_FORM_addrx1:
- offset = read_byte (buf);
- break;
- case DW_FORM_addrx2:
- offset = read_uint16 (buf);
- break;
- case DW_FORM_addrx3:
- offset = read_uint24 (buf);
- break;
- case DW_FORM_addrx4:
- offset = read_uint32 (buf);
- break;
- default:
- /* This case can't happen. */
- return 0;
- }
- val->encoding = ATTR_VAL_ADDRESS_INDEX;
- val->u.uint = offset;
- return 1;
- }
- case DW_FORM_ref_sup4:
- val->encoding = ATTR_VAL_REF_SECTION;
- val->u.uint = read_uint32 (buf);
- return 1;
- case DW_FORM_ref_sup8:
- val->encoding = ATTR_VAL_REF_SECTION;
- val->u.uint = read_uint64 (buf);
- return 1;
- case DW_FORM_implicit_const:
- val->encoding = ATTR_VAL_UINT;
- val->u.uint = implicit_val;
- return 1;
- case DW_FORM_loclistx:
- /* We don't distinguish this from DW_FORM_sec_offset. It
- * shouldn't matter since we don't care about loclists. */
- val->encoding = ATTR_VAL_REF_SECTION;
- val->u.uint = read_uleb128 (buf);
- return 1;
- case DW_FORM_rnglistx:
- val->encoding = ATTR_VAL_RNGLISTS_INDEX;
- val->u.uint = read_uleb128 (buf);
- return 1;
- case DW_FORM_GNU_addr_index:
- val->encoding = ATTR_VAL_REF_SECTION;
- val->u.uint = read_uleb128 (buf);
- return 1;
- case DW_FORM_GNU_str_index:
- val->encoding = ATTR_VAL_REF_SECTION;
- val->u.uint = read_uleb128 (buf);
- return 1;
- case DW_FORM_GNU_ref_alt:
- val->u.uint = read_offset (buf, is_dwarf64);
- if (altlink == NULL)
- {
- val->encoding = ATTR_VAL_NONE;
- return 1;
- }
- val->encoding = ATTR_VAL_REF_ALT_INFO;
- return 1;
- case DW_FORM_strp_sup: case DW_FORM_GNU_strp_alt:
- {
- uint64_t offset;
-
- offset = read_offset (buf, is_dwarf64);
- if (altlink == NULL)
- {
- val->encoding = ATTR_VAL_NONE;
- return 1;
- }
- if (offset >= altlink->dwarf_sections.size[DEBUG_STR])
- {
- dwarf_buf_error (buf, "DW_FORM_strp_sup out of range", 0);
- return 0;
- }
- val->encoding = ATTR_VAL_STRING;
- val->u.string =
- (const char *) altlink->dwarf_sections.data[DEBUG_STR] + offset;
- return 1;
- }
- default:
- dwarf_buf_error (buf, "unrecognized DWARF form", -1);
- return 0;
- }
-}
-
-/* If we can determine the value of a string attribute, set *STRING to
- point to the string. Return 1 on success, 0 on error. If we don't
- know the value, we consider that a success, and we don't change
- *STRING. An error is only reported for some sort of out of range
- offset. */
-
-static int
-resolve_string (const struct dwarf_sections *dwarf_sections, int is_dwarf64,
- int is_bigendian, uint64_t str_offsets_base,
- const struct attr_val *val,
- backtrace_error_callback error_callback, void *data,
- const char **string)
-{
- switch (val->encoding)
- {
- case ATTR_VAL_STRING:
- *string = val->u.string;
- return 1;
-
- case ATTR_VAL_STRING_INDEX:
- {
- uint64_t offset;
- struct dwarf_buf offset_buf;
-
- offset = val->u.uint * (is_dwarf64 ? 8 : 4) + str_offsets_base;
- if (offset + (is_dwarf64 ? 8 : 4)
- > dwarf_sections->size[DEBUG_STR_OFFSETS])
- {
- error_callback (data, "DW_FORM_strx value out of range", 0);
- return 0;
- }
-
- offset_buf.name = ".debug_str_offsets";
- offset_buf.start = dwarf_sections->data[DEBUG_STR_OFFSETS];
- offset_buf.buf = dwarf_sections->data[DEBUG_STR_OFFSETS] + offset;
- offset_buf.left = dwarf_sections->size[DEBUG_STR_OFFSETS] - offset;
- offset_buf.is_bigendian = is_bigendian;
- offset_buf.error_callback = error_callback;
- offset_buf.data = data;
- offset_buf.reported_underflow = 0;
-
- offset = read_offset (&offset_buf, is_dwarf64);
- if (offset >= dwarf_sections->size[DEBUG_STR])
- {
- dwarf_buf_error (&offset_buf,
- "DW_FORM_strx offset out of range",
- 0);
- return 0;
- }
- *string = (const char *) dwarf_sections->data[DEBUG_STR] + offset;
- return 1;
- }
-
- default:
- return 1;
- }
-}
-
-/* Set *ADDRESS to the real address for a ATTR_VAL_ADDRESS_INDEX.
- Return 1 on success, 0 on error. */
-
-static int
-resolve_addr_index (const struct dwarf_sections *dwarf_sections,
- uint64_t addr_base, int addrsize, int is_bigendian,
- uint64_t addr_index,
- backtrace_error_callback error_callback, void *data,
- uint64_t *address)
-{
- uint64_t offset;
- struct dwarf_buf addr_buf;
-
- offset = addr_index * addrsize + addr_base;
- if (offset + addrsize > dwarf_sections->size[DEBUG_ADDR])
- {
- error_callback (data, "DW_FORM_addrx value out of range", 0);
- return 0;
- }
-
- addr_buf.name = ".debug_addr";
- addr_buf.start = dwarf_sections->data[DEBUG_ADDR];
- addr_buf.buf = dwarf_sections->data[DEBUG_ADDR] + offset;
- addr_buf.left = dwarf_sections->size[DEBUG_ADDR] - offset;
- addr_buf.is_bigendian = is_bigendian;
- addr_buf.error_callback = error_callback;
- addr_buf.data = data;
- addr_buf.reported_underflow = 0;
-
- *address = read_address (&addr_buf, addrsize);
- return 1;
-}
-
-/* Compare a unit offset against a unit for bsearch. */
-
-static int
-units_search (const void *vkey, const void *ventry)
-{
- const size_t *key = (const size_t *) vkey;
- const struct unit *entry = *((const struct unit *const *) ventry);
- size_t offset;
-
- offset = *key;
- if (offset < entry->low_offset)
- return -1;
- else if (offset >= entry->high_offset)
- return 1;
- else
- return 0;
-}
-
-/* Find a unit in PU containing OFFSET. */
-
-static struct unit *
-find_unit (struct unit **pu, size_t units_count, size_t offset)
-{
- struct unit **u;
- u = bsearch (&offset, pu, units_count, sizeof (struct unit *), units_search);
- return u == NULL ? NULL : *u;
-}
-
-/* Compare function_addrs for qsort. When ranges are nested, make the
- smallest one sort last. */
-
-static int
-function_addrs_compare (const void *v1, const void *v2)
-{
- const struct function_addrs *a1 = (const struct function_addrs *) v1;
- const struct function_addrs *a2 = (const struct function_addrs *) v2;
-
- if (a1->low < a2->low)
- return -1;
- if (a1->low > a2->low)
- return 1;
- if (a1->high < a2->high)
- return 1;
- if (a1->high > a2->high)
- return -1;
- return strcmp (a1->function->name, a2->function->name);
-}
-
-/* Compare a PC against a function_addrs for bsearch. We always
- allocate an entra entry at the end of the vector, so that this
- routine can safely look at the next entry. Note that if there are
- multiple ranges containing PC, which one will be returned is
- unpredictable. We compensate for that in dwarf_fileline. */
-
-static int
-function_addrs_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct function_addrs *entry = (const struct function_addrs *) ventry;
- uintptr_t pc;
-
- pc = *key;
- if (pc < entry->low)
- return -1;
- else if (pc > (entry + 1)->low)
- return 1;
- else
- return 0;
-}
-
-/* Add a new compilation unit address range to a vector. This is
- called via add_ranges. Returns 1 on success, 0 on failure. */
-
-static int
-add_unit_addr (struct backtrace_state *state, void *rdata,
- uint64_t lowpc, uint64_t highpc,
- backtrace_error_callback error_callback, void *data,
- void *pvec)
-{
- struct unit *u = (struct unit *) rdata;
- struct unit_addrs_vector *vec = (struct unit_addrs_vector *) pvec;
- struct unit_addrs *p;
-
- /* Try to merge with the last entry. */
- if (vec->count > 0)
- {
- p = (struct unit_addrs *) vec->vec.base + (vec->count - 1);
- if ((lowpc == p->high || lowpc == p->high + 1)
- && u == p->u)
- {
- if (highpc > p->high)
- p->high = highpc;
- return 1;
- }
- }
-
- p = ((struct unit_addrs *)
- backtrace_vector_grow (state, sizeof (struct unit_addrs),
- error_callback, data, &vec->vec));
- if (p == NULL)
- return 0;
-
- p->low = lowpc;
- p->high = highpc;
- p->u = u;
-
- ++vec->count;
-
- return 1;
-}
-
-/* Compare unit_addrs for qsort. When ranges are nested, make the
- smallest one sort last. */
-
-static int
-unit_addrs_compare (const void *v1, const void *v2)
-{
- const struct unit_addrs *a1 = (const struct unit_addrs *) v1;
- const struct unit_addrs *a2 = (const struct unit_addrs *) v2;
-
- if (a1->low < a2->low)
- return -1;
- if (a1->low > a2->low)
- return 1;
- if (a1->high < a2->high)
- return 1;
- if (a1->high > a2->high)
- return -1;
- if (a1->u->lineoff < a2->u->lineoff)
- return -1;
- if (a1->u->lineoff > a2->u->lineoff)
- return 1;
- return 0;
-}
-
-/* Compare a PC against a unit_addrs for bsearch. We always allocate
- an entry entry at the end of the vector, so that this routine can
- safely look at the next entry. Note that if there are multiple
- ranges containing PC, which one will be returned is unpredictable.
- We compensate for that in dwarf_fileline. */
-
-static int
-unit_addrs_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct unit_addrs *entry = (const struct unit_addrs *) ventry;
- uintptr_t pc;
-
- pc = *key;
- if (pc < entry->low)
- return -1;
- else if (pc > (entry + 1)->low)
- return 1;
- else
- return 0;
-}
-
-/* Sort the line vector by PC. We want a stable sort here to maintain
- the order of lines for the same PC values. Since the sequence is
- being sorted in place, their addresses cannot be relied on to
- maintain stability. That is the purpose of the index member. */
-
-static int
-line_compare (const void *v1, const void *v2)
-{
- const struct line *ln1 = (const struct line *) v1;
- const struct line *ln2 = (const struct line *) v2;
-
- if (ln1->pc < ln2->pc)
- return -1;
- else if (ln1->pc > ln2->pc)
- return 1;
- else if (ln1->idx < ln2->idx)
- return -1;
- else if (ln1->idx > ln2->idx)
- return 1;
- else
- return 0;
-}
-
-/* Find a PC in a line vector. We always allocate an extra entry at
- the end of the lines vector, so that this routine can safely look
- at the next entry. Note that when there are multiple mappings for
- the same PC value, this will return the last one. */
-
-static int
-line_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct line *entry = (const struct line *) ventry;
- uintptr_t pc;
-
- pc = *key;
- if (pc < entry->pc)
- return -1;
- else if (pc >= (entry + 1)->pc)
- return 1;
- else
- return 0;
-}
-
-/* Sort the abbrevs by the abbrev code. This function is passed to
- both qsort and bsearch. */
-
-static int
-abbrev_compare (const void *v1, const void *v2)
-{
- const struct abbrev *a1 = (const struct abbrev *) v1;
- const struct abbrev *a2 = (const struct abbrev *) v2;
-
- if (a1->code < a2->code)
- return -1;
- else if (a1->code > a2->code)
- return 1;
- else
- {
- /* This really shouldn't happen. It means there are two
- different abbrevs with the same code, and that means we don't
- know which one lookup_abbrev should return. */
- return 0;
- }
-}
-
-/* Read the abbreviation table for a compilation unit. Returns 1 on
- success, 0 on failure. */
-
-static int
-read_abbrevs (struct backtrace_state *state, uint64_t abbrev_offset,
- const unsigned char *dwarf_abbrev, size_t dwarf_abbrev_size,
- int is_bigendian, backtrace_error_callback error_callback,
- void *data, struct abbrevs *abbrevs)
-{
- struct dwarf_buf abbrev_buf;
- struct dwarf_buf count_buf;
- size_t num_abbrevs;
-
- abbrevs->num_abbrevs = 0;
- abbrevs->abbrevs = NULL;
-
- if (abbrev_offset >= dwarf_abbrev_size)
- {
- error_callback (data, "abbrev offset out of range", 0);
- return 0;
- }
-
- abbrev_buf.name = ".debug_abbrev";
- abbrev_buf.start = dwarf_abbrev;
- abbrev_buf.buf = dwarf_abbrev + abbrev_offset;
- abbrev_buf.left = dwarf_abbrev_size - abbrev_offset;
- abbrev_buf.is_bigendian = is_bigendian;
- abbrev_buf.error_callback = error_callback;
- abbrev_buf.data = data;
- abbrev_buf.reported_underflow = 0;
-
- /* Count the number of abbrevs in this list. */
-
- count_buf = abbrev_buf;
- num_abbrevs = 0;
- while (read_uleb128 (&count_buf) != 0)
- {
- if (count_buf.reported_underflow)
- return 0;
- ++num_abbrevs;
- // Skip tag.
- read_uleb128 (&count_buf);
- // Skip has_children.
- read_byte (&count_buf);
- // Skip attributes.
- while (read_uleb128 (&count_buf) != 0)
- {
- uint64_t form;
-
- form = read_uleb128 (&count_buf);
- if ((enum dwarf_form) form == DW_FORM_implicit_const)
- read_sleb128 (&count_buf);
- }
- // Skip form of last attribute.
- read_uleb128 (&count_buf);
- }
-
- if (count_buf.reported_underflow)
- return 0;
-
- if (num_abbrevs == 0)
- return 1;
-
- abbrevs->abbrevs = ((struct abbrev *)
- backtrace_alloc (state,
- num_abbrevs * sizeof (struct abbrev),
- error_callback, data));
- if (abbrevs->abbrevs == NULL)
- return 0;
- abbrevs->num_abbrevs = num_abbrevs;
- memset (abbrevs->abbrevs, 0, num_abbrevs * sizeof (struct abbrev));
-
- num_abbrevs = 0;
- while (1)
- {
- uint64_t code;
- struct abbrev a;
- size_t num_attrs;
- struct attr *attrs;
-
- if (abbrev_buf.reported_underflow)
- goto fail;
-
- code = read_uleb128 (&abbrev_buf);
- if (code == 0)
- break;
-
- a.code = code;
- a.tag = (enum dwarf_tag) read_uleb128 (&abbrev_buf);
- a.has_children = read_byte (&abbrev_buf);
-
- count_buf = abbrev_buf;
- num_attrs = 0;
- while (read_uleb128 (&count_buf) != 0)
- {
- uint64_t form;
-
- ++num_attrs;
- form = read_uleb128 (&count_buf);
- if ((enum dwarf_form) form == DW_FORM_implicit_const)
- read_sleb128 (&count_buf);
- }
-
- if (num_attrs == 0)
- {
- attrs = NULL;
- read_uleb128 (&abbrev_buf);
- read_uleb128 (&abbrev_buf);
- }
- else
- {
- attrs = ((struct attr *)
- backtrace_alloc (state, num_attrs * sizeof *attrs,
- error_callback, data));
- if (attrs == NULL)
- goto fail;
- num_attrs = 0;
- while (1)
- {
- uint64_t name;
- uint64_t form;
-
- name = read_uleb128 (&abbrev_buf);
- form = read_uleb128 (&abbrev_buf);
- if (name == 0)
- break;
- attrs[num_attrs].name = (enum dwarf_attribute) name;
- attrs[num_attrs].form = (enum dwarf_form) form;
- if ((enum dwarf_form) form == DW_FORM_implicit_const)
- attrs[num_attrs].val = read_sleb128 (&abbrev_buf);
- else
- attrs[num_attrs].val = 0;
- ++num_attrs;
- }
- }
-
- a.num_attrs = num_attrs;
- a.attrs = attrs;
-
- abbrevs->abbrevs[num_abbrevs] = a;
- ++num_abbrevs;
- }
-
- backtrace_qsort (abbrevs->abbrevs, abbrevs->num_abbrevs,
- sizeof (struct abbrev), abbrev_compare);
-
- return 1;
-
- fail:
- free_abbrevs (state, abbrevs, error_callback, data);
- return 0;
-}
-
-/* Return the abbrev information for an abbrev code. */
-
-static const struct abbrev *
-lookup_abbrev (struct abbrevs *abbrevs, uint64_t code,
- backtrace_error_callback error_callback, void *data)
-{
- struct abbrev key;
- void *p;
-
- /* With GCC, where abbrevs are simply numbered in order, we should
- be able to just look up the entry. */
- if (code - 1 < abbrevs->num_abbrevs
- && abbrevs->abbrevs[code - 1].code == code)
- return &abbrevs->abbrevs[code - 1];
-
- /* Otherwise we have to search. */
- memset (&key, 0, sizeof key);
- key.code = code;
- p = bsearch (&key, abbrevs->abbrevs, abbrevs->num_abbrevs,
- sizeof (struct abbrev), abbrev_compare);
- if (p == NULL)
- {
- error_callback (data, "invalid abbreviation code", 0);
- return NULL;
- }
- return (const struct abbrev *) p;
-}
-
-/* This struct is used to gather address range information while
- reading attributes. We use this while building a mapping from
- address ranges to compilation units and then again while mapping
- from address ranges to function entries. Normally either
- lowpc/highpc is set or ranges is set. */
-
-struct pcrange {
- uint64_t lowpc; /* The low PC value. */
- int have_lowpc; /* Whether a low PC value was found. */
- int lowpc_is_addr_index; /* Whether lowpc is in .debug_addr. */
- uint64_t highpc; /* The high PC value. */
- int have_highpc; /* Whether a high PC value was found. */
- int highpc_is_relative; /* Whether highpc is relative to lowpc. */
- int highpc_is_addr_index; /* Whether highpc is in .debug_addr. */
- uint64_t ranges; /* Offset in ranges section. */
- int have_ranges; /* Whether ranges is valid. */
- int ranges_is_index; /* Whether ranges is DW_FORM_rnglistx. */
-};
-
-/* Update PCRANGE from an attribute value. */
-
-static void
-update_pcrange (const struct attr* attr, const struct attr_val* val,
- struct pcrange *pcrange)
-{
- switch (attr->name)
- {
- case DW_AT_low_pc:
- if (val->encoding == ATTR_VAL_ADDRESS)
- {
- pcrange->lowpc = val->u.uint;
- pcrange->have_lowpc = 1;
- }
- else if (val->encoding == ATTR_VAL_ADDRESS_INDEX)
- {
- pcrange->lowpc = val->u.uint;
- pcrange->have_lowpc = 1;
- pcrange->lowpc_is_addr_index = 1;
- }
- break;
-
- case DW_AT_high_pc:
- if (val->encoding == ATTR_VAL_ADDRESS)
- {
- pcrange->highpc = val->u.uint;
- pcrange->have_highpc = 1;
- }
- else if (val->encoding == ATTR_VAL_UINT)
- {
- pcrange->highpc = val->u.uint;
- pcrange->have_highpc = 1;
- pcrange->highpc_is_relative = 1;
- }
- else if (val->encoding == ATTR_VAL_ADDRESS_INDEX)
- {
- pcrange->highpc = val->u.uint;
- pcrange->have_highpc = 1;
- pcrange->highpc_is_addr_index = 1;
- }
- break;
-
- case DW_AT_ranges:
- if (val->encoding == ATTR_VAL_UINT
- || val->encoding == ATTR_VAL_REF_SECTION)
- {
- pcrange->ranges = val->u.uint;
- pcrange->have_ranges = 1;
- }
- else if (val->encoding == ATTR_VAL_RNGLISTS_INDEX)
- {
- pcrange->ranges = val->u.uint;
- pcrange->have_ranges = 1;
- pcrange->ranges_is_index = 1;
- }
- break;
-
- default:
- break;
- }
-}
-
-/* Call ADD_RANGE for a low/high PC pair. Returns 1 on success, 0 on
- error. */
-
-static int
-add_low_high_range (struct backtrace_state *state,
- const struct dwarf_sections *dwarf_sections,
- uintptr_t base_address, int is_bigendian,
- struct unit *u, const struct pcrange *pcrange,
- int (*add_range) (struct backtrace_state *state,
- void *rdata, uint64_t lowpc,
- uint64_t highpc,
- backtrace_error_callback error_callback,
- void *data, void *vec),
- void *rdata,
- backtrace_error_callback error_callback, void *data,
- void *vec)
-{
- uint64_t lowpc;
- uint64_t highpc;
-
- lowpc = pcrange->lowpc;
- if (pcrange->lowpc_is_addr_index)
- {
- if (!resolve_addr_index (dwarf_sections, u->addr_base, u->addrsize,
- is_bigendian, lowpc, error_callback, data,
- &lowpc))
- return 0;
- }
-
- highpc = pcrange->highpc;
- if (pcrange->highpc_is_addr_index)
- {
- if (!resolve_addr_index (dwarf_sections, u->addr_base, u->addrsize,
- is_bigendian, highpc, error_callback, data,
- &highpc))
- return 0;
- }
- if (pcrange->highpc_is_relative)
- highpc += lowpc;
-
- /* Add in the base address of the module when recording PC values,
- so that we can look up the PC directly. */
- lowpc += base_address;
- highpc += base_address;
-
- return add_range (state, rdata, lowpc, highpc, error_callback, data, vec);
-}
-
-/* Call ADD_RANGE for each range read from .debug_ranges, as used in
- DWARF versions 2 through 4. */
-
-static int
-add_ranges_from_ranges (
- struct backtrace_state *state,
- const struct dwarf_sections *dwarf_sections,
- uintptr_t base_address, int is_bigendian,
- struct unit *u, uint64_t base,
- const struct pcrange *pcrange,
- int (*add_range) (struct backtrace_state *state, void *rdata,
- uint64_t lowpc, uint64_t highpc,
- backtrace_error_callback error_callback, void *data,
- void *vec),
- void *rdata,
- backtrace_error_callback error_callback, void *data,
- void *vec)
-{
- struct dwarf_buf ranges_buf;
-
- if (pcrange->ranges >= dwarf_sections->size[DEBUG_RANGES])
- {
- error_callback (data, "ranges offset out of range", 0);
- return 0;
- }
-
- ranges_buf.name = ".debug_ranges";
- ranges_buf.start = dwarf_sections->data[DEBUG_RANGES];
- ranges_buf.buf = dwarf_sections->data[DEBUG_RANGES] + pcrange->ranges;
- ranges_buf.left = dwarf_sections->size[DEBUG_RANGES] - pcrange->ranges;
- ranges_buf.is_bigendian = is_bigendian;
- ranges_buf.error_callback = error_callback;
- ranges_buf.data = data;
- ranges_buf.reported_underflow = 0;
-
- while (1)
- {
- uint64_t low;
- uint64_t high;
-
- if (ranges_buf.reported_underflow)
- return 0;
-
- low = read_address (&ranges_buf, u->addrsize);
- high = read_address (&ranges_buf, u->addrsize);
-
- if (low == 0 && high == 0)
- break;
-
- if (is_highest_address (low, u->addrsize))
- base = high;
- else
- {
- if (!add_range (state, rdata,
- low + base + base_address,
- high + base + base_address,
- error_callback, data, vec))
- return 0;
- }
- }
-
- if (ranges_buf.reported_underflow)
- return 0;
-
- return 1;
-}
-
-/* Call ADD_RANGE for each range read from .debug_rnglists, as used in
- DWARF version 5. */
-
-static int
-add_ranges_from_rnglists (
- struct backtrace_state *state,
- const struct dwarf_sections *dwarf_sections,
- uintptr_t base_address, int is_bigendian,
- struct unit *u, uint64_t base,
- const struct pcrange *pcrange,
- int (*add_range) (struct backtrace_state *state, void *rdata,
- uint64_t lowpc, uint64_t highpc,
- backtrace_error_callback error_callback, void *data,
- void *vec),
- void *rdata,
- backtrace_error_callback error_callback, void *data,
- void *vec)
-{
- uint64_t offset;
- struct dwarf_buf rnglists_buf;
-
- if (!pcrange->ranges_is_index)
- offset = pcrange->ranges;
- else
- offset = u->rnglists_base + pcrange->ranges * (u->is_dwarf64 ? 8 : 4);
- if (offset >= dwarf_sections->size[DEBUG_RNGLISTS])
- {
- error_callback (data, "rnglists offset out of range", 0);
- return 0;
- }
-
- rnglists_buf.name = ".debug_rnglists";
- rnglists_buf.start = dwarf_sections->data[DEBUG_RNGLISTS];
- rnglists_buf.buf = dwarf_sections->data[DEBUG_RNGLISTS] + offset;
- rnglists_buf.left = dwarf_sections->size[DEBUG_RNGLISTS] - offset;
- rnglists_buf.is_bigendian = is_bigendian;
- rnglists_buf.error_callback = error_callback;
- rnglists_buf.data = data;
- rnglists_buf.reported_underflow = 0;
-
- if (pcrange->ranges_is_index)
- {
- offset = read_offset (&rnglists_buf, u->is_dwarf64);
- offset += u->rnglists_base;
- if (offset >= dwarf_sections->size[DEBUG_RNGLISTS])
- {
- error_callback (data, "rnglists index offset out of range", 0);
- return 0;
- }
- rnglists_buf.buf = dwarf_sections->data[DEBUG_RNGLISTS] + offset;
- rnglists_buf.left = dwarf_sections->size[DEBUG_RNGLISTS] - offset;
- }
-
- while (1)
- {
- unsigned char rle;
-
- rle = read_byte (&rnglists_buf);
- if (rle == DW_RLE_end_of_list)
- break;
- switch (rle)
- {
- case DW_RLE_base_addressx:
- {
- uint64_t index;
-
- index = read_uleb128 (&rnglists_buf);
- if (!resolve_addr_index (dwarf_sections, u->addr_base,
- u->addrsize, is_bigendian, index,
- error_callback, data, &base))
- return 0;
- }
- break;
-
- case DW_RLE_startx_endx:
- {
- uint64_t index;
- uint64_t low;
- uint64_t high;
-
- index = read_uleb128 (&rnglists_buf);
- if (!resolve_addr_index (dwarf_sections, u->addr_base,
- u->addrsize, is_bigendian, index,
- error_callback, data, &low))
- return 0;
- index = read_uleb128 (&rnglists_buf);
- if (!resolve_addr_index (dwarf_sections, u->addr_base,
- u->addrsize, is_bigendian, index,
- error_callback, data, &high))
- return 0;
- if (!add_range (state, rdata, low + base_address,
- high + base_address, error_callback, data,
- vec))
- return 0;
- }
- break;
-
- case DW_RLE_startx_length:
- {
- uint64_t index;
- uint64_t low;
- uint64_t length;
-
- index = read_uleb128 (&rnglists_buf);
- if (!resolve_addr_index (dwarf_sections, u->addr_base,
- u->addrsize, is_bigendian, index,
- error_callback, data, &low))
- return 0;
- length = read_uleb128 (&rnglists_buf);
- low += base_address;
- if (!add_range (state, rdata, low, low + length,
- error_callback, data, vec))
- return 0;
- }
- break;
-
- case DW_RLE_offset_pair:
- {
- uint64_t low;
- uint64_t high;
-
- low = read_uleb128 (&rnglists_buf);
- high = read_uleb128 (&rnglists_buf);
- if (!add_range (state, rdata, low + base + base_address,
- high + base + base_address,
- error_callback, data, vec))
- return 0;
- }
- break;
-
- case DW_RLE_base_address:
- base = read_address (&rnglists_buf, u->addrsize);
- break;
-
- case DW_RLE_start_end:
- {
- uint64_t low;
- uint64_t high;
-
- low = read_address (&rnglists_buf, u->addrsize);
- high = read_address (&rnglists_buf, u->addrsize);
- if (!add_range (state, rdata, low + base_address,
- high + base_address, error_callback, data,
- vec))
- return 0;
- }
- break;
-
- case DW_RLE_start_length:
- {
- uint64_t low;
- uint64_t length;
-
- low = read_address (&rnglists_buf, u->addrsize);
- length = read_uleb128 (&rnglists_buf);
- low += base_address;
- if (!add_range (state, rdata, low, low + length,
- error_callback, data, vec))
- return 0;
- }
- break;
-
- default:
- dwarf_buf_error (&rnglists_buf, "unrecognized DW_RLE value", -1);
- return 0;
- }
- }
-
- if (rnglists_buf.reported_underflow)
- return 0;
-
- return 1;
-}
-
-/* Call ADD_RANGE for each lowpc/highpc pair in PCRANGE. RDATA is
- passed to ADD_RANGE, and is either a struct unit * or a struct
- function *. VEC is the vector we are adding ranges to, and is
- either a struct unit_addrs_vector * or a struct function_vector *.
- Returns 1 on success, 0 on error. */
-
-static int
-add_ranges (struct backtrace_state *state,
- const struct dwarf_sections *dwarf_sections,
- uintptr_t base_address, int is_bigendian,
- struct unit *u, uint64_t base, const struct pcrange *pcrange,
- int (*add_range) (struct backtrace_state *state, void *rdata,
- uint64_t lowpc, uint64_t highpc,
- backtrace_error_callback error_callback,
- void *data, void *vec),
- void *rdata,
- backtrace_error_callback error_callback, void *data,
- void *vec)
-{
- if (pcrange->have_lowpc && pcrange->have_highpc)
- return add_low_high_range (state, dwarf_sections, base_address,
- is_bigendian, u, pcrange, add_range, rdata,
- error_callback, data, vec);
-
- if (!pcrange->have_ranges)
- {
- /* Did not find any address ranges to add. */
- return 1;
- }
-
- if (u->version < 5)
- return add_ranges_from_ranges (state, dwarf_sections, base_address,
- is_bigendian, u, base, pcrange, add_range,
- rdata, error_callback, data, vec);
- else
- return add_ranges_from_rnglists (state, dwarf_sections, base_address,
- is_bigendian, u, base, pcrange, add_range,
- rdata, error_callback, data, vec);
-}
-
-/* Find the address range covered by a compilation unit, reading from
- UNIT_BUF and adding values to U. Returns 1 if all data could be
- read, 0 if there is some error. */
-
-static int
-find_address_ranges (struct backtrace_state *state, uintptr_t base_address,
- struct dwarf_buf *unit_buf,
- const struct dwarf_sections *dwarf_sections,
- int is_bigendian, struct dwarf_data *altlink,
- backtrace_error_callback error_callback, void *data,
- struct unit *u, struct unit_addrs_vector *addrs,
- enum dwarf_tag *unit_tag)
-{
- while (unit_buf->left > 0)
- {
- uint64_t code;
- const struct abbrev *abbrev;
- struct pcrange pcrange;
- struct attr_val name_val;
- int have_name_val;
- struct attr_val comp_dir_val;
- int have_comp_dir_val;
- size_t i;
-
- code = read_uleb128 (unit_buf);
- if (code == 0)
- return 1;
-
- abbrev = lookup_abbrev (&u->abbrevs, code, error_callback, data);
- if (abbrev == NULL)
- return 0;
-
- if (unit_tag != NULL)
- *unit_tag = abbrev->tag;
-
- memset (&pcrange, 0, sizeof pcrange);
- memset (&name_val, 0, sizeof name_val);
- have_name_val = 0;
- memset (&comp_dir_val, 0, sizeof comp_dir_val);
- have_comp_dir_val = 0;
- for (i = 0; i < abbrev->num_attrs; ++i)
- {
- struct attr_val val;
-
- if (!read_attribute (abbrev->attrs[i].form, abbrev->attrs[i].val,
- unit_buf, u->is_dwarf64, u->version,
- u->addrsize, dwarf_sections, altlink, &val))
- return 0;
-
- switch (abbrev->attrs[i].name)
- {
- case DW_AT_low_pc: case DW_AT_high_pc: case DW_AT_ranges:
- update_pcrange (&abbrev->attrs[i], &val, &pcrange);
- break;
-
- case DW_AT_stmt_list:
- if ((abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- && (val.encoding == ATTR_VAL_UINT
- || val.encoding == ATTR_VAL_REF_SECTION))
- u->lineoff = val.u.uint;
- break;
-
- case DW_AT_name:
- if (abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- {
- name_val = val;
- have_name_val = 1;
- }
- break;
-
- case DW_AT_comp_dir:
- if (abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- {
- comp_dir_val = val;
- have_comp_dir_val = 1;
- }
- break;
-
- case DW_AT_str_offsets_base:
- if ((abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- && val.encoding == ATTR_VAL_REF_SECTION)
- u->str_offsets_base = val.u.uint;
- break;
-
- case DW_AT_addr_base:
- if ((abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- && val.encoding == ATTR_VAL_REF_SECTION)
- u->addr_base = val.u.uint;
- break;
-
- case DW_AT_rnglists_base:
- if ((abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- && val.encoding == ATTR_VAL_REF_SECTION)
- u->rnglists_base = val.u.uint;
- break;
-
- default:
- break;
- }
- }
-
- // Resolve strings after we're sure that we have seen
- // DW_AT_str_offsets_base.
- if (have_name_val)
- {
- if (!resolve_string (dwarf_sections, u->is_dwarf64, is_bigendian,
- u->str_offsets_base, &name_val,
- error_callback, data, &u->filename))
- return 0;
- }
- if (have_comp_dir_val)
- {
- if (!resolve_string (dwarf_sections, u->is_dwarf64, is_bigendian,
- u->str_offsets_base, &comp_dir_val,
- error_callback, data, &u->comp_dir))
- return 0;
- }
-
- if (abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_subprogram
- || abbrev->tag == DW_TAG_skeleton_unit)
- {
- if (!add_ranges (state, dwarf_sections, base_address,
- is_bigendian, u, pcrange.lowpc, &pcrange,
- add_unit_addr, (void *) u, error_callback, data,
- (void *) addrs))
- return 0;
-
- /* If we found the PC range in the DW_TAG_compile_unit or
- DW_TAG_skeleton_unit, we can stop now. */
- if ((abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- && (pcrange.have_ranges
- || (pcrange.have_lowpc && pcrange.have_highpc)))
- return 1;
- }
-
- if (abbrev->has_children)
- {
- if (!find_address_ranges (state, base_address, unit_buf,
- dwarf_sections, is_bigendian, altlink,
- error_callback, data, u, addrs, NULL))
- return 0;
- }
- }
-
- return 1;
-}
-
-/* Build a mapping from address ranges to the compilation units where
- the line number information for that range can be found. Returns 1
- on success, 0 on failure. */
-
-static int
-build_address_map (struct backtrace_state *state, uintptr_t base_address,
- const struct dwarf_sections *dwarf_sections,
- int is_bigendian, struct dwarf_data *altlink,
- backtrace_error_callback error_callback, void *data,
- struct unit_addrs_vector *addrs,
- struct unit_vector *unit_vec)
-{
- struct dwarf_buf info;
- struct backtrace_vector units;
- size_t units_count;
- size_t i;
- struct unit **pu;
- size_t unit_offset = 0;
- struct unit_addrs *pa;
-
- memset (&addrs->vec, 0, sizeof addrs->vec);
- memset (&unit_vec->vec, 0, sizeof unit_vec->vec);
- addrs->count = 0;
- unit_vec->count = 0;
-
- /* Read through the .debug_info section. FIXME: Should we use the
- .debug_aranges section? gdb and addr2line don't use it, but I'm
- not sure why. */
-
- info.name = ".debug_info";
- info.start = dwarf_sections->data[DEBUG_INFO];
- info.buf = info.start;
- info.left = dwarf_sections->size[DEBUG_INFO];
- info.is_bigendian = is_bigendian;
- info.error_callback = error_callback;
- info.data = data;
- info.reported_underflow = 0;
-
- memset (&units, 0, sizeof units);
- units_count = 0;
-
- while (info.left > 0)
- {
- const unsigned char *unit_data_start;
- uint64_t len;
- int is_dwarf64;
- struct dwarf_buf unit_buf;
- int version;
- int unit_type;
- uint64_t abbrev_offset;
- int addrsize;
- struct unit *u;
- enum dwarf_tag unit_tag;
-
- if (info.reported_underflow)
- goto fail;
-
- unit_data_start = info.buf;
-
- len = read_initial_length (&info, &is_dwarf64);
- unit_buf = info;
- unit_buf.left = len;
-
- if (!advance (&info, len))
- goto fail;
-
- version = read_uint16 (&unit_buf);
- if (version < 2 || version > 5)
- {
- dwarf_buf_error (&unit_buf, "unrecognized DWARF version", -1);
- goto fail;
- }
-
- if (version < 5)
- unit_type = 0;
- else
- {
- unit_type = read_byte (&unit_buf);
- if (unit_type == DW_UT_type || unit_type == DW_UT_split_type)
- {
- /* This unit doesn't have anything we need. */
- continue;
- }
- }
-
- pu = ((struct unit **)
- backtrace_vector_grow (state, sizeof (struct unit *),
- error_callback, data, &units));
- if (pu == NULL)
- goto fail;
-
- u = ((struct unit *)
- backtrace_alloc (state, sizeof *u, error_callback, data));
- if (u == NULL)
- goto fail;
-
- *pu = u;
- ++units_count;
-
- if (version < 5)
- addrsize = 0; /* Set below. */
- else
- addrsize = read_byte (&unit_buf);
-
- memset (&u->abbrevs, 0, sizeof u->abbrevs);
- abbrev_offset = read_offset (&unit_buf, is_dwarf64);
- if (!read_abbrevs (state, abbrev_offset,
- dwarf_sections->data[DEBUG_ABBREV],
- dwarf_sections->size[DEBUG_ABBREV],
- is_bigendian, error_callback, data, &u->abbrevs))
- goto fail;
-
- if (version < 5)
- addrsize = read_byte (&unit_buf);
-
- switch (unit_type)
- {
- case 0:
- break;
- case DW_UT_compile: case DW_UT_partial:
- break;
- case DW_UT_skeleton: case DW_UT_split_compile:
- read_uint64 (&unit_buf); /* dwo_id */
- break;
- default:
- break;
- }
-
- u->low_offset = unit_offset;
- unit_offset += len + (is_dwarf64 ? 12 : 4);
- u->high_offset = unit_offset;
- u->unit_data = unit_buf.buf;
- u->unit_data_len = unit_buf.left;
- u->unit_data_offset = unit_buf.buf - unit_data_start;
- u->version = version;
- u->is_dwarf64 = is_dwarf64;
- u->addrsize = addrsize;
- u->filename = NULL;
- u->comp_dir = NULL;
- u->abs_filename = NULL;
- u->lineoff = 0;
- u->str_offsets_base = 0;
- u->addr_base = 0;
- u->rnglists_base = 0;
-
- /* The actual line number mappings will be read as needed. */
- u->lines = NULL;
- u->lines_count = 0;
- u->function_addrs = NULL;
- u->function_addrs_count = 0;
-
- if (!find_address_ranges (state, base_address, &unit_buf, dwarf_sections,
- is_bigendian, altlink, error_callback, data,
- u, addrs, &unit_tag))
- goto fail;
-
- if (unit_buf.reported_underflow)
- goto fail;
- }
- if (info.reported_underflow)
- goto fail;
-
- /* Add a trailing addrs entry, but don't include it in addrs->count. */
- pa = ((struct unit_addrs *)
- backtrace_vector_grow (state, sizeof (struct unit_addrs),
- error_callback, data, &addrs->vec));
- if (pa == NULL)
- goto fail;
- pa->low = 0;
- --pa->low;
- pa->high = pa->low;
- pa->u = NULL;
-
- unit_vec->vec = units;
- unit_vec->count = units_count;
- return 1;
-
- fail:
- if (units_count > 0)
- {
- pu = (struct unit **) units.base;
- for (i = 0; i < units_count; i++)
- {
- free_abbrevs (state, &pu[i]->abbrevs, error_callback, data);
- backtrace_free (state, pu[i], sizeof **pu, error_callback, data);
- }
- backtrace_vector_free (state, &units, error_callback, data);
- }
- if (addrs->count > 0)
- {
- backtrace_vector_free (state, &addrs->vec, error_callback, data);
- addrs->count = 0;
- }
- return 0;
-}
-
-/* Add a new mapping to the vector of line mappings that we are
- building. Returns 1 on success, 0 on failure. */
-
-static int
-add_line (struct backtrace_state *state, struct dwarf_data *ddata,
- uintptr_t pc, const char *filename, int lineno,
- backtrace_error_callback error_callback, void *data,
- struct line_vector *vec)
-{
- struct line *ln;
-
- /* If we are adding the same mapping, ignore it. This can happen
- when using discriminators. */
- if (vec->count > 0)
- {
- ln = (struct line *) vec->vec.base + (vec->count - 1);
- if (pc == ln->pc && filename == ln->filename && lineno == ln->lineno)
- return 1;
- }
-
- ln = ((struct line *)
- backtrace_vector_grow (state, sizeof (struct line), error_callback,
- data, &vec->vec));
- if (ln == NULL)
- return 0;
-
- /* Add in the base address here, so that we can look up the PC
- directly. */
- ln->pc = pc + ddata->base_address;
-
- ln->filename = filename;
- ln->lineno = lineno;
- ln->idx = vec->count;
-
- ++vec->count;
-
- return 1;
-}
-
-/* Free the line header information. */
-
-static void
-free_line_header (struct backtrace_state *state, struct line_header *hdr,
- backtrace_error_callback error_callback, void *data)
-{
- if (hdr->dirs_count != 0)
- backtrace_free (state, hdr->dirs, hdr->dirs_count * sizeof (const char *),
- error_callback, data);
- backtrace_free (state, hdr->filenames,
- hdr->filenames_count * sizeof (char *),
- error_callback, data);
-}
-
-/* Read the directories and file names for a line header for version
- 2, setting fields in HDR. Return 1 on success, 0 on failure. */
-
-static int
-read_v2_paths (struct backtrace_state *state, struct unit *u,
- struct dwarf_buf *hdr_buf, struct line_header *hdr)
-{
- const unsigned char *p;
- const unsigned char *pend;
- size_t i;
-
- /* Count the number of directory entries. */
- hdr->dirs_count = 0;
- p = hdr_buf->buf;
- pend = p + hdr_buf->left;
- while (p < pend && *p != '\0')
- {
- p += strnlen((const char *) p, pend - p) + 1;
- ++hdr->dirs_count;
- }
-
- /* The index of the first entry in the list of directories is 1. Index 0 is
- used for the current directory of the compilation. To simplify index
- handling, we set entry 0 to the compilation unit directory. */
- ++hdr->dirs_count;
- hdr->dirs = ((const char **)
- backtrace_alloc (state,
- hdr->dirs_count * sizeof (const char *),
- hdr_buf->error_callback,
- hdr_buf->data));
- if (hdr->dirs == NULL)
- return 0;
-
- hdr->dirs[0] = u->comp_dir;
- i = 1;
- while (*hdr_buf->buf != '\0')
- {
- if (hdr_buf->reported_underflow)
- return 0;
-
- hdr->dirs[i] = read_string (hdr_buf);
- if (hdr->dirs[i] == NULL)
- return 0;
- ++i;
- }
- if (!advance (hdr_buf, 1))
- return 0;
-
- /* Count the number of file entries. */
- hdr->filenames_count = 0;
- p = hdr_buf->buf;
- pend = p + hdr_buf->left;
- while (p < pend && *p != '\0')
- {
- p += strnlen ((const char *) p, pend - p) + 1;
- p += leb128_len (p);
- p += leb128_len (p);
- p += leb128_len (p);
- ++hdr->filenames_count;
- }
-
- /* The index of the first entry in the list of file names is 1. Index 0 is
- used for the DW_AT_name of the compilation unit. To simplify index
- handling, we set entry 0 to the compilation unit file name. */
- ++hdr->filenames_count;
- hdr->filenames = ((const char **)
- backtrace_alloc (state,
- hdr->filenames_count * sizeof (char *),
- hdr_buf->error_callback,
- hdr_buf->data));
- if (hdr->filenames == NULL)
- return 0;
- hdr->filenames[0] = u->filename;
- i = 1;
- while (*hdr_buf->buf != '\0')
- {
- const char *filename;
- uint64_t dir_index;
-
- if (hdr_buf->reported_underflow)
- return 0;
-
- filename = read_string (hdr_buf);
- if (filename == NULL)
- return 0;
- dir_index = read_uleb128 (hdr_buf);
- if (IS_ABSOLUTE_PATH (filename)
- || (dir_index < hdr->dirs_count && hdr->dirs[dir_index] == NULL))
- hdr->filenames[i] = filename;
- else
- {
- const char *dir;
- size_t dir_len;
- size_t filename_len;
- char *s;
-
- if (dir_index < hdr->dirs_count)
- dir = hdr->dirs[dir_index];
- else
- {
- dwarf_buf_error (hdr_buf,
- ("invalid directory index in "
- "line number program header"),
- 0);
- return 0;
- }
- dir_len = strlen (dir);
- filename_len = strlen (filename);
- s = ((char *) backtrace_alloc (state, dir_len + filename_len + 2,
- hdr_buf->error_callback,
- hdr_buf->data));
- if (s == NULL)
- return 0;
- memcpy (s, dir, dir_len);
- /* FIXME: If we are on a DOS-based file system, and the
- directory or the file name use backslashes, then we
- should use a backslash here. */
- s[dir_len] = '/';
- memcpy (s + dir_len + 1, filename, filename_len + 1);
- hdr->filenames[i] = s;
- }
-
- /* Ignore the modification time and size. */
- read_uleb128 (hdr_buf);
- read_uleb128 (hdr_buf);
-
- ++i;
- }
-
- return 1;
-}
-
-/* Read a single version 5 LNCT entry for a directory or file name in a
- line header. Sets *STRING to the resulting name, ignoring other
- data. Return 1 on success, 0 on failure. */
-
-static int
-read_lnct (struct backtrace_state *state, struct dwarf_data *ddata,
- struct unit *u, struct dwarf_buf *hdr_buf,
- const struct line_header *hdr, size_t formats_count,
- const struct line_header_format *formats, const char **string)
-{
- size_t i;
- const char *dir;
- const char *path;
-
- dir = NULL;
- path = NULL;
- for (i = 0; i < formats_count; i++)
- {
- struct attr_val val;
-
- if (!read_attribute (formats[i].form, 0, hdr_buf, u->is_dwarf64,
- u->version, hdr->addrsize, &ddata->dwarf_sections,
- ddata->altlink, &val))
- return 0;
- switch (formats[i].lnct)
- {
- case DW_LNCT_path:
- if (!resolve_string (&ddata->dwarf_sections, u->is_dwarf64,
- ddata->is_bigendian, u->str_offsets_base,
- &val, hdr_buf->error_callback, hdr_buf->data,
- &path))
- return 0;
- break;
- case DW_LNCT_directory_index:
- if (val.encoding == ATTR_VAL_UINT)
- {
- if (val.u.uint >= hdr->dirs_count)
- {
- dwarf_buf_error (hdr_buf,
- ("invalid directory index in "
- "line number program header"),
- 0);
- return 0;
- }
- dir = hdr->dirs[val.u.uint];
- }
- break;
- default:
- /* We don't care about timestamps or sizes or hashes. */
- break;
- }
- }
-
- if (path == NULL)
- {
- dwarf_buf_error (hdr_buf,
- "missing file name in line number program header",
- 0);
- return 0;
- }
-
- if (dir == NULL)
- *string = path;
- else
- {
- size_t dir_len;
- size_t path_len;
- char *s;
-
- dir_len = strlen (dir);
- path_len = strlen (path);
- s = (char *) backtrace_alloc (state, dir_len + path_len + 2,
- hdr_buf->error_callback, hdr_buf->data);
- if (s == NULL)
- return 0;
- memcpy (s, dir, dir_len);
- /* FIXME: If we are on a DOS-based file system, and the
- directory or the path name use backslashes, then we should
- use a backslash here. */
- s[dir_len] = '/';
- memcpy (s + dir_len + 1, path, path_len + 1);
- *string = s;
- }
-
- return 1;
-}
-
-/* Read a set of DWARF 5 line header format entries, setting *PCOUNT
- and *PPATHS. Return 1 on success, 0 on failure. */
-
-static int
-read_line_header_format_entries (struct backtrace_state *state,
- struct dwarf_data *ddata,
- struct unit *u,
- struct dwarf_buf *hdr_buf,
- struct line_header *hdr,
- size_t *pcount,
- const char ***ppaths)
-{
- size_t formats_count;
- struct line_header_format *formats;
- size_t paths_count;
- const char **paths;
- size_t i;
- int ret;
-
- formats_count = read_byte (hdr_buf);
- if (formats_count == 0)
- formats = NULL;
- else
- {
- formats = ((struct line_header_format *)
- backtrace_alloc (state,
- (formats_count
- * sizeof (struct line_header_format)),
- hdr_buf->error_callback,
- hdr_buf->data));
- if (formats == NULL)
- return 0;
-
- for (i = 0; i < formats_count; i++)
- {
- formats[i].lnct = (int) read_uleb128(hdr_buf);
- formats[i].form = (enum dwarf_form) read_uleb128 (hdr_buf);
- }
- }
-
- paths_count = read_uleb128 (hdr_buf);
- if (paths_count == 0)
- {
- *pcount = 0;
- *ppaths = NULL;
- ret = 1;
- goto exit;
- }
-
- paths = ((const char **)
- backtrace_alloc (state, paths_count * sizeof (const char *),
- hdr_buf->error_callback, hdr_buf->data));
- if (paths == NULL)
- {
- ret = 0;
- goto exit;
- }
- for (i = 0; i < paths_count; i++)
- {
- if (!read_lnct (state, ddata, u, hdr_buf, hdr, formats_count,
- formats, &paths[i]))
- {
- backtrace_free (state, paths,
- paths_count * sizeof (const char *),
- hdr_buf->error_callback, hdr_buf->data);
- ret = 0;
- goto exit;
- }
- }
-
- *pcount = paths_count;
- *ppaths = paths;
-
- ret = 1;
-
- exit:
- if (formats != NULL)
- backtrace_free (state, formats,
- formats_count * sizeof (struct line_header_format),
- hdr_buf->error_callback, hdr_buf->data);
-
- return ret;
-}
-
-/* Read the line header. Return 1 on success, 0 on failure. */
-
-static int
-read_line_header (struct backtrace_state *state, struct dwarf_data *ddata,
- struct unit *u, int is_dwarf64, struct dwarf_buf *line_buf,
- struct line_header *hdr)
-{
- uint64_t hdrlen;
- struct dwarf_buf hdr_buf;
-
- hdr->version = read_uint16 (line_buf);
- if (hdr->version < 2 || hdr->version > 5)
- {
- dwarf_buf_error (line_buf, "unsupported line number version", -1);
- return 0;
- }
-
- if (hdr->version < 5)
- hdr->addrsize = u->addrsize;
- else
- {
- hdr->addrsize = read_byte (line_buf);
- /* We could support a non-zero segment_selector_size but I doubt
- we'll ever see it. */
- if (read_byte (line_buf) != 0)
- {
- dwarf_buf_error (line_buf,
- "non-zero segment_selector_size not supported",
- -1);
- return 0;
- }
- }
-
- hdrlen = read_offset (line_buf, is_dwarf64);
-
- hdr_buf = *line_buf;
- hdr_buf.left = hdrlen;
-
- if (!advance (line_buf, hdrlen))
- return 0;
-
- hdr->min_insn_len = read_byte (&hdr_buf);
- if (hdr->version < 4)
- hdr->max_ops_per_insn = 1;
- else
- hdr->max_ops_per_insn = read_byte (&hdr_buf);
-
- /* We don't care about default_is_stmt. */
- read_byte (&hdr_buf);
-
- hdr->line_base = read_sbyte (&hdr_buf);
- hdr->line_range = read_byte (&hdr_buf);
-
- hdr->opcode_base = read_byte (&hdr_buf);
- hdr->opcode_lengths = hdr_buf.buf;
- if (!advance (&hdr_buf, hdr->opcode_base - 1))
- return 0;
-
- if (hdr->version < 5)
- {
- if (!read_v2_paths (state, u, &hdr_buf, hdr))
- return 0;
- }
- else
- {
- if (!read_line_header_format_entries (state, ddata, u, &hdr_buf, hdr,
- &hdr->dirs_count,
- &hdr->dirs))
- return 0;
- if (!read_line_header_format_entries (state, ddata, u, &hdr_buf, hdr,
- &hdr->filenames_count,
- &hdr->filenames))
- return 0;
- }
-
- if (hdr_buf.reported_underflow)
- return 0;
-
- return 1;
-}
-
-/* Read the line program, adding line mappings to VEC. Return 1 on
- success, 0 on failure. */
-
-static int
-read_line_program (struct backtrace_state *state, struct dwarf_data *ddata,
- const struct line_header *hdr, struct dwarf_buf *line_buf,
- struct line_vector *vec)
-{
- uint64_t address;
- unsigned int op_index;
- const char *reset_filename;
- const char *filename;
- int lineno;
-
- address = 0;
- op_index = 0;
- if (hdr->filenames_count > 1)
- reset_filename = hdr->filenames[1];
- else
- reset_filename = "";
- filename = reset_filename;
- lineno = 1;
- while (line_buf->left > 0)
- {
- unsigned int op;
-
- op = read_byte (line_buf);
- if (op >= hdr->opcode_base)
- {
- unsigned int advance;
-
- /* Special opcode. */
- op -= hdr->opcode_base;
- advance = op / hdr->line_range;
- address += (hdr->min_insn_len * (op_index + advance)
- / hdr->max_ops_per_insn);
- op_index = (op_index + advance) % hdr->max_ops_per_insn;
- lineno += hdr->line_base + (int) (op % hdr->line_range);
- add_line (state, ddata, address, filename, lineno,
- line_buf->error_callback, line_buf->data, vec);
- }
- else if (op == DW_LNS_extended_op)
- {
- uint64_t len;
-
- len = read_uleb128 (line_buf);
- op = read_byte (line_buf);
- switch (op)
- {
- case DW_LNE_end_sequence:
- /* FIXME: Should we mark the high PC here? It seems
- that we already have that information from the
- compilation unit. */
- address = 0;
- op_index = 0;
- filename = reset_filename;
- lineno = 1;
- break;
- case DW_LNE_set_address:
- address = read_address (line_buf, hdr->addrsize);
- break;
- case DW_LNE_define_file:
- {
- const char *f;
- unsigned int dir_index;
-
- f = read_string (line_buf);
- if (f == NULL)
- return 0;
- dir_index = read_uleb128 (line_buf);
- /* Ignore that time and length. */
- read_uleb128 (line_buf);
- read_uleb128 (line_buf);
- if (IS_ABSOLUTE_PATH (f))
- filename = f;
- else
- {
- const char *dir;
- size_t dir_len;
- size_t f_len;
- char *p;
-
- if (dir_index < hdr->dirs_count)
- dir = hdr->dirs[dir_index];
- else
- {
- dwarf_buf_error (line_buf,
- ("invalid directory index "
- "in line number program"),
- 0);
- return 0;
- }
- dir_len = strlen (dir);
- f_len = strlen (f);
- p = ((char *)
- backtrace_alloc (state, dir_len + f_len + 2,
- line_buf->error_callback,
- line_buf->data));
- if (p == NULL)
- return 0;
- memcpy (p, dir, dir_len);
- /* FIXME: If we are on a DOS-based file system,
- and the directory or the file name use
- backslashes, then we should use a backslash
- here. */
- p[dir_len] = '/';
- memcpy (p + dir_len + 1, f, f_len + 1);
- filename = p;
- }
- }
- break;
- case DW_LNE_set_discriminator:
- /* We don't care about discriminators. */
- read_uleb128 (line_buf);
- break;
- default:
- if (!advance (line_buf, len - 1))
- return 0;
- break;
- }
- }
- else
- {
- switch (op)
- {
- case DW_LNS_copy:
- add_line (state, ddata, address, filename, lineno,
- line_buf->error_callback, line_buf->data, vec);
- break;
- case DW_LNS_advance_pc:
- {
- uint64_t advance;
-
- advance = read_uleb128 (line_buf);
- address += (hdr->min_insn_len * (op_index + advance)
- / hdr->max_ops_per_insn);
- op_index = (op_index + advance) % hdr->max_ops_per_insn;
- }
- break;
- case DW_LNS_advance_line:
- lineno += (int) read_sleb128 (line_buf);
- break;
- case DW_LNS_set_file:
- {
- uint64_t fileno;
-
- fileno = read_uleb128 (line_buf);
- if (fileno >= hdr->filenames_count)
- {
- dwarf_buf_error (line_buf,
- ("invalid file number in "
- "line number program"),
- 0);
- return 0;
- }
- filename = hdr->filenames[fileno];
- }
- break;
- case DW_LNS_set_column:
- read_uleb128 (line_buf);
- break;
- case DW_LNS_negate_stmt:
- break;
- case DW_LNS_set_basic_block:
- break;
- case DW_LNS_const_add_pc:
- {
- unsigned int advance;
-
- op = 255 - hdr->opcode_base;
- advance = op / hdr->line_range;
- address += (hdr->min_insn_len * (op_index + advance)
- / hdr->max_ops_per_insn);
- op_index = (op_index + advance) % hdr->max_ops_per_insn;
- }
- break;
- case DW_LNS_fixed_advance_pc:
- address += read_uint16 (line_buf);
- op_index = 0;
- break;
- case DW_LNS_set_prologue_end:
- break;
- case DW_LNS_set_epilogue_begin:
- break;
- case DW_LNS_set_isa:
- read_uleb128 (line_buf);
- break;
- default:
- {
- unsigned int i;
-
- for (i = hdr->opcode_lengths[op - 1]; i > 0; --i)
- read_uleb128 (line_buf);
- }
- break;
- }
- }
- }
-
- return 1;
-}
-
-/* Read the line number information for a compilation unit. Returns 1
- on success, 0 on failure. */
-
-static int
-read_line_info (struct backtrace_state *state, struct dwarf_data *ddata,
- backtrace_error_callback error_callback, void *data,
- struct unit *u, struct line_header *hdr, struct line **lines,
- size_t *lines_count)
-{
- struct line_vector vec;
- struct dwarf_buf line_buf;
- uint64_t len;
- int is_dwarf64;
- struct line *ln;
-
- memset (&vec.vec, 0, sizeof vec.vec);
- vec.count = 0;
-
- memset (hdr, 0, sizeof *hdr);
-
- if (u->lineoff != (off_t) (size_t) u->lineoff
- || (size_t) u->lineoff >= ddata->dwarf_sections.size[DEBUG_LINE])
- {
- error_callback (data, "unit line offset out of range", 0);
- goto fail;
- }
-
- line_buf.name = ".debug_line";
- line_buf.start = ddata->dwarf_sections.data[DEBUG_LINE];
- line_buf.buf = ddata->dwarf_sections.data[DEBUG_LINE] + u->lineoff;
- line_buf.left = ddata->dwarf_sections.size[DEBUG_LINE] - u->lineoff;
- line_buf.is_bigendian = ddata->is_bigendian;
- line_buf.error_callback = error_callback;
- line_buf.data = data;
- line_buf.reported_underflow = 0;
-
- len = read_initial_length (&line_buf, &is_dwarf64);
- line_buf.left = len;
-
- if (!read_line_header (state, ddata, u, is_dwarf64, &line_buf, hdr))
- goto fail;
-
- if (!read_line_program (state, ddata, hdr, &line_buf, &vec))
- goto fail;
-
- if (line_buf.reported_underflow)
- goto fail;
-
- if (vec.count == 0)
- {
- /* This is not a failure in the sense of a generating an error,
- but it is a failure in that sense that we have no useful
- information. */
- goto fail;
- }
-
- /* Allocate one extra entry at the end. */
- ln = ((struct line *)
- backtrace_vector_grow (state, sizeof (struct line), error_callback,
- data, &vec.vec));
- if (ln == NULL)
- goto fail;
- ln->pc = (uintptr_t) -1;
- ln->filename = NULL;
- ln->lineno = 0;
- ln->idx = 0;
-
- if (!backtrace_vector_release (state, &vec.vec, error_callback, data))
- goto fail;
-
- ln = (struct line *) vec.vec.base;
- backtrace_qsort (ln, vec.count, sizeof (struct line), line_compare);
-
- *lines = ln;
- *lines_count = vec.count;
-
- return 1;
-
- fail:
- backtrace_vector_free (state, &vec.vec, error_callback, data);
- free_line_header (state, hdr, error_callback, data);
- *lines = (struct line *) (uintptr_t) -1;
- *lines_count = 0;
- return 0;
-}
-
-static const char *read_referenced_name (struct dwarf_data *, struct unit *,
- uint64_t, backtrace_error_callback,
- void *);
-
-/* Read the name of a function from a DIE referenced by ATTR with VAL. */
-
-static const char *
-read_referenced_name_from_attr (struct dwarf_data *ddata, struct unit *u,
- struct attr *attr, struct attr_val *val,
- backtrace_error_callback error_callback,
- void *data)
-{
- switch (attr->name)
- {
- case DW_AT_abstract_origin:
- case DW_AT_specification:
- break;
- default:
- return NULL;
- }
-
- if (attr->form == DW_FORM_ref_sig8)
- return NULL;
-
- if (val->encoding == ATTR_VAL_REF_INFO)
- {
- struct unit *unit
- = find_unit (ddata->units, ddata->units_count,
- val->u.uint);
- if (unit == NULL)
- return NULL;
-
- uint64_t offset = val->u.uint - unit->low_offset;
- return read_referenced_name (ddata, unit, offset, error_callback, data);
- }
-
- if (val->encoding == ATTR_VAL_UINT
- || val->encoding == ATTR_VAL_REF_UNIT)
- return read_referenced_name (ddata, u, val->u.uint, error_callback, data);
-
- if (val->encoding == ATTR_VAL_REF_ALT_INFO)
- {
- struct unit *alt_unit
- = find_unit (ddata->altlink->units, ddata->altlink->units_count,
- val->u.uint);
- if (alt_unit == NULL)
- return NULL;
-
- uint64_t offset = val->u.uint - alt_unit->low_offset;
- return read_referenced_name (ddata->altlink, alt_unit, offset,
- error_callback, data);
- }
-
- return NULL;
-}
-
-/* Read the name of a function from a DIE referenced by a
- DW_AT_abstract_origin or DW_AT_specification tag. OFFSET is within
- the same compilation unit. */
-
-static const char *
-read_referenced_name (struct dwarf_data *ddata, struct unit *u,
- uint64_t offset, backtrace_error_callback error_callback,
- void *data)
-{
- struct dwarf_buf unit_buf;
- uint64_t code;
- const struct abbrev *abbrev;
- const char *ret;
- size_t i;
-
- /* OFFSET is from the start of the data for this compilation unit.
- U->unit_data is the data, but it starts U->unit_data_offset bytes
- from the beginning. */
-
- if (offset < u->unit_data_offset
- || offset - u->unit_data_offset >= u->unit_data_len)
- {
- error_callback (data,
- "abstract origin or specification out of range",
- 0);
- return NULL;
- }
-
- offset -= u->unit_data_offset;
-
- unit_buf.name = ".debug_info";
- unit_buf.start = ddata->dwarf_sections.data[DEBUG_INFO];
- unit_buf.buf = u->unit_data + offset;
- unit_buf.left = u->unit_data_len - offset;
- unit_buf.is_bigendian = ddata->is_bigendian;
- unit_buf.error_callback = error_callback;
- unit_buf.data = data;
- unit_buf.reported_underflow = 0;
-
- code = read_uleb128 (&unit_buf);
- if (code == 0)
- {
- dwarf_buf_error (&unit_buf,
- "invalid abstract origin or specification",
- 0);
- return NULL;
- }
-
- abbrev = lookup_abbrev (&u->abbrevs, code, error_callback, data);
- if (abbrev == NULL)
- return NULL;
-
- ret = NULL;
- for (i = 0; i < abbrev->num_attrs; ++i)
- {
- struct attr_val val;
-
- if (!read_attribute (abbrev->attrs[i].form, abbrev->attrs[i].val,
- &unit_buf, u->is_dwarf64, u->version, u->addrsize,
- &ddata->dwarf_sections, ddata->altlink, &val))
- return NULL;
-
- switch (abbrev->attrs[i].name)
- {
- case DW_AT_name:
- /* Third name preference: don't override. A name we found in some
- other way, will normally be more useful -- e.g., this name is
- normally not mangled. */
- if (ret != NULL)
- break;
- if (!resolve_string (&ddata->dwarf_sections, u->is_dwarf64,
- ddata->is_bigendian, u->str_offsets_base,
- &val, error_callback, data, &ret))
- return NULL;
- break;
-
- case DW_AT_linkage_name:
- case DW_AT_MIPS_linkage_name:
- /* First name preference: override all. */
- {
- const char *s;
-
- s = NULL;
- if (!resolve_string (&ddata->dwarf_sections, u->is_dwarf64,
- ddata->is_bigendian, u->str_offsets_base,
- &val, error_callback, data, &s))
- return NULL;
- if (s != NULL)
- return s;
- }
- break;
-
- case DW_AT_specification:
- /* Second name preference: override DW_AT_name, don't override
- DW_AT_linkage_name. */
- {
- const char *name;
-
- name = read_referenced_name_from_attr (ddata, u, &abbrev->attrs[i],
- &val, error_callback, data);
- if (name != NULL)
- ret = name;
- }
- break;
-
- default:
- break;
- }
- }
-
- return ret;
-}
-
-/* Add a range to a unit that maps to a function. This is called via
- add_ranges. Returns 1 on success, 0 on error. */
-
-static int
-add_function_range (struct backtrace_state *state, void *rdata,
- uint64_t lowpc, uint64_t highpc,
- backtrace_error_callback error_callback, void *data,
- void *pvec)
-{
- struct function *function = (struct function *) rdata;
- struct function_vector *vec = (struct function_vector *) pvec;
- struct function_addrs *p;
-
- if (vec->count > 0)
- {
- p = (struct function_addrs *) vec->vec.base + (vec->count - 1);
- if ((lowpc == p->high || lowpc == p->high + 1)
- && function == p->function)
- {
- if (highpc > p->high)
- p->high = highpc;
- return 1;
- }
- }
-
- p = ((struct function_addrs *)
- backtrace_vector_grow (state, sizeof (struct function_addrs),
- error_callback, data, &vec->vec));
- if (p == NULL)
- return 0;
-
- p->low = lowpc;
- p->high = highpc;
- p->function = function;
-
- ++vec->count;
-
- return 1;
-}
-
-/* Read one entry plus all its children. Add function addresses to
- VEC. Returns 1 on success, 0 on error. */
-
-static int
-read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
- struct unit *u, uint64_t base, struct dwarf_buf *unit_buf,
- const struct line_header *lhdr,
- backtrace_error_callback error_callback, void *data,
- struct function_vector *vec_function,
- struct function_vector *vec_inlined)
-{
- while (unit_buf->left > 0)
- {
- uint64_t code;
- const struct abbrev *abbrev;
- int is_function;
- struct function *function;
- struct function_vector *vec;
- size_t i;
- struct pcrange pcrange;
- int have_linkage_name;
-
- code = read_uleb128 (unit_buf);
- if (code == 0)
- return 1;
-
- abbrev = lookup_abbrev (&u->abbrevs, code, error_callback, data);
- if (abbrev == NULL)
- return 0;
-
- is_function = (abbrev->tag == DW_TAG_subprogram
- || abbrev->tag == DW_TAG_entry_point
- || abbrev->tag == DW_TAG_inlined_subroutine);
-
- if (abbrev->tag == DW_TAG_inlined_subroutine)
- vec = vec_inlined;
- else
- vec = vec_function;
-
- function = NULL;
- if (is_function)
- {
- function = ((struct function *)
- backtrace_alloc (state, sizeof *function,
- error_callback, data));
- if (function == NULL)
- return 0;
- memset (function, 0, sizeof *function);
- }
-
- memset (&pcrange, 0, sizeof pcrange);
- have_linkage_name = 0;
- for (i = 0; i < abbrev->num_attrs; ++i)
- {
- struct attr_val val;
-
- if (!read_attribute (abbrev->attrs[i].form, abbrev->attrs[i].val,
- unit_buf, u->is_dwarf64, u->version,
- u->addrsize, &ddata->dwarf_sections,
- ddata->altlink, &val))
- return 0;
-
- /* The compile unit sets the base address for any address
- ranges in the function entries. */
- if ((abbrev->tag == DW_TAG_compile_unit
- || abbrev->tag == DW_TAG_skeleton_unit)
- && abbrev->attrs[i].name == DW_AT_low_pc)
- {
- if (val.encoding == ATTR_VAL_ADDRESS)
- base = val.u.uint;
- else if (val.encoding == ATTR_VAL_ADDRESS_INDEX)
- {
- if (!resolve_addr_index (&ddata->dwarf_sections,
- u->addr_base, u->addrsize,
- ddata->is_bigendian, val.u.uint,
- error_callback, data, &base))
- return 0;
- }
- }
-
- if (is_function)
- {
- switch (abbrev->attrs[i].name)
- {
- case DW_AT_call_file:
- if (val.encoding == ATTR_VAL_UINT)
- {
- if (val.u.uint >= lhdr->filenames_count)
- {
- dwarf_buf_error (unit_buf,
- ("invalid file number in "
- "DW_AT_call_file attribute"),
- 0);
- return 0;
- }
- function->caller_filename = lhdr->filenames[val.u.uint];
- }
- break;
-
- case DW_AT_call_line:
- if (val.encoding == ATTR_VAL_UINT)
- function->caller_lineno = val.u.uint;
- break;
-
- case DW_AT_abstract_origin:
- case DW_AT_specification:
- /* Second name preference: override DW_AT_name, don't override
- DW_AT_linkage_name. */
- if (have_linkage_name)
- break;
- {
- const char *name;
-
- name
- = read_referenced_name_from_attr (ddata, u,
- &abbrev->attrs[i], &val,
- error_callback, data);
- if (name != NULL)
- function->name = name;
- }
- break;
-
- case DW_AT_name:
- /* Third name preference: don't override. */
- if (function->name != NULL)
- break;
- if (!resolve_string (&ddata->dwarf_sections, u->is_dwarf64,
- ddata->is_bigendian,
- u->str_offsets_base, &val,
- error_callback, data, &function->name))
- return 0;
- break;
-
- case DW_AT_linkage_name:
- case DW_AT_MIPS_linkage_name:
- /* First name preference: override all. */
- {
- const char *s;
-
- s = NULL;
- if (!resolve_string (&ddata->dwarf_sections, u->is_dwarf64,
- ddata->is_bigendian,
- u->str_offsets_base, &val,
- error_callback, data, &s))
- return 0;
- if (s != NULL)
- {
- function->name = s;
- have_linkage_name = 1;
- }
- }
- break;
-
- case DW_AT_low_pc: case DW_AT_high_pc: case DW_AT_ranges:
- update_pcrange (&abbrev->attrs[i], &val, &pcrange);
- break;
-
- default:
- break;
- }
- }
- }
-
- /* If we couldn't find a name for the function, we have no use
- for it. */
- if (is_function && function->name == NULL)
- {
- backtrace_free (state, function, sizeof *function,
- error_callback, data);
- is_function = 0;
- }
-
- if (is_function)
- {
- if (pcrange.have_ranges
- || (pcrange.have_lowpc && pcrange.have_highpc))
- {
- if (!add_ranges (state, &ddata->dwarf_sections,
- ddata->base_address, ddata->is_bigendian,
- u, base, &pcrange, add_function_range,
- (void *) function, error_callback, data,
- (void *) vec))
- return 0;
- }
- else
- {
- backtrace_free (state, function, sizeof *function,
- error_callback, data);
- is_function = 0;
- }
- }
-
- if (abbrev->has_children)
- {
- if (!is_function)
- {
- if (!read_function_entry (state, ddata, u, base, unit_buf, lhdr,
- error_callback, data, vec_function,
- vec_inlined))
- return 0;
- }
- else
- {
- struct function_vector fvec;
-
- /* Gather any information for inlined functions in
- FVEC. */
-
- memset (&fvec, 0, sizeof fvec);
-
- if (!read_function_entry (state, ddata, u, base, unit_buf, lhdr,
- error_callback, data, vec_function,
- &fvec))
- return 0;
-
- if (fvec.count > 0)
- {
- struct function_addrs *p;
- struct function_addrs *faddrs;
-
- /* Allocate a trailing entry, but don't include it
- in fvec.count. */
- p = ((struct function_addrs *)
- backtrace_vector_grow (state,
- sizeof (struct function_addrs),
- error_callback, data,
- &fvec.vec));
- if (p == NULL)
- return 0;
- p->low = 0;
- --p->low;
- p->high = p->low;
- p->function = NULL;
-
- if (!backtrace_vector_release (state, &fvec.vec,
- error_callback, data))
- return 0;
-
- faddrs = (struct function_addrs *) fvec.vec.base;
- backtrace_qsort (faddrs, fvec.count,
- sizeof (struct function_addrs),
- function_addrs_compare);
-
- function->function_addrs = faddrs;
- function->function_addrs_count = fvec.count;
- }
- }
- }
- }
-
- return 1;
-}
-
-/* Read function name information for a compilation unit. We look
- through the whole unit looking for function tags. */
-
-static void
-read_function_info (struct backtrace_state *state, struct dwarf_data *ddata,
- const struct line_header *lhdr,
- backtrace_error_callback error_callback, void *data,
- struct unit *u, struct function_vector *fvec,
- struct function_addrs **ret_addrs,
- size_t *ret_addrs_count)
-{
- struct function_vector lvec;
- struct function_vector *pfvec;
- struct dwarf_buf unit_buf;
- struct function_addrs *p;
- struct function_addrs *addrs;
- size_t addrs_count;
-
- /* Use FVEC if it is not NULL. Otherwise use our own vector. */
- if (fvec != NULL)
- pfvec = fvec;
- else
- {
- memset (&lvec, 0, sizeof lvec);
- pfvec = &lvec;
- }
-
- unit_buf.name = ".debug_info";
- unit_buf.start = ddata->dwarf_sections.data[DEBUG_INFO];
- unit_buf.buf = u->unit_data;
- unit_buf.left = u->unit_data_len;
- unit_buf.is_bigendian = ddata->is_bigendian;
- unit_buf.error_callback = error_callback;
- unit_buf.data = data;
- unit_buf.reported_underflow = 0;
-
- while (unit_buf.left > 0)
- {
- if (!read_function_entry (state, ddata, u, 0, &unit_buf, lhdr,
- error_callback, data, pfvec, pfvec))
- return;
- }
-
- if (pfvec->count == 0)
- return;
-
- /* Allocate a trailing entry, but don't include it in
- pfvec->count. */
- p = ((struct function_addrs *)
- backtrace_vector_grow (state, sizeof (struct function_addrs),
- error_callback, data, &pfvec->vec));
- if (p == NULL)
- return;
- p->low = 0;
- --p->low;
- p->high = p->low;
- p->function = NULL;
-
- addrs_count = pfvec->count;
-
- if (fvec == NULL)
- {
- if (!backtrace_vector_release (state, &lvec.vec, error_callback, data))
- return;
- addrs = (struct function_addrs *) pfvec->vec.base;
- }
- else
- {
- /* Finish this list of addresses, but leave the remaining space in
- the vector available for the next function unit. */
- addrs = ((struct function_addrs *)
- backtrace_vector_finish (state, &fvec->vec,
- error_callback, data));
- if (addrs == NULL)
- return;
- fvec->count = 0;
- }
-
- backtrace_qsort (addrs, addrs_count, sizeof (struct function_addrs),
- function_addrs_compare);
-
- *ret_addrs = addrs;
- *ret_addrs_count = addrs_count;
-}
-
-/* See if PC is inlined in FUNCTION. If it is, print out the inlined
- information, and update FILENAME and LINENO for the caller.
- Returns whatever CALLBACK returns, or 0 to keep going. */
-
-static int
-report_inlined_functions (uintptr_t pc, struct function *function,
- backtrace_full_callback callback, void *data,
- const char **filename, int *lineno)
-{
- struct function_addrs *p;
- struct function_addrs *match;
- struct function *inlined;
- int ret;
-
- if (function->function_addrs_count == 0)
- return 0;
-
- /* Our search isn't safe if pc == -1, as that is the sentinel
- value. */
- if (pc + 1 == 0)
- return 0;
-
- p = ((struct function_addrs *)
- bsearch (&pc, function->function_addrs,
- function->function_addrs_count,
- sizeof (struct function_addrs),
- function_addrs_search));
- if (p == NULL)
- return 0;
-
- /* Here pc >= p->low && pc < (p + 1)->low. The function_addrs are
- sorted by low, so if pc > p->low we are at the end of a range of
- function_addrs with the same low value. If pc == p->low walk
- forward to the end of the range with that low value. Then walk
- backward and use the first range that includes pc. */
- while (pc == (p + 1)->low)
- ++p;
- match = NULL;
- while (1)
- {
- if (pc < p->high)
- {
- match = p;
- break;
- }
- if (p == function->function_addrs)
- break;
- if ((p - 1)->low < p->low)
- break;
- --p;
- }
- if (match == NULL)
- return 0;
-
- /* We found an inlined call. */
-
- inlined = match->function;
-
- /* Report any calls inlined into this one. */
- ret = report_inlined_functions (pc, inlined, callback, data,
- filename, lineno);
- if (ret != 0)
- return ret;
-
- /* Report this inlined call. */
- ret = callback (data, pc, *filename, *lineno, inlined->name);
- if (ret != 0)
- return ret;
-
- /* Our caller will report the caller of the inlined function; tell
- it the appropriate filename and line number. */
- *filename = inlined->caller_filename;
- *lineno = inlined->caller_lineno;
-
- return 0;
-}
-
-/* Look for a PC in the DWARF mapping for one module. On success,
- call CALLBACK and return whatever it returns. On error, call
- ERROR_CALLBACK and return 0. Sets *FOUND to 1 if the PC is found,
- 0 if not. */
-
-static int
-dwarf_lookup_pc (struct backtrace_state *state, struct dwarf_data *ddata,
- uintptr_t pc, backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data,
- int *found)
-{
- struct unit_addrs *entry;
- int found_entry;
- struct unit *u;
- int new_data;
- struct line *lines;
- struct line *ln;
- struct function_addrs *p;
- struct function_addrs *fmatch;
- struct function *function;
- const char *filename;
- int lineno;
- int ret;
-
- *found = 1;
-
- /* Find an address range that includes PC. Our search isn't safe if
- PC == -1, as we use that as a sentinel value, so skip the search
- in that case. */
- entry = (ddata->addrs_count == 0 || pc + 1 == 0
- ? NULL
- : bsearch (&pc, ddata->addrs, ddata->addrs_count,
- sizeof (struct unit_addrs), unit_addrs_search));
-
- if (entry == NULL)
- {
- *found = 0;
- return 0;
- }
-
- /* Here pc >= entry->low && pc < (entry + 1)->low. The unit_addrs
- are sorted by low, so if pc > p->low we are at the end of a range
- of unit_addrs with the same low value. If pc == p->low walk
- forward to the end of the range with that low value. Then walk
- backward and use the first range that includes pc. */
- while (pc == (entry + 1)->low)
- ++entry;
- found_entry = 0;
- while (1)
- {
- if (pc < entry->high)
- {
- found_entry = 1;
- break;
- }
- if (entry == ddata->addrs)
- break;
- if ((entry - 1)->low < entry->low)
- break;
- --entry;
- }
- if (!found_entry)
- {
- *found = 0;
- return 0;
- }
-
- /* We need the lines, lines_count, function_addrs,
- function_addrs_count fields of u. If they are not set, we need
- to set them. When running in threaded mode, we need to allow for
- the possibility that some other thread is setting them
- simultaneously. */
-
- u = entry->u;
- lines = u->lines;
-
- /* Skip units with no useful line number information by walking
- backward. Useless line number information is marked by setting
- lines == -1. */
- while (entry > ddata->addrs
- && pc >= (entry - 1)->low
- && pc < (entry - 1)->high)
- {
- if (state->threaded)
- lines = (struct line *) backtrace_atomic_load_pointer (&u->lines);
-
- if (lines != (struct line *) (uintptr_t) -1)
- break;
-
- --entry;
-
- u = entry->u;
- lines = u->lines;
- }
-
- if (state->threaded)
- lines = backtrace_atomic_load_pointer (&u->lines);
-
- new_data = 0;
- if (lines == NULL)
- {
- struct function_addrs *function_addrs;
- size_t function_addrs_count;
- struct line_header lhdr;
- size_t count;
-
- /* We have never read the line information for this unit. Read
- it now. */
-
- function_addrs = NULL;
- function_addrs_count = 0;
- if (read_line_info (state, ddata, error_callback, data, entry->u, &lhdr,
- &lines, &count))
- {
- struct function_vector *pfvec;
-
- /* If not threaded, reuse DDATA->FVEC for better memory
- consumption. */
- if (state->threaded)
- pfvec = NULL;
- else
- pfvec = &ddata->fvec;
- read_function_info (state, ddata, &lhdr, error_callback, data,
- entry->u, pfvec, &function_addrs,
- &function_addrs_count);
- free_line_header (state, &lhdr, error_callback, data);
- new_data = 1;
- }
-
- /* Atomically store the information we just read into the unit.
- If another thread is simultaneously writing, it presumably
- read the same information, and we don't care which one we
- wind up with; we just leak the other one. We do have to
- write the lines field last, so that the acquire-loads above
- ensure that the other fields are set. */
-
- if (!state->threaded)
- {
- u->lines_count = count;
- u->function_addrs = function_addrs;
- u->function_addrs_count = function_addrs_count;
- u->lines = lines;
- }
- else
- {
- backtrace_atomic_store_size_t (&u->lines_count, count);
- backtrace_atomic_store_pointer (&u->function_addrs, function_addrs);
- backtrace_atomic_store_size_t (&u->function_addrs_count,
- function_addrs_count);
- backtrace_atomic_store_pointer (&u->lines, lines);
- }
- }
-
- /* Now all fields of U have been initialized. */
-
- if (lines == (struct line *) (uintptr_t) -1)
- {
- /* If reading the line number information failed in some way,
- try again to see if there is a better compilation unit for
- this PC. */
- if (new_data)
- return dwarf_lookup_pc (state, ddata, pc, callback, error_callback,
- data, found);
- return callback (data, pc, NULL, 0, NULL);
- }
-
- /* Search for PC within this unit. */
-
- ln = (struct line *) bsearch (&pc, lines, entry->u->lines_count,
- sizeof (struct line), line_search);
- if (ln == NULL)
- {
- /* The PC is between the low_pc and high_pc attributes of the
- compilation unit, but no entry in the line table covers it.
- This implies that the start of the compilation unit has no
- line number information. */
-
- if (entry->u->abs_filename == NULL)
- {
- const char *filename;
-
- filename = entry->u->filename;
- if (filename != NULL
- && !IS_ABSOLUTE_PATH (filename)
- && entry->u->comp_dir != NULL)
- {
- size_t filename_len;
- const char *dir;
- size_t dir_len;
- char *s;
-
- filename_len = strlen (filename);
- dir = entry->u->comp_dir;
- dir_len = strlen (dir);
- s = (char *) backtrace_alloc (state, dir_len + filename_len + 2,
- error_callback, data);
- if (s == NULL)
- {
- *found = 0;
- return 0;
- }
- memcpy (s, dir, dir_len);
- /* FIXME: Should use backslash if DOS file system. */
- s[dir_len] = '/';
- memcpy (s + dir_len + 1, filename, filename_len + 1);
- filename = s;
- }
- entry->u->abs_filename = filename;
- }
-
- return callback (data, pc, entry->u->abs_filename, 0, NULL);
- }
-
- /* Search for function name within this unit. */
-
- if (entry->u->function_addrs_count == 0)
- return callback (data, pc, ln->filename, ln->lineno, NULL);
-
- p = ((struct function_addrs *)
- bsearch (&pc, entry->u->function_addrs,
- entry->u->function_addrs_count,
- sizeof (struct function_addrs),
- function_addrs_search));
- if (p == NULL)
- return callback (data, pc, ln->filename, ln->lineno, NULL);
-
- /* Here pc >= p->low && pc < (p + 1)->low. The function_addrs are
- sorted by low, so if pc > p->low we are at the end of a range of
- function_addrs with the same low value. If pc == p->low walk
- forward to the end of the range with that low value. Then walk
- backward and use the first range that includes pc. */
- while (pc == (p + 1)->low)
- ++p;
- fmatch = NULL;
- while (1)
- {
- if (pc < p->high)
- {
- fmatch = p;
- break;
- }
- if (p == entry->u->function_addrs)
- break;
- if ((p - 1)->low < p->low)
- break;
- --p;
- }
- if (fmatch == NULL)
- return callback (data, pc, ln->filename, ln->lineno, NULL);
-
- function = fmatch->function;
-
- filename = ln->filename;
- lineno = ln->lineno;
-
- ret = report_inlined_functions (pc, function, callback, data,
- &filename, &lineno);
- if (ret != 0)
- return ret;
-
- return callback (data, pc, filename, lineno, function->name);
-}
-
-
-/* Return the file/line information for a PC using the DWARF mapping
- we built earlier. */
-
-static int
-dwarf_fileline (struct backtrace_state *state, uintptr_t pc,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data)
-{
- struct dwarf_data *ddata;
- int found;
- int ret;
-
- if (!state->threaded)
- {
- for (ddata = (struct dwarf_data *) state->fileline_data;
- ddata != NULL;
- ddata = ddata->next)
- {
- ret = dwarf_lookup_pc (state, ddata, pc, callback, error_callback,
- data, &found);
- if (ret != 0 || found)
- return ret;
- }
- }
- else
- {
- struct dwarf_data **pp;
-
- pp = (struct dwarf_data **) (void *) &state->fileline_data;
- while (1)
- {
- ddata = backtrace_atomic_load_pointer (pp);
- if (ddata == NULL)
- break;
-
- ret = dwarf_lookup_pc (state, ddata, pc, callback, error_callback,
- data, &found);
- if (ret != 0 || found)
- return ret;
-
- pp = &ddata->next;
- }
- }
-
- /* FIXME: See if any libraries have been dlopen'ed. */
-
- return callback (data, pc, NULL, 0, NULL);
-}
-
-/* Initialize our data structures from the DWARF debug info for a
- file. Return NULL on failure. */
-
-static struct dwarf_data *
-build_dwarf_data (struct backtrace_state *state,
- uintptr_t base_address,
- const struct dwarf_sections *dwarf_sections,
- int is_bigendian,
- struct dwarf_data *altlink,
- backtrace_error_callback error_callback,
- void *data)
-{
- struct unit_addrs_vector addrs_vec;
- struct unit_addrs *addrs;
- size_t addrs_count;
- struct unit_vector units_vec;
- struct unit **units;
- size_t units_count;
- struct dwarf_data *fdata;
-
- if (!build_address_map (state, base_address, dwarf_sections, is_bigendian,
- altlink, error_callback, data, &addrs_vec,
- &units_vec))
- return NULL;
-
- if (!backtrace_vector_release (state, &addrs_vec.vec, error_callback, data))
- return NULL;
- if (!backtrace_vector_release (state, &units_vec.vec, error_callback, data))
- return NULL;
- addrs = (struct unit_addrs *) addrs_vec.vec.base;
- units = (struct unit **) units_vec.vec.base;
- addrs_count = addrs_vec.count;
- units_count = units_vec.count;
- backtrace_qsort (addrs, addrs_count, sizeof (struct unit_addrs),
- unit_addrs_compare);
- /* No qsort for units required, already sorted. */
-
- fdata = ((struct dwarf_data *)
- backtrace_alloc (state, sizeof (struct dwarf_data),
- error_callback, data));
- if (fdata == NULL)
- return NULL;
-
- fdata->next = NULL;
- fdata->altlink = altlink;
- fdata->base_address = base_address;
- fdata->addrs = addrs;
- fdata->addrs_count = addrs_count;
- fdata->units = units;
- fdata->units_count = units_count;
- fdata->dwarf_sections = *dwarf_sections;
- fdata->is_bigendian = is_bigendian;
- memset (&fdata->fvec, 0, sizeof fdata->fvec);
-
- return fdata;
-}
-
-/* Build our data structures from the DWARF sections for a module.
- Set FILELINE_FN and STATE->FILELINE_DATA. Return 1 on success, 0
- on failure. */
-
-int
-backtrace_dwarf_add (struct backtrace_state *state,
- uintptr_t base_address,
- const struct dwarf_sections *dwarf_sections,
- int is_bigendian,
- struct dwarf_data *fileline_altlink,
- backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn,
- struct dwarf_data **fileline_entry)
-{
- struct dwarf_data *fdata;
-
- fdata = build_dwarf_data (state, base_address, dwarf_sections, is_bigendian,
- fileline_altlink, error_callback, data);
- if (fdata == NULL)
- return 0;
-
- if (fileline_entry != NULL)
- *fileline_entry = fdata;
-
- if (!state->threaded)
- {
- struct dwarf_data **pp;
-
- for (pp = (struct dwarf_data **) (void *) &state->fileline_data;
- *pp != NULL;
- pp = &(*pp)->next)
- ;
- *pp = fdata;
- }
- else
- {
- while (1)
- {
- struct dwarf_data **pp;
-
- pp = (struct dwarf_data **) (void *) &state->fileline_data;
-
- while (1)
- {
- struct dwarf_data *p;
-
- p = backtrace_atomic_load_pointer (pp);
-
- if (p == NULL)
- break;
-
- pp = &p->next;
- }
-
- if (__sync_bool_compare_and_swap (pp, NULL, fdata))
- break;
- }
- }
-
- *fileline_fn = dwarf_fileline;
-
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/edtest.c b/fluent-bit/lib/libbacktrace-8602fda/edtest.c
deleted file mode 100644
index c5ced130c..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/edtest.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* edtest.c -- Test for libbacktrace storage allocation stress handling
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-#include "internal.h"
-
-#include "testlib.h"
-
-static int test1 (void) __attribute__ ((noinline, noclone, unused));
-extern int f2 (int);
-extern int f3 (int, int);
-
-static int
-test1 (void)
-{
- /* Returning a value here and elsewhere avoids a tailcall which
- would mess up the backtrace. */
- return f2 (__LINE__) + 1;
-}
-
-int
-f3 (int f1line, int f2line)
-{
- struct info all[20];
- struct bdata data;
- int f3line;
- int i;
-
- data.all = &all[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- f3line = __LINE__ + 1;
- i = backtrace_full (state, 0, callback_one, error_callback_one, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test1: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- if (data.index < 3)
- {
- fprintf (stderr,
- "test1: not enough frames; got %zu, expected at least 3\n",
- data.index);
- data.failed = 1;
- }
-
- check ("test1", 0, all, f3line, "f3", "edtest.c", &data.failed);
- check ("test1", 1, all, f2line, "f2", "edtest2_build.c", &data.failed);
- check ("test1", 2, all, f1line, "test1", "edtest.c", &data.failed);
-
- printf ("%s: backtrace_full alloc stress\n", data.failed ? "FAIL" : "PASS");
-
- if (data.failed)
- ++failures;
-
- return failures;
-}
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
-{
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
- // Grab the storage allocation lock prior to doing anything interesting.
- // The intent here is to insure that the backtrace_alloc code is forced
- // to always call mmap() for new memory as opposed to reusing previously
- // allocated memory from the free list. Doing things this way helps
- // simulate what you might see in a multithreaded program in which there
- // are racing calls to the allocator.
- struct backtrace_state *state_internal =
- (struct backtrace_state *) state;
- state_internal->lock_alloc = 1;
-
- // Kick off the test
- test1();
-
- exit (failures > 0 ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/edtest2.c b/fluent-bit/lib/libbacktrace-8602fda/edtest2.c
deleted file mode 100644
index cffb4fdb6..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/edtest2.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* edtest2.c -- Test for libbacktrace storage allocation stress handling (p2)
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-/* This file intentionally written without any #include's
- */
-
-extern int f3(int, int);
-extern int f2(int);
-
-int f2(int x)
-{
- /* Returning a value here and elsewhere avoids a tailcall which
- would mess up the backtrace. */
- return f3(x, __LINE__) + 3;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/elf.c b/fluent-bit/lib/libbacktrace-8602fda/elf.c
deleted file mode 100644
index 61014562a..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/elf.c
+++ /dev/null
@@ -1,4924 +0,0 @@
-/* elf.c -- Get debug data from an ELF file for backtraces.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#ifdef HAVE_DL_ITERATE_PHDR
- #ifdef HAVE_LINK_H
- #include <link.h>
- #endif
- #ifdef HAVE_SYS_LINK_H
- #include <sys/link.h>
- #endif
-#endif
-
-#include "backtrace.h"
-#include "internal.h"
-
-#ifndef S_ISLNK
- #ifndef S_IFLNK
- #define S_IFLNK 0120000
- #endif
- #ifndef S_IFMT
- #define S_IFMT 0170000
- #endif
- #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-#endif
-
-#ifndef __GNUC__
-#define __builtin_prefetch(p, r, l)
-#define unlikely(x) (x)
-#else
-#define unlikely(x) __builtin_expect(!!(x), 0)
-#endif
-
-#if !defined(HAVE_DECL_STRNLEN) || !HAVE_DECL_STRNLEN
-
-/* If strnlen is not declared, provide our own version. */
-
-static size_t
-xstrnlen (const char *s, size_t maxlen)
-{
- size_t i;
-
- for (i = 0; i < maxlen; ++i)
- if (s[i] == '\0')
- break;
- return i;
-}
-
-#define strnlen xstrnlen
-
-#endif
-
-#ifndef HAVE_LSTAT
-
-/* Dummy version of lstat for systems that don't have it. */
-
-static int
-xlstat (const char *path ATTRIBUTE_UNUSED, struct stat *st ATTRIBUTE_UNUSED)
-{
- return -1;
-}
-
-#define lstat xlstat
-
-#endif
-
-#ifndef HAVE_READLINK
-
-/* Dummy version of readlink for systems that don't have it. */
-
-static ssize_t
-xreadlink (const char *path ATTRIBUTE_UNUSED, char *buf ATTRIBUTE_UNUSED,
- size_t bufsz ATTRIBUTE_UNUSED)
-{
- return -1;
-}
-
-#define readlink xreadlink
-
-#endif
-
-#ifndef HAVE_DL_ITERATE_PHDR
-
-/* Dummy version of dl_iterate_phdr for systems that don't have it. */
-
-#define dl_phdr_info x_dl_phdr_info
-#define dl_iterate_phdr x_dl_iterate_phdr
-
-struct dl_phdr_info
-{
- uintptr_t dlpi_addr;
- const char *dlpi_name;
-};
-
-static int
-dl_iterate_phdr (int (*callback) (struct dl_phdr_info *,
- size_t, void *) ATTRIBUTE_UNUSED,
- void *data ATTRIBUTE_UNUSED)
-{
- return 0;
-}
-
-#endif /* ! defined (HAVE_DL_ITERATE_PHDR) */
-
-/* The configure script must tell us whether we are 32-bit or 64-bit
- ELF. We could make this code test and support either possibility,
- but there is no point. This code only works for the currently
- running executable, which means that we know the ELF mode at
- configure time. */
-
-#if BACKTRACE_ELF_SIZE != 32 && BACKTRACE_ELF_SIZE != 64
-#error "Unknown BACKTRACE_ELF_SIZE"
-#endif
-
-/* <link.h> might #include <elf.h> which might define our constants
- with slightly different values. Undefine them to be safe. */
-
-#undef EI_NIDENT
-#undef EI_MAG0
-#undef EI_MAG1
-#undef EI_MAG2
-#undef EI_MAG3
-#undef EI_CLASS
-#undef EI_DATA
-#undef EI_VERSION
-#undef ELF_MAG0
-#undef ELF_MAG1
-#undef ELF_MAG2
-#undef ELF_MAG3
-#undef ELFCLASS32
-#undef ELFCLASS64
-#undef ELFDATA2LSB
-#undef ELFDATA2MSB
-#undef EV_CURRENT
-#undef ET_DYN
-#undef EM_PPC64
-#undef EF_PPC64_ABI
-#undef SHN_LORESERVE
-#undef SHN_XINDEX
-#undef SHN_UNDEF
-#undef SHT_PROGBITS
-#undef SHT_SYMTAB
-#undef SHT_STRTAB
-#undef SHT_DYNSYM
-#undef SHF_COMPRESSED
-#undef STT_OBJECT
-#undef STT_FUNC
-#undef NT_GNU_BUILD_ID
-#undef ELFCOMPRESS_ZLIB
-
-/* Basic types. */
-
-typedef uint16_t b_elf_half; /* Elf_Half. */
-typedef uint32_t b_elf_word; /* Elf_Word. */
-typedef int32_t b_elf_sword; /* Elf_Sword. */
-
-#if BACKTRACE_ELF_SIZE == 32
-
-typedef uint32_t b_elf_addr; /* Elf_Addr. */
-typedef uint32_t b_elf_off; /* Elf_Off. */
-
-typedef uint32_t b_elf_wxword; /* 32-bit Elf_Word, 64-bit ELF_Xword. */
-
-#else
-
-typedef uint64_t b_elf_addr; /* Elf_Addr. */
-typedef uint64_t b_elf_off; /* Elf_Off. */
-typedef uint64_t b_elf_xword; /* Elf_Xword. */
-typedef int64_t b_elf_sxword; /* Elf_Sxword. */
-
-typedef uint64_t b_elf_wxword; /* 32-bit Elf_Word, 64-bit ELF_Xword. */
-
-#endif
-
-/* Data structures and associated constants. */
-
-#define EI_NIDENT 16
-
-typedef struct {
- unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
- b_elf_half e_type; /* Identifies object file type */
- b_elf_half e_machine; /* Specifies required architecture */
- b_elf_word e_version; /* Identifies object file version */
- b_elf_addr e_entry; /* Entry point virtual address */
- b_elf_off e_phoff; /* Program header table file offset */
- b_elf_off e_shoff; /* Section header table file offset */
- b_elf_word e_flags; /* Processor-specific flags */
- b_elf_half e_ehsize; /* ELF header size in bytes */
- b_elf_half e_phentsize; /* Program header table entry size */
- b_elf_half e_phnum; /* Program header table entry count */
- b_elf_half e_shentsize; /* Section header table entry size */
- b_elf_half e_shnum; /* Section header table entry count */
- b_elf_half e_shstrndx; /* Section header string table index */
-} b_elf_ehdr; /* Elf_Ehdr. */
-
-#define EI_MAG0 0
-#define EI_MAG1 1
-#define EI_MAG2 2
-#define EI_MAG3 3
-#define EI_CLASS 4
-#define EI_DATA 5
-#define EI_VERSION 6
-
-#define ELFMAG0 0x7f
-#define ELFMAG1 'E'
-#define ELFMAG2 'L'
-#define ELFMAG3 'F'
-
-#define ELFCLASS32 1
-#define ELFCLASS64 2
-
-#define ELFDATA2LSB 1
-#define ELFDATA2MSB 2
-
-#define EV_CURRENT 1
-
-#define ET_DYN 3
-
-#define EM_PPC64 21
-#define EF_PPC64_ABI 3
-
-typedef struct {
- b_elf_word sh_name; /* Section name, index in string tbl */
- b_elf_word sh_type; /* Type of section */
- b_elf_wxword sh_flags; /* Miscellaneous section attributes */
- b_elf_addr sh_addr; /* Section virtual addr at execution */
- b_elf_off sh_offset; /* Section file offset */
- b_elf_wxword sh_size; /* Size of section in bytes */
- b_elf_word sh_link; /* Index of another section */
- b_elf_word sh_info; /* Additional section information */
- b_elf_wxword sh_addralign; /* Section alignment */
- b_elf_wxword sh_entsize; /* Entry size if section holds table */
-} b_elf_shdr; /* Elf_Shdr. */
-
-#define SHN_UNDEF 0x0000 /* Undefined section */
-#define SHN_LORESERVE 0xFF00 /* Begin range of reserved indices */
-#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */
-
-#define SHT_PROGBITS 1
-#define SHT_SYMTAB 2
-#define SHT_STRTAB 3
-#define SHT_DYNSYM 11
-
-#define SHF_COMPRESSED 0x800
-
-#if BACKTRACE_ELF_SIZE == 32
-
-typedef struct
-{
- b_elf_word st_name; /* Symbol name, index in string tbl */
- b_elf_addr st_value; /* Symbol value */
- b_elf_word st_size; /* Symbol size */
- unsigned char st_info; /* Symbol binding and type */
- unsigned char st_other; /* Visibility and other data */
- b_elf_half st_shndx; /* Symbol section index */
-} b_elf_sym; /* Elf_Sym. */
-
-#else /* BACKTRACE_ELF_SIZE != 32 */
-
-typedef struct
-{
- b_elf_word st_name; /* Symbol name, index in string tbl */
- unsigned char st_info; /* Symbol binding and type */
- unsigned char st_other; /* Visibility and other data */
- b_elf_half st_shndx; /* Symbol section index */
- b_elf_addr st_value; /* Symbol value */
- b_elf_xword st_size; /* Symbol size */
-} b_elf_sym; /* Elf_Sym. */
-
-#endif /* BACKTRACE_ELF_SIZE != 32 */
-
-#define STT_OBJECT 1
-#define STT_FUNC 2
-
-typedef struct
-{
- uint32_t namesz;
- uint32_t descsz;
- uint32_t type;
- char name[1];
-} b_elf_note;
-
-#define NT_GNU_BUILD_ID 3
-
-#if BACKTRACE_ELF_SIZE == 32
-
-typedef struct
-{
- b_elf_word ch_type; /* Compresstion algorithm */
- b_elf_word ch_size; /* Uncompressed size */
- b_elf_word ch_addralign; /* Alignment for uncompressed data */
-} b_elf_chdr; /* Elf_Chdr */
-
-#else /* BACKTRACE_ELF_SIZE != 32 */
-
-typedef struct
-{
- b_elf_word ch_type; /* Compression algorithm */
- b_elf_word ch_reserved; /* Reserved */
- b_elf_xword ch_size; /* Uncompressed size */
- b_elf_xword ch_addralign; /* Alignment for uncompressed data */
-} b_elf_chdr; /* Elf_Chdr */
-
-#endif /* BACKTRACE_ELF_SIZE != 32 */
-
-#define ELFCOMPRESS_ZLIB 1
-
-/* Names of sections, indexed by enum dwarf_section in internal.h. */
-
-static const char * const dwarf_section_names[DEBUG_MAX] =
-{
- ".debug_info",
- ".debug_line",
- ".debug_abbrev",
- ".debug_ranges",
- ".debug_str",
- ".debug_addr",
- ".debug_str_offsets",
- ".debug_line_str",
- ".debug_rnglists"
-};
-
-/* Information we gather for the sections we care about. */
-
-struct debug_section_info
-{
- /* Section file offset. */
- off_t offset;
- /* Section size. */
- size_t size;
- /* Section contents, after read from file. */
- const unsigned char *data;
- /* Whether the SHF_COMPRESSED flag is set for the section. */
- int compressed;
-};
-
-/* Information we keep for an ELF symbol. */
-
-struct elf_symbol
-{
- /* The name of the symbol. */
- const char *name;
- /* The address of the symbol. */
- uintptr_t address;
- /* The size of the symbol. */
- size_t size;
-};
-
-/* Information to pass to elf_syminfo. */
-
-struct elf_syminfo_data
-{
- /* Symbols for the next module. */
- struct elf_syminfo_data *next;
- /* The ELF symbols, sorted by address. */
- struct elf_symbol *symbols;
- /* The number of symbols. */
- size_t count;
-};
-
-/* A view that works for either a file or memory. */
-
-struct elf_view
-{
- struct backtrace_view view;
- int release; /* If non-zero, must call backtrace_release_view. */
-};
-
-/* Information about PowerPC64 ELFv1 .opd section. */
-
-struct elf_ppc64_opd_data
-{
- /* Address of the .opd section. */
- b_elf_addr addr;
- /* Section data. */
- const char *data;
- /* Size of the .opd section. */
- size_t size;
- /* Corresponding section view. */
- struct elf_view view;
-};
-
-/* Create a view of SIZE bytes from DESCRIPTOR/MEMORY at OFFSET. */
-
-static int
-elf_get_view (struct backtrace_state *state, int descriptor,
- const unsigned char *memory, size_t memory_size, off_t offset,
- uint64_t size, backtrace_error_callback error_callback,
- void *data, struct elf_view *view)
-{
- if (memory == NULL)
- {
- view->release = 1;
- return backtrace_get_view (state, descriptor, offset, size,
- error_callback, data, &view->view);
- }
- else
- {
- if ((uint64_t) offset + size > (uint64_t) memory_size)
- {
- error_callback (data, "out of range for in-memory file", 0);
- return 0;
- }
- view->view.data = (const void *) (memory + offset);
- view->view.base = NULL;
- view->view.len = size;
- view->release = 0;
- return 1;
- }
-}
-
-/* Release a view read by elf_get_view. */
-
-static void
-elf_release_view (struct backtrace_state *state, struct elf_view *view,
- backtrace_error_callback error_callback, void *data)
-{
- if (view->release)
- backtrace_release_view (state, &view->view, error_callback, data);
-}
-
-/* Compute the CRC-32 of BUF/LEN. This uses the CRC used for
- .gnu_debuglink files. */
-
-static uint32_t
-elf_crc32 (uint32_t crc, const unsigned char *buf, size_t len)
-{
- static const uint32_t crc32_table[256] =
- {
- 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
- 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,
- 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,
- 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
- 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,
- 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
- 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
- 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
- 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,
- 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,
- 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
- 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
- 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,
- 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,
- 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,
- 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
- 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,
- 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
- 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
- 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
- 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,
- 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,
- 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,
- 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
- 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,
- 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,
- 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,
- 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
- 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,
- 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
- 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,
- 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
- 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,
- 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,
- 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
- 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
- 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,
- 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,
- 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,
- 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
- 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,
- 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
- 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
- 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
- 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,
- 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,
- 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,
- 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
- 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
- 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,
- 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
- 0x2d02ef8d
- };
- const unsigned char *end;
-
- crc = ~crc;
- for (end = buf + len; buf < end; ++ buf)
- crc = crc32_table[(crc ^ *buf) & 0xff] ^ (crc >> 8);
- return ~crc;
-}
-
-/* Return the CRC-32 of the entire file open at DESCRIPTOR. */
-
-static uint32_t
-elf_crc32_file (struct backtrace_state *state, int descriptor,
- backtrace_error_callback error_callback, void *data)
-{
- struct stat st;
- struct backtrace_view file_view;
- uint32_t ret;
-
- if (fstat (descriptor, &st) < 0)
- {
- error_callback (data, "fstat", errno);
- return 0;
- }
-
- if (!backtrace_get_view (state, descriptor, 0, st.st_size, error_callback,
- data, &file_view))
- return 0;
-
- ret = elf_crc32 (0, (const unsigned char *) file_view.data, st.st_size);
-
- backtrace_release_view (state, &file_view, error_callback, data);
-
- return ret;
-}
-
-/* A dummy callback function used when we can't find a symbol
- table. */
-
-static void
-elf_nosyms (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t addr ATTRIBUTE_UNUSED,
- backtrace_syminfo_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data, "no symbol table in ELF executable", -1);
-}
-
-/* A callback function used when we can't find any debug info. */
-
-static int
-elf_nodebug (struct backtrace_state *state, uintptr_t pc,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data)
-{
- if (state->syminfo_fn != NULL && state->syminfo_fn != elf_nosyms)
- {
- struct backtrace_call_full bdata;
-
- /* Fetch symbol information so that we can least get the
- function name. */
-
- bdata.full_callback = callback;
- bdata.full_error_callback = error_callback;
- bdata.full_data = data;
- bdata.ret = 0;
- state->syminfo_fn (state, pc, backtrace_syminfo_to_full_callback,
- backtrace_syminfo_to_full_error_callback, &bdata);
- return bdata.ret;
- }
-
- error_callback (data, "no debug info in ELF executable", -1);
- return 0;
-}
-
-/* Compare struct elf_symbol for qsort. */
-
-static int
-elf_symbol_compare (const void *v1, const void *v2)
-{
- const struct elf_symbol *e1 = (const struct elf_symbol *) v1;
- const struct elf_symbol *e2 = (const struct elf_symbol *) v2;
-
- if (e1->address < e2->address)
- return -1;
- else if (e1->address > e2->address)
- return 1;
- else
- return 0;
-}
-
-/* Compare an ADDR against an elf_symbol for bsearch. We allocate one
- extra entry in the array so that this can look safely at the next
- entry. */
-
-static int
-elf_symbol_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct elf_symbol *entry = (const struct elf_symbol *) ventry;
- uintptr_t addr;
-
- addr = *key;
- if (addr < entry->address)
- return -1;
- else if (addr >= entry->address + entry->size)
- return 1;
- else
- return 0;
-}
-
-/* Initialize the symbol table info for elf_syminfo. */
-
-static int
-elf_initialize_syminfo (struct backtrace_state *state,
- uintptr_t base_address,
- const unsigned char *symtab_data, size_t symtab_size,
- const unsigned char *strtab, size_t strtab_size,
- backtrace_error_callback error_callback,
- void *data, struct elf_syminfo_data *sdata,
- struct elf_ppc64_opd_data *opd)
-{
- size_t sym_count;
- const b_elf_sym *sym;
- size_t elf_symbol_count;
- size_t elf_symbol_size;
- struct elf_symbol *elf_symbols;
- size_t i;
- unsigned int j;
-
- sym_count = symtab_size / sizeof (b_elf_sym);
-
- /* We only care about function symbols. Count them. */
- sym = (const b_elf_sym *) symtab_data;
- elf_symbol_count = 0;
- for (i = 0; i < sym_count; ++i, ++sym)
- {
- int info;
-
- info = sym->st_info & 0xf;
- if ((info == STT_FUNC || info == STT_OBJECT)
- && sym->st_shndx != SHN_UNDEF)
- ++elf_symbol_count;
- }
-
- elf_symbol_size = elf_symbol_count * sizeof (struct elf_symbol);
- elf_symbols = ((struct elf_symbol *)
- backtrace_alloc (state, elf_symbol_size, error_callback,
- data));
- if (elf_symbols == NULL)
- return 0;
-
- sym = (const b_elf_sym *) symtab_data;
- j = 0;
- for (i = 0; i < sym_count; ++i, ++sym)
- {
- int info;
-
- info = sym->st_info & 0xf;
- if (info != STT_FUNC && info != STT_OBJECT)
- continue;
- if (sym->st_shndx == SHN_UNDEF)
- continue;
- if (sym->st_name >= strtab_size)
- {
- error_callback (data, "symbol string index out of range", 0);
- backtrace_free (state, elf_symbols, elf_symbol_size, error_callback,
- data);
- return 0;
- }
- elf_symbols[j].name = (const char *) strtab + sym->st_name;
- /* Special case PowerPC64 ELFv1 symbols in .opd section, if the symbol
- is a function descriptor, read the actual code address from the
- descriptor. */
- if (opd
- && sym->st_value >= opd->addr
- && sym->st_value < opd->addr + opd->size)
- elf_symbols[j].address
- = *(const b_elf_addr *) (opd->data + (sym->st_value - opd->addr));
- else
- elf_symbols[j].address = sym->st_value;
- elf_symbols[j].address += base_address;
- elf_symbols[j].size = sym->st_size;
- ++j;
- }
-
- backtrace_qsort (elf_symbols, elf_symbol_count, sizeof (struct elf_symbol),
- elf_symbol_compare);
-
- sdata->next = NULL;
- sdata->symbols = elf_symbols;
- sdata->count = elf_symbol_count;
-
- return 1;
-}
-
-/* Add EDATA to the list in STATE. */
-
-static void
-elf_add_syminfo_data (struct backtrace_state *state,
- struct elf_syminfo_data *edata)
-{
- if (!state->threaded)
- {
- struct elf_syminfo_data **pp;
-
- for (pp = (struct elf_syminfo_data **) (void *) &state->syminfo_data;
- *pp != NULL;
- pp = &(*pp)->next)
- ;
- *pp = edata;
- }
- else
- {
- while (1)
- {
- struct elf_syminfo_data **pp;
-
- pp = (struct elf_syminfo_data **) (void *) &state->syminfo_data;
-
- while (1)
- {
- struct elf_syminfo_data *p;
-
- p = backtrace_atomic_load_pointer (pp);
-
- if (p == NULL)
- break;
-
- pp = &p->next;
- }
-
- if (__sync_bool_compare_and_swap (pp, NULL, edata))
- break;
- }
- }
-}
-
-/* Return the symbol name and value for an ADDR. */
-
-static void
-elf_syminfo (struct backtrace_state *state, uintptr_t addr,
- backtrace_syminfo_callback callback,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data)
-{
- struct elf_syminfo_data *edata;
- struct elf_symbol *sym = NULL;
-
- if (!state->threaded)
- {
- for (edata = (struct elf_syminfo_data *) state->syminfo_data;
- edata != NULL;
- edata = edata->next)
- {
- sym = ((struct elf_symbol *)
- bsearch (&addr, edata->symbols, edata->count,
- sizeof (struct elf_symbol), elf_symbol_search));
- if (sym != NULL)
- break;
- }
- }
- else
- {
- struct elf_syminfo_data **pp;
-
- pp = (struct elf_syminfo_data **) (void *) &state->syminfo_data;
- while (1)
- {
- edata = backtrace_atomic_load_pointer (pp);
- if (edata == NULL)
- break;
-
- sym = ((struct elf_symbol *)
- bsearch (&addr, edata->symbols, edata->count,
- sizeof (struct elf_symbol), elf_symbol_search));
- if (sym != NULL)
- break;
-
- pp = &edata->next;
- }
- }
-
- if (sym == NULL)
- callback (data, addr, NULL, 0, 0);
- else
- callback (data, addr, sym->name, sym->address, sym->size);
-}
-
-/* Return whether FILENAME is a symlink. */
-
-static int
-elf_is_symlink (const char *filename)
-{
- struct stat st;
-
- if (lstat (filename, &st) < 0)
- return 0;
- return S_ISLNK (st.st_mode);
-}
-
-/* Return the results of reading the symlink FILENAME in a buffer
- allocated by backtrace_alloc. Return the length of the buffer in
- *LEN. */
-
-static char *
-elf_readlink (struct backtrace_state *state, const char *filename,
- backtrace_error_callback error_callback, void *data,
- size_t *plen)
-{
- size_t len;
- char *buf;
-
- len = 128;
- while (1)
- {
- ssize_t rl;
-
- buf = backtrace_alloc (state, len, error_callback, data);
- if (buf == NULL)
- return NULL;
- rl = readlink (filename, buf, len);
- if (rl < 0)
- {
- backtrace_free (state, buf, len, error_callback, data);
- return NULL;
- }
- if ((size_t) rl < len - 1)
- {
- buf[rl] = '\0';
- *plen = len;
- return buf;
- }
- backtrace_free (state, buf, len, error_callback, data);
- len *= 2;
- }
-}
-
-#define SYSTEM_BUILD_ID_DIR "/usr/lib/debug/.build-id/"
-
-/* Open a separate debug info file, using the build ID to find it.
- Returns an open file descriptor, or -1.
-
- The GDB manual says that the only place gdb looks for a debug file
- when the build ID is known is in /usr/lib/debug/.build-id. */
-
-static int
-elf_open_debugfile_by_buildid (struct backtrace_state *state,
- const char *buildid_data, size_t buildid_size,
- backtrace_error_callback error_callback,
- void *data)
-{
- const char * const prefix = SYSTEM_BUILD_ID_DIR;
- const size_t prefix_len = strlen (prefix);
- const char * const suffix = ".debug";
- const size_t suffix_len = strlen (suffix);
- size_t len;
- char *bd_filename;
- char *t;
- size_t i;
- int ret;
- int does_not_exist;
-
- len = prefix_len + buildid_size * 2 + suffix_len + 2;
- bd_filename = backtrace_alloc (state, len, error_callback, data);
- if (bd_filename == NULL)
- return -1;
-
- t = bd_filename;
- memcpy (t, prefix, prefix_len);
- t += prefix_len;
- for (i = 0; i < buildid_size; i++)
- {
- unsigned char b;
- unsigned char nib;
-
- b = (unsigned char) buildid_data[i];
- nib = (b & 0xf0) >> 4;
- *t++ = nib < 10 ? '0' + nib : 'a' + nib - 10;
- nib = b & 0x0f;
- *t++ = nib < 10 ? '0' + nib : 'a' + nib - 10;
- if (i == 0)
- *t++ = '/';
- }
- memcpy (t, suffix, suffix_len);
- t[suffix_len] = '\0';
-
- ret = backtrace_open (bd_filename, error_callback, data, &does_not_exist);
-
- backtrace_free (state, bd_filename, len, error_callback, data);
-
- /* gdb checks that the debuginfo file has the same build ID note.
- That seems kind of pointless to me--why would it have the right
- name but not the right build ID?--so skipping the check. */
-
- return ret;
-}
-
-/* Try to open a file whose name is PREFIX (length PREFIX_LEN)
- concatenated with PREFIX2 (length PREFIX2_LEN) concatenated with
- DEBUGLINK_NAME. Returns an open file descriptor, or -1. */
-
-static int
-elf_try_debugfile (struct backtrace_state *state, const char *prefix,
- size_t prefix_len, const char *prefix2, size_t prefix2_len,
- const char *debuglink_name,
- backtrace_error_callback error_callback, void *data)
-{
- size_t debuglink_len;
- size_t try_len;
- char *try;
- int does_not_exist;
- int ret;
-
- debuglink_len = strlen (debuglink_name);
- try_len = prefix_len + prefix2_len + debuglink_len + 1;
- try = backtrace_alloc (state, try_len, error_callback, data);
- if (try == NULL)
- return -1;
-
- memcpy (try, prefix, prefix_len);
- memcpy (try + prefix_len, prefix2, prefix2_len);
- memcpy (try + prefix_len + prefix2_len, debuglink_name, debuglink_len);
- try[prefix_len + prefix2_len + debuglink_len] = '\0';
-
- ret = backtrace_open (try, error_callback, data, &does_not_exist);
-
- backtrace_free (state, try, try_len, error_callback, data);
-
- return ret;
-}
-
-/* Find a separate debug info file, using the debuglink section data
- to find it. Returns an open file descriptor, or -1. */
-
-static int
-elf_find_debugfile_by_debuglink (struct backtrace_state *state,
- const char *filename,
- const char *debuglink_name,
- backtrace_error_callback error_callback,
- void *data)
-{
- int ret;
- char *alc;
- size_t alc_len;
- const char *slash;
- int ddescriptor;
- const char *prefix;
- size_t prefix_len;
-
- /* Resolve symlinks in FILENAME. Since FILENAME is fairly likely to
- be /proc/self/exe, symlinks are common. We don't try to resolve
- the whole path name, just the base name. */
- ret = -1;
- alc = NULL;
- alc_len = 0;
- while (elf_is_symlink (filename))
- {
- char *new_buf;
- size_t new_len;
-
- new_buf = elf_readlink (state, filename, error_callback, data, &new_len);
- if (new_buf == NULL)
- break;
-
- if (new_buf[0] == '/')
- filename = new_buf;
- else
- {
- slash = strrchr (filename, '/');
- if (slash == NULL)
- filename = new_buf;
- else
- {
- size_t clen;
- char *c;
-
- slash++;
- clen = slash - filename + strlen (new_buf) + 1;
- c = backtrace_alloc (state, clen, error_callback, data);
- if (c == NULL)
- goto done;
-
- memcpy (c, filename, slash - filename);
- memcpy (c + (slash - filename), new_buf, strlen (new_buf));
- c[slash - filename + strlen (new_buf)] = '\0';
- backtrace_free (state, new_buf, new_len, error_callback, data);
- filename = c;
- new_buf = c;
- new_len = clen;
- }
- }
-
- if (alc != NULL)
- backtrace_free (state, alc, alc_len, error_callback, data);
- alc = new_buf;
- alc_len = new_len;
- }
-
- /* Look for DEBUGLINK_NAME in the same directory as FILENAME. */
-
- slash = strrchr (filename, '/');
- if (slash == NULL)
- {
- prefix = "";
- prefix_len = 0;
- }
- else
- {
- slash++;
- prefix = filename;
- prefix_len = slash - filename;
- }
-
- ddescriptor = elf_try_debugfile (state, prefix, prefix_len, "", 0,
- debuglink_name, error_callback, data);
- if (ddescriptor >= 0)
- {
- ret = ddescriptor;
- goto done;
- }
-
- /* Look for DEBUGLINK_NAME in a .debug subdirectory of FILENAME. */
-
- ddescriptor = elf_try_debugfile (state, prefix, prefix_len, ".debug/",
- strlen (".debug/"), debuglink_name,
- error_callback, data);
- if (ddescriptor >= 0)
- {
- ret = ddescriptor;
- goto done;
- }
-
- /* Look for DEBUGLINK_NAME in /usr/lib/debug. */
-
- ddescriptor = elf_try_debugfile (state, "/usr/lib/debug/",
- strlen ("/usr/lib/debug/"), prefix,
- prefix_len, debuglink_name,
- error_callback, data);
- if (ddescriptor >= 0)
- ret = ddescriptor;
-
- done:
- if (alc != NULL && alc_len > 0)
- backtrace_free (state, alc, alc_len, error_callback, data);
- return ret;
-}
-
-/* Open a separate debug info file, using the debuglink section data
- to find it. Returns an open file descriptor, or -1. */
-
-static int
-elf_open_debugfile_by_debuglink (struct backtrace_state *state,
- const char *filename,
- const char *debuglink_name,
- uint32_t debuglink_crc,
- backtrace_error_callback error_callback,
- void *data)
-{
- int ddescriptor;
-
- ddescriptor = elf_find_debugfile_by_debuglink (state, filename,
- debuglink_name,
- error_callback, data);
- if (ddescriptor < 0)
- return -1;
-
- if (debuglink_crc != 0)
- {
- uint32_t got_crc;
-
- got_crc = elf_crc32_file (state, ddescriptor, error_callback, data);
- if (got_crc != debuglink_crc)
- {
- backtrace_close (ddescriptor, error_callback, data);
- return -1;
- }
- }
-
- return ddescriptor;
-}
-
-/* A function useful for setting a breakpoint for an inflation failure
- when this code is compiled with -g. */
-
-static void
-elf_uncompress_failed(void)
-{
-}
-
-/* *PVAL is the current value being read from the stream, and *PBITS
- is the number of valid bits. Ensure that *PVAL holds at least 15
- bits by reading additional bits from *PPIN, up to PINEND, as
- needed. Updates *PPIN, *PVAL and *PBITS. Returns 1 on success, 0
- on error. */
-
-static int
-elf_zlib_fetch (const unsigned char **ppin, const unsigned char *pinend,
- uint64_t *pval, unsigned int *pbits)
-{
- unsigned int bits;
- const unsigned char *pin;
- uint64_t val;
- uint32_t next;
-
- bits = *pbits;
- if (bits >= 15)
- return 1;
- pin = *ppin;
- val = *pval;
-
- if (unlikely (pinend - pin < 4))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
-#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) \
- && defined(__ORDER_BIG_ENDIAN__) \
- && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ \
- || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
- /* We've ensured that PIN is aligned. */
- next = *(const uint32_t *)pin;
-
-#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
- next = __builtin_bswap32 (next);
-#endif
-#else
- next = pin[0] | (pin[1] << 8) | (pin[2] << 16) | (pin[3] << 24);
-#endif
-
- val |= (uint64_t)next << bits;
- bits += 32;
- pin += 4;
-
- /* We will need the next four bytes soon. */
- __builtin_prefetch (pin, 0, 0);
-
- *ppin = pin;
- *pval = val;
- *pbits = bits;
- return 1;
-}
-
-/* Huffman code tables, like the rest of the zlib format, are defined
- by RFC 1951. We store a Huffman code table as a series of tables
- stored sequentially in memory. Each entry in a table is 16 bits.
- The first, main, table has 256 entries. It is followed by a set of
- secondary tables of length 2 to 128 entries. The maximum length of
- a code sequence in the deflate format is 15 bits, so that is all we
- need. Each secondary table has an index, which is the offset of
- the table in the overall memory storage.
-
- The deflate format says that all codes of a given bit length are
- lexicographically consecutive. Perhaps we could have 130 values
- that require a 15-bit code, perhaps requiring three secondary
- tables of size 128. I don't know if this is actually possible, but
- it suggests that the maximum size required for secondary tables is
- 3 * 128 + 3 * 64 ... == 768. The zlib enough program reports 660
- as the maximum. We permit 768, since in addition to the 256 for
- the primary table, with two bytes per entry, and with the two
- tables we need, that gives us a page.
-
- A single table entry needs to store a value or (for the main table
- only) the index and size of a secondary table. Values range from 0
- to 285, inclusive. Secondary table indexes, per above, range from
- 0 to 510. For a value we need to store the number of bits we need
- to determine that value (one value may appear multiple times in the
- table), which is 1 to 8. For a secondary table we need to store
- the number of bits used to index into the table, which is 1 to 7.
- And of course we need 1 bit to decide whether we have a value or a
- secondary table index. So each entry needs 9 bits for value/table
- index, 3 bits for size, 1 bit what it is. For simplicity we use 16
- bits per entry. */
-
-/* Number of entries we allocate to for one code table. We get a page
- for the two code tables we need. */
-
-#define HUFFMAN_TABLE_SIZE (1024)
-
-/* Bit masks and shifts for the values in the table. */
-
-#define HUFFMAN_VALUE_MASK 0x01ff
-#define HUFFMAN_BITS_SHIFT 9
-#define HUFFMAN_BITS_MASK 0x7
-#define HUFFMAN_SECONDARY_SHIFT 12
-
-/* For working memory while inflating we need two code tables, we need
- an array of code lengths (max value 15, so we use unsigned char),
- and an array of unsigned shorts used while building a table. The
- latter two arrays must be large enough to hold the maximum number
- of code lengths, which RFC 1951 defines as 286 + 30. */
-
-#define ZDEBUG_TABLE_SIZE \
- (2 * HUFFMAN_TABLE_SIZE * sizeof (uint16_t) \
- + (286 + 30) * sizeof (uint16_t) \
- + (286 + 30) * sizeof (unsigned char))
-
-#define ZDEBUG_TABLE_CODELEN_OFFSET \
- (2 * HUFFMAN_TABLE_SIZE * sizeof (uint16_t) \
- + (286 + 30) * sizeof (uint16_t))
-
-#define ZDEBUG_TABLE_WORK_OFFSET \
- (2 * HUFFMAN_TABLE_SIZE * sizeof (uint16_t))
-
-#ifdef BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE
-
-/* Used by the main function that generates the fixed table to learn
- the table size. */
-static size_t final_next_secondary;
-
-#endif
-
-/* Build a Huffman code table from an array of lengths in CODES of
- length CODES_LEN. The table is stored into *TABLE. ZDEBUG_TABLE
- is the same as for elf_zlib_inflate, used to find some work space.
- Returns 1 on success, 0 on error. */
-
-static int
-elf_zlib_inflate_table (unsigned char *codes, size_t codes_len,
- uint16_t *zdebug_table, uint16_t *table)
-{
- uint16_t count[16];
- uint16_t start[16];
- uint16_t prev[16];
- uint16_t firstcode[7];
- uint16_t *next;
- size_t i;
- size_t j;
- unsigned int code;
- size_t next_secondary;
-
- /* Count the number of code of each length. Set NEXT[val] to be the
- next value after VAL with the same bit length. */
-
- next = (uint16_t *) (((unsigned char *) zdebug_table)
- + ZDEBUG_TABLE_WORK_OFFSET);
-
- memset (&count[0], 0, 16 * sizeof (uint16_t));
- for (i = 0; i < codes_len; ++i)
- {
- if (unlikely (codes[i] >= 16))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- if (count[codes[i]] == 0)
- {
- start[codes[i]] = i;
- prev[codes[i]] = i;
- }
- else
- {
- next[prev[codes[i]]] = i;
- prev[codes[i]] = i;
- }
-
- ++count[codes[i]];
- }
-
- /* For each length, fill in the table for the codes of that
- length. */
-
- memset (table, 0, HUFFMAN_TABLE_SIZE * sizeof (uint16_t));
-
- /* Handle the values that do not require a secondary table. */
-
- code = 0;
- for (j = 1; j <= 8; ++j)
- {
- unsigned int jcnt;
- unsigned int val;
-
- jcnt = count[j];
- if (jcnt == 0)
- continue;
-
- if (unlikely (jcnt > (1U << j)))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* There are JCNT values that have this length, the values
- starting from START[j] continuing through NEXT[VAL]. Those
- values are assigned consecutive values starting at CODE. */
-
- val = start[j];
- for (i = 0; i < jcnt; ++i)
- {
- uint16_t tval;
- size_t ind;
- unsigned int incr;
-
- /* In the compressed bit stream, the value VAL is encoded as
- J bits with the value C. */
-
- if (unlikely ((val & ~HUFFMAN_VALUE_MASK) != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- tval = val | ((j - 1) << HUFFMAN_BITS_SHIFT);
-
- /* The table lookup uses 8 bits. If J is less than 8, we
- don't know what the other bits will be. We need to fill
- in all possibilities in the table. Since the Huffman
- code is unambiguous, those entries can't be used for any
- other code. */
-
- for (ind = code; ind < 0x100; ind += 1 << j)
- {
- if (unlikely (table[ind] != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
- table[ind] = tval;
- }
-
- /* Advance to the next value with this length. */
- if (i + 1 < jcnt)
- val = next[val];
-
- /* The Huffman codes are stored in the bitstream with the
- most significant bit first, as is required to make them
- unambiguous. The effect is that when we read them from
- the bitstream we see the bit sequence in reverse order:
- the most significant bit of the Huffman code is the least
- significant bit of the value we read from the bitstream.
- That means that to make our table lookups work, we need
- to reverse the bits of CODE. Since reversing bits is
- tedious and in general requires using a table, we instead
- increment CODE in reverse order. That is, if the number
- of bits we are currently using, here named J, is 3, we
- count as 000, 100, 010, 110, 001, 101, 011, 111, which is
- to say the numbers from 0 to 7 but with the bits
- reversed. Going to more bits, aka incrementing J,
- effectively just adds more zero bits as the beginning,
- and as such does not change the numeric value of CODE.
-
- To increment CODE of length J in reverse order, find the
- most significant zero bit and set it to one while
- clearing all higher bits. In other words, add 1 modulo
- 2^J, only reversed. */
-
- incr = 1U << (j - 1);
- while ((code & incr) != 0)
- incr >>= 1;
- if (incr == 0)
- code = 0;
- else
- {
- code &= incr - 1;
- code += incr;
- }
- }
- }
-
- /* Handle the values that require a secondary table. */
-
- /* Set FIRSTCODE, the number at which the codes start, for each
- length. */
-
- for (j = 9; j < 16; j++)
- {
- unsigned int jcnt;
- unsigned int k;
-
- jcnt = count[j];
- if (jcnt == 0)
- continue;
-
- /* There are JCNT values that have this length, the values
- starting from START[j]. Those values are assigned
- consecutive values starting at CODE. */
-
- firstcode[j - 9] = code;
-
- /* Reverse add JCNT to CODE modulo 2^J. */
- for (k = 0; k < j; ++k)
- {
- if ((jcnt & (1U << k)) != 0)
- {
- unsigned int m;
- unsigned int bit;
-
- bit = 1U << (j - k - 1);
- for (m = 0; m < j - k; ++m, bit >>= 1)
- {
- if ((code & bit) == 0)
- {
- code += bit;
- break;
- }
- code &= ~bit;
- }
- jcnt &= ~(1U << k);
- }
- }
- if (unlikely (jcnt != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
- }
-
- /* For J from 9 to 15, inclusive, we store COUNT[J] consecutive
- values starting at START[J] with consecutive codes starting at
- FIRSTCODE[J - 9]. In the primary table we need to point to the
- secondary table, and the secondary table will be indexed by J - 9
- bits. We count down from 15 so that we install the larger
- secondary tables first, as the smaller ones may be embedded in
- the larger ones. */
-
- next_secondary = 0; /* Index of next secondary table (after primary). */
- for (j = 15; j >= 9; j--)
- {
- unsigned int jcnt;
- unsigned int val;
- size_t primary; /* Current primary index. */
- size_t secondary; /* Offset to current secondary table. */
- size_t secondary_bits; /* Bit size of current secondary table. */
-
- jcnt = count[j];
- if (jcnt == 0)
- continue;
-
- val = start[j];
- code = firstcode[j - 9];
- primary = 0x100;
- secondary = 0;
- secondary_bits = 0;
- for (i = 0; i < jcnt; ++i)
- {
- uint16_t tval;
- size_t ind;
- unsigned int incr;
-
- if ((code & 0xff) != primary)
- {
- uint16_t tprimary;
-
- /* Fill in a new primary table entry. */
-
- primary = code & 0xff;
-
- tprimary = table[primary];
- if (tprimary == 0)
- {
- /* Start a new secondary table. */
-
- if (unlikely ((next_secondary & HUFFMAN_VALUE_MASK)
- != next_secondary))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- secondary = next_secondary;
- secondary_bits = j - 8;
- next_secondary += 1 << secondary_bits;
- table[primary] = (secondary
- + ((j - 8) << HUFFMAN_BITS_SHIFT)
- + (1U << HUFFMAN_SECONDARY_SHIFT));
- }
- else
- {
- /* There is an existing entry. It had better be a
- secondary table with enough bits. */
- if (unlikely ((tprimary & (1U << HUFFMAN_SECONDARY_SHIFT))
- == 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
- secondary = tprimary & HUFFMAN_VALUE_MASK;
- secondary_bits = ((tprimary >> HUFFMAN_BITS_SHIFT)
- & HUFFMAN_BITS_MASK);
- if (unlikely (secondary_bits < j - 8))
- {
- elf_uncompress_failed ();
- return 0;
- }
- }
- }
-
- /* Fill in secondary table entries. */
-
- tval = val | ((j - 8) << HUFFMAN_BITS_SHIFT);
-
- for (ind = code >> 8;
- ind < (1U << secondary_bits);
- ind += 1U << (j - 8))
- {
- if (unlikely (table[secondary + 0x100 + ind] != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
- table[secondary + 0x100 + ind] = tval;
- }
-
- if (i + 1 < jcnt)
- val = next[val];
-
- incr = 1U << (j - 1);
- while ((code & incr) != 0)
- incr >>= 1;
- if (incr == 0)
- code = 0;
- else
- {
- code &= incr - 1;
- code += incr;
- }
- }
- }
-
-#ifdef BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE
- final_next_secondary = next_secondary;
-#endif
-
- return 1;
-}
-
-#ifdef BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE
-
-/* Used to generate the fixed Huffman table for block type 1. */
-
-#include <stdio.h>
-
-static uint16_t table[ZDEBUG_TABLE_SIZE];
-static unsigned char codes[288];
-
-int
-main ()
-{
- size_t i;
-
- for (i = 0; i <= 143; ++i)
- codes[i] = 8;
- for (i = 144; i <= 255; ++i)
- codes[i] = 9;
- for (i = 256; i <= 279; ++i)
- codes[i] = 7;
- for (i = 280; i <= 287; ++i)
- codes[i] = 8;
- if (!elf_zlib_inflate_table (&codes[0], 288, &table[0], &table[0]))
- {
- fprintf (stderr, "elf_zlib_inflate_table failed\n");
- exit (EXIT_FAILURE);
- }
-
- printf ("static const uint16_t elf_zlib_default_table[%#zx] =\n",
- final_next_secondary + 0x100);
- printf ("{\n");
- for (i = 0; i < final_next_secondary + 0x100; i += 8)
- {
- size_t j;
-
- printf (" ");
- for (j = i; j < final_next_secondary + 0x100 && j < i + 8; ++j)
- printf (" %#x,", table[j]);
- printf ("\n");
- }
- printf ("};\n");
- printf ("\n");
-
- for (i = 0; i < 32; ++i)
- codes[i] = 5;
- if (!elf_zlib_inflate_table (&codes[0], 32, &table[0], &table[0]))
- {
- fprintf (stderr, "elf_zlib_inflate_table failed\n");
- exit (EXIT_FAILURE);
- }
-
- printf ("static const uint16_t elf_zlib_default_dist_table[%#zx] =\n",
- final_next_secondary + 0x100);
- printf ("{\n");
- for (i = 0; i < final_next_secondary + 0x100; i += 8)
- {
- size_t j;
-
- printf (" ");
- for (j = i; j < final_next_secondary + 0x100 && j < i + 8; ++j)
- printf (" %#x,", table[j]);
- printf ("\n");
- }
- printf ("};\n");
-
- return 0;
-}
-
-#endif
-
-/* The fixed tables generated by the #ifdef'ed out main function
- above. */
-
-static const uint16_t elf_zlib_default_table[0x170] =
-{
- 0xd00, 0xe50, 0xe10, 0xf18, 0xd10, 0xe70, 0xe30, 0x1230,
- 0xd08, 0xe60, 0xe20, 0x1210, 0xe00, 0xe80, 0xe40, 0x1250,
- 0xd04, 0xe58, 0xe18, 0x1200, 0xd14, 0xe78, 0xe38, 0x1240,
- 0xd0c, 0xe68, 0xe28, 0x1220, 0xe08, 0xe88, 0xe48, 0x1260,
- 0xd02, 0xe54, 0xe14, 0xf1c, 0xd12, 0xe74, 0xe34, 0x1238,
- 0xd0a, 0xe64, 0xe24, 0x1218, 0xe04, 0xe84, 0xe44, 0x1258,
- 0xd06, 0xe5c, 0xe1c, 0x1208, 0xd16, 0xe7c, 0xe3c, 0x1248,
- 0xd0e, 0xe6c, 0xe2c, 0x1228, 0xe0c, 0xe8c, 0xe4c, 0x1268,
- 0xd01, 0xe52, 0xe12, 0xf1a, 0xd11, 0xe72, 0xe32, 0x1234,
- 0xd09, 0xe62, 0xe22, 0x1214, 0xe02, 0xe82, 0xe42, 0x1254,
- 0xd05, 0xe5a, 0xe1a, 0x1204, 0xd15, 0xe7a, 0xe3a, 0x1244,
- 0xd0d, 0xe6a, 0xe2a, 0x1224, 0xe0a, 0xe8a, 0xe4a, 0x1264,
- 0xd03, 0xe56, 0xe16, 0xf1e, 0xd13, 0xe76, 0xe36, 0x123c,
- 0xd0b, 0xe66, 0xe26, 0x121c, 0xe06, 0xe86, 0xe46, 0x125c,
- 0xd07, 0xe5e, 0xe1e, 0x120c, 0xd17, 0xe7e, 0xe3e, 0x124c,
- 0xd0f, 0xe6e, 0xe2e, 0x122c, 0xe0e, 0xe8e, 0xe4e, 0x126c,
- 0xd00, 0xe51, 0xe11, 0xf19, 0xd10, 0xe71, 0xe31, 0x1232,
- 0xd08, 0xe61, 0xe21, 0x1212, 0xe01, 0xe81, 0xe41, 0x1252,
- 0xd04, 0xe59, 0xe19, 0x1202, 0xd14, 0xe79, 0xe39, 0x1242,
- 0xd0c, 0xe69, 0xe29, 0x1222, 0xe09, 0xe89, 0xe49, 0x1262,
- 0xd02, 0xe55, 0xe15, 0xf1d, 0xd12, 0xe75, 0xe35, 0x123a,
- 0xd0a, 0xe65, 0xe25, 0x121a, 0xe05, 0xe85, 0xe45, 0x125a,
- 0xd06, 0xe5d, 0xe1d, 0x120a, 0xd16, 0xe7d, 0xe3d, 0x124a,
- 0xd0e, 0xe6d, 0xe2d, 0x122a, 0xe0d, 0xe8d, 0xe4d, 0x126a,
- 0xd01, 0xe53, 0xe13, 0xf1b, 0xd11, 0xe73, 0xe33, 0x1236,
- 0xd09, 0xe63, 0xe23, 0x1216, 0xe03, 0xe83, 0xe43, 0x1256,
- 0xd05, 0xe5b, 0xe1b, 0x1206, 0xd15, 0xe7b, 0xe3b, 0x1246,
- 0xd0d, 0xe6b, 0xe2b, 0x1226, 0xe0b, 0xe8b, 0xe4b, 0x1266,
- 0xd03, 0xe57, 0xe17, 0xf1f, 0xd13, 0xe77, 0xe37, 0x123e,
- 0xd0b, 0xe67, 0xe27, 0x121e, 0xe07, 0xe87, 0xe47, 0x125e,
- 0xd07, 0xe5f, 0xe1f, 0x120e, 0xd17, 0xe7f, 0xe3f, 0x124e,
- 0xd0f, 0xe6f, 0xe2f, 0x122e, 0xe0f, 0xe8f, 0xe4f, 0x126e,
- 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297,
- 0x298, 0x299, 0x29a, 0x29b, 0x29c, 0x29d, 0x29e, 0x29f,
- 0x2a0, 0x2a1, 0x2a2, 0x2a3, 0x2a4, 0x2a5, 0x2a6, 0x2a7,
- 0x2a8, 0x2a9, 0x2aa, 0x2ab, 0x2ac, 0x2ad, 0x2ae, 0x2af,
- 0x2b0, 0x2b1, 0x2b2, 0x2b3, 0x2b4, 0x2b5, 0x2b6, 0x2b7,
- 0x2b8, 0x2b9, 0x2ba, 0x2bb, 0x2bc, 0x2bd, 0x2be, 0x2bf,
- 0x2c0, 0x2c1, 0x2c2, 0x2c3, 0x2c4, 0x2c5, 0x2c6, 0x2c7,
- 0x2c8, 0x2c9, 0x2ca, 0x2cb, 0x2cc, 0x2cd, 0x2ce, 0x2cf,
- 0x2d0, 0x2d1, 0x2d2, 0x2d3, 0x2d4, 0x2d5, 0x2d6, 0x2d7,
- 0x2d8, 0x2d9, 0x2da, 0x2db, 0x2dc, 0x2dd, 0x2de, 0x2df,
- 0x2e0, 0x2e1, 0x2e2, 0x2e3, 0x2e4, 0x2e5, 0x2e6, 0x2e7,
- 0x2e8, 0x2e9, 0x2ea, 0x2eb, 0x2ec, 0x2ed, 0x2ee, 0x2ef,
- 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4, 0x2f5, 0x2f6, 0x2f7,
- 0x2f8, 0x2f9, 0x2fa, 0x2fb, 0x2fc, 0x2fd, 0x2fe, 0x2ff,
-};
-
-static const uint16_t elf_zlib_default_dist_table[0x100] =
-{
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
- 0x800, 0x810, 0x808, 0x818, 0x804, 0x814, 0x80c, 0x81c,
- 0x802, 0x812, 0x80a, 0x81a, 0x806, 0x816, 0x80e, 0x81e,
- 0x801, 0x811, 0x809, 0x819, 0x805, 0x815, 0x80d, 0x81d,
- 0x803, 0x813, 0x80b, 0x81b, 0x807, 0x817, 0x80f, 0x81f,
-};
-
-/* Inflate a zlib stream from PIN/SIN to POUT/SOUT. Return 1 on
- success, 0 on some error parsing the stream. */
-
-static int
-elf_zlib_inflate (const unsigned char *pin, size_t sin, uint16_t *zdebug_table,
- unsigned char *pout, size_t sout)
-{
- unsigned char *porigout;
- const unsigned char *pinend;
- unsigned char *poutend;
-
- /* We can apparently see multiple zlib streams concatenated
- together, so keep going as long as there is something to read.
- The last 4 bytes are the checksum. */
- porigout = pout;
- pinend = pin + sin;
- poutend = pout + sout;
- while ((pinend - pin) > 4)
- {
- uint64_t val;
- unsigned int bits;
- int last;
-
- /* Read the two byte zlib header. */
-
- if (unlikely ((pin[0] & 0xf) != 8)) /* 8 is zlib encoding. */
- {
- /* Unknown compression method. */
- elf_uncompress_failed ();
- return 0;
- }
- if (unlikely ((pin[0] >> 4) > 7))
- {
- /* Window size too large. Other than this check, we don't
- care about the window size. */
- elf_uncompress_failed ();
- return 0;
- }
- if (unlikely ((pin[1] & 0x20) != 0))
- {
- /* Stream expects a predefined dictionary, but we have no
- dictionary. */
- elf_uncompress_failed ();
- return 0;
- }
- val = (pin[0] << 8) | pin[1];
- if (unlikely (val % 31 != 0))
- {
- /* Header check failure. */
- elf_uncompress_failed ();
- return 0;
- }
- pin += 2;
-
- /* Align PIN to a 32-bit boundary. */
-
- val = 0;
- bits = 0;
- while ((((uintptr_t) pin) & 3) != 0)
- {
- val |= (uint64_t)*pin << bits;
- bits += 8;
- ++pin;
- }
-
- /* Read blocks until one is marked last. */
-
- last = 0;
-
- while (!last)
- {
- unsigned int type;
- const uint16_t *tlit;
- const uint16_t *tdist;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- last = val & 1;
- type = (val >> 1) & 3;
- val >>= 3;
- bits -= 3;
-
- if (unlikely (type == 3))
- {
- /* Invalid block type. */
- elf_uncompress_failed ();
- return 0;
- }
-
- if (type == 0)
- {
- uint16_t len;
- uint16_t lenc;
-
- /* An uncompressed block. */
-
- /* If we've read ahead more than a byte, back up. */
- while (bits >= 8)
- {
- --pin;
- bits -= 8;
- }
-
- val = 0;
- bits = 0;
- if (unlikely ((pinend - pin) < 4))
- {
- /* Missing length. */
- elf_uncompress_failed ();
- return 0;
- }
- len = pin[0] | (pin[1] << 8);
- lenc = pin[2] | (pin[3] << 8);
- pin += 4;
- lenc = ~lenc;
- if (unlikely (len != lenc))
- {
- /* Corrupt data. */
- elf_uncompress_failed ();
- return 0;
- }
- if (unlikely (len > (unsigned int) (pinend - pin)
- || len > (unsigned int) (poutend - pout)))
- {
- /* Not enough space in buffers. */
- elf_uncompress_failed ();
- return 0;
- }
- memcpy (pout, pin, len);
- pout += len;
- pin += len;
-
- /* Align PIN. */
- while ((((uintptr_t) pin) & 3) != 0)
- {
- val |= (uint64_t)*pin << bits;
- bits += 8;
- ++pin;
- }
-
- /* Go around to read the next block. */
- continue;
- }
-
- if (type == 1)
- {
- tlit = elf_zlib_default_table;
- tdist = elf_zlib_default_dist_table;
- }
- else
- {
- unsigned int nlit;
- unsigned int ndist;
- unsigned int nclen;
- unsigned char codebits[19];
- unsigned char *plenbase;
- unsigned char *plen;
- unsigned char *plenend;
-
- /* Read a Huffman encoding table. The various magic
- numbers here are from RFC 1951. */
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- nlit = (val & 0x1f) + 257;
- val >>= 5;
- ndist = (val & 0x1f) + 1;
- val >>= 5;
- nclen = (val & 0xf) + 4;
- val >>= 4;
- bits -= 14;
- if (unlikely (nlit > 286 || ndist > 30))
- {
- /* Values out of range. */
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Read and build the table used to compress the
- literal, length, and distance codes. */
-
- memset(&codebits[0], 0, 19);
-
- /* There are always at least 4 elements in the
- table. */
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- codebits[16] = val & 7;
- codebits[17] = (val >> 3) & 7;
- codebits[18] = (val >> 6) & 7;
- codebits[0] = (val >> 9) & 7;
- val >>= 12;
- bits -= 12;
-
- if (nclen == 4)
- goto codebitsdone;
-
- codebits[8] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 5)
- goto codebitsdone;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- codebits[7] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 6)
- goto codebitsdone;
-
- codebits[9] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 7)
- goto codebitsdone;
-
- codebits[6] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 8)
- goto codebitsdone;
-
- codebits[10] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 9)
- goto codebitsdone;
-
- codebits[5] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 10)
- goto codebitsdone;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- codebits[11] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 11)
- goto codebitsdone;
-
- codebits[4] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 12)
- goto codebitsdone;
-
- codebits[12] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 13)
- goto codebitsdone;
-
- codebits[3] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 14)
- goto codebitsdone;
-
- codebits[13] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 15)
- goto codebitsdone;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- codebits[2] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 16)
- goto codebitsdone;
-
- codebits[14] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 17)
- goto codebitsdone;
-
- codebits[1] = val & 7;
- val >>= 3;
- bits -= 3;
-
- if (nclen == 18)
- goto codebitsdone;
-
- codebits[15] = val & 7;
- val >>= 3;
- bits -= 3;
-
- codebitsdone:
-
- if (!elf_zlib_inflate_table (codebits, 19, zdebug_table,
- zdebug_table))
- return 0;
-
- /* Read the compressed bit lengths of the literal,
- length, and distance codes. We have allocated space
- at the end of zdebug_table to hold them. */
-
- plenbase = (((unsigned char *) zdebug_table)
- + ZDEBUG_TABLE_CODELEN_OFFSET);
- plen = plenbase;
- plenend = plen + nlit + ndist;
- while (plen < plenend)
- {
- uint16_t t;
- unsigned int b;
- uint16_t v;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- t = zdebug_table[val & 0xff];
-
- /* The compression here uses bit lengths up to 7, so
- a secondary table is never necessary. */
- if (unlikely ((t & (1U << HUFFMAN_SECONDARY_SHIFT)) != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK;
- val >>= b + 1;
- bits -= b + 1;
-
- v = t & HUFFMAN_VALUE_MASK;
- if (v < 16)
- *plen++ = v;
- else if (v == 16)
- {
- unsigned int c;
- unsigned int prev;
-
- /* Copy previous entry 3 to 6 times. */
-
- if (unlikely (plen == plenbase))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* We used up to 7 bits since the last
- elf_zlib_fetch, so we have at least 8 bits
- available here. */
-
- c = 3 + (val & 0x3);
- val >>= 2;
- bits -= 2;
- if (unlikely ((unsigned int) (plenend - plen) < c))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- prev = plen[-1];
- switch (c)
- {
- case 6:
- *plen++ = prev;
- ATTRIBUTE_FALLTHROUGH;
- case 5:
- *plen++ = prev;
- ATTRIBUTE_FALLTHROUGH;
- case 4:
- *plen++ = prev;
- }
- *plen++ = prev;
- *plen++ = prev;
- *plen++ = prev;
- }
- else if (v == 17)
- {
- unsigned int c;
-
- /* Store zero 3 to 10 times. */
-
- /* We used up to 7 bits since the last
- elf_zlib_fetch, so we have at least 8 bits
- available here. */
-
- c = 3 + (val & 0x7);
- val >>= 3;
- bits -= 3;
- if (unlikely ((unsigned int) (plenend - plen) < c))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- switch (c)
- {
- case 10:
- *plen++ = 0;
- ATTRIBUTE_FALLTHROUGH;
- case 9:
- *plen++ = 0;
- ATTRIBUTE_FALLTHROUGH;
- case 8:
- *plen++ = 0;
- ATTRIBUTE_FALLTHROUGH;
- case 7:
- *plen++ = 0;
- ATTRIBUTE_FALLTHROUGH;
- case 6:
- *plen++ = 0;
- ATTRIBUTE_FALLTHROUGH;
- case 5:
- *plen++ = 0;
- ATTRIBUTE_FALLTHROUGH;
- case 4:
- *plen++ = 0;
- }
- *plen++ = 0;
- *plen++ = 0;
- *plen++ = 0;
- }
- else if (v == 18)
- {
- unsigned int c;
-
- /* Store zero 11 to 138 times. */
-
- /* We used up to 7 bits since the last
- elf_zlib_fetch, so we have at least 8 bits
- available here. */
-
- c = 11 + (val & 0x7f);
- val >>= 7;
- bits -= 7;
- if (unlikely ((unsigned int) (plenend - plen) < c))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- memset (plen, 0, c);
- plen += c;
- }
- else
- {
- elf_uncompress_failed ();
- return 0;
- }
- }
-
- /* Make sure that the stop code can appear. */
-
- plen = plenbase;
- if (unlikely (plen[256] == 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Build the decompression tables. */
-
- if (!elf_zlib_inflate_table (plen, nlit, zdebug_table,
- zdebug_table))
- return 0;
- if (!elf_zlib_inflate_table (plen + nlit, ndist, zdebug_table,
- zdebug_table + HUFFMAN_TABLE_SIZE))
- return 0;
- tlit = zdebug_table;
- tdist = zdebug_table + HUFFMAN_TABLE_SIZE;
- }
-
- /* Inflate values until the end of the block. This is the
- main loop of the inflation code. */
-
- while (1)
- {
- uint16_t t;
- unsigned int b;
- uint16_t v;
- unsigned int lit;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- t = tlit[val & 0xff];
- b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK;
- v = t & HUFFMAN_VALUE_MASK;
-
- if ((t & (1U << HUFFMAN_SECONDARY_SHIFT)) == 0)
- {
- lit = v;
- val >>= b + 1;
- bits -= b + 1;
- }
- else
- {
- t = tlit[v + 0x100 + ((val >> 8) & ((1U << b) - 1))];
- b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK;
- lit = t & HUFFMAN_VALUE_MASK;
- val >>= b + 8;
- bits -= b + 8;
- }
-
- if (lit < 256)
- {
- if (unlikely (pout == poutend))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- *pout++ = lit;
-
- /* We will need to write the next byte soon. We ask
- for high temporal locality because we will write
- to the whole cache line soon. */
- __builtin_prefetch (pout, 1, 3);
- }
- else if (lit == 256)
- {
- /* The end of the block. */
- break;
- }
- else
- {
- unsigned int dist;
- unsigned int len;
-
- /* Convert lit into a length. */
-
- if (lit < 265)
- len = lit - 257 + 3;
- else if (lit == 285)
- len = 258;
- else if (unlikely (lit > 285))
- {
- elf_uncompress_failed ();
- return 0;
- }
- else
- {
- unsigned int extra;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- /* This is an expression for the table of length
- codes in RFC 1951 3.2.5. */
- lit -= 265;
- extra = (lit >> 2) + 1;
- len = (lit & 3) << extra;
- len += 11;
- len += ((1U << (extra - 1)) - 1) << 3;
- len += val & ((1U << extra) - 1);
- val >>= extra;
- bits -= extra;
- }
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- t = tdist[val & 0xff];
- b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK;
- v = t & HUFFMAN_VALUE_MASK;
-
- if ((t & (1U << HUFFMAN_SECONDARY_SHIFT)) == 0)
- {
- dist = v;
- val >>= b + 1;
- bits -= b + 1;
- }
- else
- {
- t = tdist[v + 0x100 + ((val >> 8) & ((1U << b) - 1))];
- b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK;
- dist = t & HUFFMAN_VALUE_MASK;
- val >>= b + 8;
- bits -= b + 8;
- }
-
- /* Convert dist to a distance. */
-
- if (dist == 0)
- {
- /* A distance of 1. A common case, meaning
- repeat the last character LEN times. */
-
- if (unlikely (pout == porigout))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- if (unlikely ((unsigned int) (poutend - pout) < len))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- memset (pout, pout[-1], len);
- pout += len;
- }
- else if (unlikely (dist > 29))
- {
- elf_uncompress_failed ();
- return 0;
- }
- else
- {
- if (dist < 4)
- dist = dist + 1;
- else
- {
- unsigned int extra;
-
- if (!elf_zlib_fetch (&pin, pinend, &val, &bits))
- return 0;
-
- /* This is an expression for the table of
- distance codes in RFC 1951 3.2.5. */
- dist -= 4;
- extra = (dist >> 1) + 1;
- dist = (dist & 1) << extra;
- dist += 5;
- dist += ((1U << (extra - 1)) - 1) << 2;
- dist += val & ((1U << extra) - 1);
- val >>= extra;
- bits -= extra;
- }
-
- /* Go back dist bytes, and copy len bytes from
- there. */
-
- if (unlikely ((unsigned int) (pout - porigout) < dist))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- if (unlikely ((unsigned int) (poutend - pout) < len))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- if (dist >= len)
- {
- memcpy (pout, pout - dist, len);
- pout += len;
- }
- else
- {
- while (len > 0)
- {
- unsigned int copy;
-
- copy = len < dist ? len : dist;
- memcpy (pout, pout - dist, copy);
- len -= copy;
- pout += copy;
- }
- }
- }
- }
- }
- }
- }
-
- /* We should have filled the output buffer. */
- if (unlikely (pout != poutend))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- return 1;
-}
-
-/* Verify the zlib checksum. The checksum is in the 4 bytes at
- CHECKBYTES, and the uncompressed data is at UNCOMPRESSED /
- UNCOMPRESSED_SIZE. Returns 1 on success, 0 on failure. */
-
-static int
-elf_zlib_verify_checksum (const unsigned char *checkbytes,
- const unsigned char *uncompressed,
- size_t uncompressed_size)
-{
- unsigned int i;
- unsigned int cksum;
- const unsigned char *p;
- uint32_t s1;
- uint32_t s2;
- size_t hsz;
-
- cksum = 0;
- for (i = 0; i < 4; i++)
- cksum = (cksum << 8) | checkbytes[i];
-
- s1 = 1;
- s2 = 0;
-
- /* Minimize modulo operations. */
-
- p = uncompressed;
- hsz = uncompressed_size;
- while (hsz >= 5552)
- {
- for (i = 0; i < 5552; i += 16)
- {
- /* Manually unroll loop 16 times. */
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- }
- hsz -= 5552;
- s1 %= 65521;
- s2 %= 65521;
- }
-
- while (hsz >= 16)
- {
- /* Manually unroll loop 16 times. */
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
- s1 = s1 + *p++;
- s2 = s2 + s1;
-
- hsz -= 16;
- }
-
- for (i = 0; i < hsz; ++i)
- {
- s1 = s1 + *p++;
- s2 = s2 + s1;
- }
-
- s1 %= 65521;
- s2 %= 65521;
-
- if (unlikely ((s2 << 16) + s1 != cksum))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- return 1;
-}
-
-/* Inflate a zlib stream from PIN/SIN to POUT/SOUT, and verify the
- checksum. Return 1 on success, 0 on error. */
-
-static int
-elf_zlib_inflate_and_verify (const unsigned char *pin, size_t sin,
- uint16_t *zdebug_table, unsigned char *pout,
- size_t sout)
-{
- if (!elf_zlib_inflate (pin, sin, zdebug_table, pout, sout))
- return 0;
- if (!elf_zlib_verify_checksum (pin + sin - 4, pout, sout))
- return 0;
- return 1;
-}
-
-/* Uncompress the old compressed debug format, the one emitted by
- --compress-debug-sections=zlib-gnu. The compressed data is in
- COMPRESSED / COMPRESSED_SIZE, and the function writes to
- *UNCOMPRESSED / *UNCOMPRESSED_SIZE. ZDEBUG_TABLE is work space to
- hold Huffman tables. Returns 0 on error, 1 on successful
- decompression or if something goes wrong. In general we try to
- carry on, by returning 1, even if we can't decompress. */
-
-static int
-elf_uncompress_zdebug (struct backtrace_state *state,
- const unsigned char *compressed, size_t compressed_size,
- uint16_t *zdebug_table,
- backtrace_error_callback error_callback, void *data,
- unsigned char **uncompressed, size_t *uncompressed_size)
-{
- size_t sz;
- size_t i;
- unsigned char *po;
-
- *uncompressed = NULL;
- *uncompressed_size = 0;
-
- /* The format starts with the four bytes ZLIB, followed by the 8
- byte length of the uncompressed data in big-endian order,
- followed by a zlib stream. */
-
- if (compressed_size < 12 || memcmp (compressed, "ZLIB", 4) != 0)
- return 1;
-
- sz = 0;
- for (i = 0; i < 8; i++)
- sz = (sz << 8) | compressed[i + 4];
-
- if (*uncompressed != NULL && *uncompressed_size >= sz)
- po = *uncompressed;
- else
- {
- po = (unsigned char *) backtrace_alloc (state, sz, error_callback, data);
- if (po == NULL)
- return 0;
- }
-
- if (!elf_zlib_inflate_and_verify (compressed + 12, compressed_size - 12,
- zdebug_table, po, sz))
- return 1;
-
- *uncompressed = po;
- *uncompressed_size = sz;
-
- return 1;
-}
-
-/* Uncompress the new compressed debug format, the official standard
- ELF approach emitted by --compress-debug-sections=zlib-gabi. The
- compressed data is in COMPRESSED / COMPRESSED_SIZE, and the
- function writes to *UNCOMPRESSED / *UNCOMPRESSED_SIZE.
- ZDEBUG_TABLE is work space as for elf_uncompress_zdebug. Returns 0
- on error, 1 on successful decompression or if something goes wrong.
- In general we try to carry on, by returning 1, even if we can't
- decompress. */
-
-static int
-elf_uncompress_chdr (struct backtrace_state *state,
- const unsigned char *compressed, size_t compressed_size,
- uint16_t *zdebug_table,
- backtrace_error_callback error_callback, void *data,
- unsigned char **uncompressed, size_t *uncompressed_size)
-{
- const b_elf_chdr *chdr;
- unsigned char *po;
-
- *uncompressed = NULL;
- *uncompressed_size = 0;
-
- /* The format starts with an ELF compression header. */
- if (compressed_size < sizeof (b_elf_chdr))
- return 1;
-
- chdr = (const b_elf_chdr *) compressed;
-
- if (chdr->ch_type != ELFCOMPRESS_ZLIB)
- {
- /* Unsupported compression algorithm. */
- return 1;
- }
-
- if (*uncompressed != NULL && *uncompressed_size >= chdr->ch_size)
- po = *uncompressed;
- else
- {
- po = (unsigned char *) backtrace_alloc (state, chdr->ch_size,
- error_callback, data);
- if (po == NULL)
- return 0;
- }
-
- if (!elf_zlib_inflate_and_verify (compressed + sizeof (b_elf_chdr),
- compressed_size - sizeof (b_elf_chdr),
- zdebug_table, po, chdr->ch_size))
- return 1;
-
- *uncompressed = po;
- *uncompressed_size = chdr->ch_size;
-
- return 1;
-}
-
-/* This function is a hook for testing the zlib support. It is only
- used by tests. */
-
-int
-backtrace_uncompress_zdebug (struct backtrace_state *state,
- const unsigned char *compressed,
- size_t compressed_size,
- backtrace_error_callback error_callback,
- void *data, unsigned char **uncompressed,
- size_t *uncompressed_size)
-{
- uint16_t *zdebug_table;
- int ret;
-
- zdebug_table = ((uint16_t *) backtrace_alloc (state, ZDEBUG_TABLE_SIZE,
- error_callback, data));
- if (zdebug_table == NULL)
- return 0;
- ret = elf_uncompress_zdebug (state, compressed, compressed_size,
- zdebug_table, error_callback, data,
- uncompressed, uncompressed_size);
- backtrace_free (state, zdebug_table, ZDEBUG_TABLE_SIZE,
- error_callback, data);
- return ret;
-}
-
-/* Number of LZMA states. */
-#define LZMA_STATES (12)
-
-/* Number of LZMA position states. The pb value of the property byte
- is the number of bits to include in these states, and the maximum
- value of pb is 4. */
-#define LZMA_POS_STATES (16)
-
-/* Number of LZMA distance states. These are used match distances
- with a short match length: up to 4 bytes. */
-#define LZMA_DIST_STATES (4)
-
-/* Number of LZMA distance slots. LZMA uses six bits to encode larger
- match lengths, so 1 << 6 possible probabilities. */
-#define LZMA_DIST_SLOTS (64)
-
-/* LZMA distances 0 to 3 are encoded directly, larger values use a
- probability model. */
-#define LZMA_DIST_MODEL_START (4)
-
-/* The LZMA probability model ends at 14. */
-#define LZMA_DIST_MODEL_END (14)
-
-/* LZMA distance slots for distances less than 127. */
-#define LZMA_FULL_DISTANCES (128)
-
-/* LZMA uses four alignment bits. */
-#define LZMA_ALIGN_SIZE (16)
-
-/* LZMA match length is encoded with 4, 5, or 10 bits, some of which
- are already known. */
-#define LZMA_LEN_LOW_SYMBOLS (8)
-#define LZMA_LEN_MID_SYMBOLS (8)
-#define LZMA_LEN_HIGH_SYMBOLS (256)
-
-/* LZMA literal encoding. */
-#define LZMA_LITERAL_CODERS_MAX (16)
-#define LZMA_LITERAL_CODER_SIZE (0x300)
-
-/* LZMA is based on a large set of probabilities, each managed
- independently. Each probability is an 11 bit number that we store
- in a uint16_t. We use a single large array of probabilities. */
-
-/* Lengths of entries in the LZMA probabilities array. The names used
- here are copied from the Linux kernel implementation. */
-
-#define LZMA_PROB_IS_MATCH_LEN (LZMA_STATES * LZMA_POS_STATES)
-#define LZMA_PROB_IS_REP_LEN LZMA_STATES
-#define LZMA_PROB_IS_REP0_LEN LZMA_STATES
-#define LZMA_PROB_IS_REP1_LEN LZMA_STATES
-#define LZMA_PROB_IS_REP2_LEN LZMA_STATES
-#define LZMA_PROB_IS_REP0_LONG_LEN (LZMA_STATES * LZMA_POS_STATES)
-#define LZMA_PROB_DIST_SLOT_LEN (LZMA_DIST_STATES * LZMA_DIST_SLOTS)
-#define LZMA_PROB_DIST_SPECIAL_LEN (LZMA_FULL_DISTANCES - LZMA_DIST_MODEL_END)
-#define LZMA_PROB_DIST_ALIGN_LEN LZMA_ALIGN_SIZE
-#define LZMA_PROB_MATCH_LEN_CHOICE_LEN 1
-#define LZMA_PROB_MATCH_LEN_CHOICE2_LEN 1
-#define LZMA_PROB_MATCH_LEN_LOW_LEN (LZMA_POS_STATES * LZMA_LEN_LOW_SYMBOLS)
-#define LZMA_PROB_MATCH_LEN_MID_LEN (LZMA_POS_STATES * LZMA_LEN_MID_SYMBOLS)
-#define LZMA_PROB_MATCH_LEN_HIGH_LEN LZMA_LEN_HIGH_SYMBOLS
-#define LZMA_PROB_REP_LEN_CHOICE_LEN 1
-#define LZMA_PROB_REP_LEN_CHOICE2_LEN 1
-#define LZMA_PROB_REP_LEN_LOW_LEN (LZMA_POS_STATES * LZMA_LEN_LOW_SYMBOLS)
-#define LZMA_PROB_REP_LEN_MID_LEN (LZMA_POS_STATES * LZMA_LEN_MID_SYMBOLS)
-#define LZMA_PROB_REP_LEN_HIGH_LEN LZMA_LEN_HIGH_SYMBOLS
-#define LZMA_PROB_LITERAL_LEN \
- (LZMA_LITERAL_CODERS_MAX * LZMA_LITERAL_CODER_SIZE)
-
-/* Offsets into the LZMA probabilities array. This is mechanically
- generated from the above lengths. */
-
-#define LZMA_PROB_IS_MATCH_OFFSET 0
-#define LZMA_PROB_IS_REP_OFFSET \
- (LZMA_PROB_IS_MATCH_OFFSET + LZMA_PROB_IS_MATCH_LEN)
-#define LZMA_PROB_IS_REP0_OFFSET \
- (LZMA_PROB_IS_REP_OFFSET + LZMA_PROB_IS_REP_LEN)
-#define LZMA_PROB_IS_REP1_OFFSET \
- (LZMA_PROB_IS_REP0_OFFSET + LZMA_PROB_IS_REP0_LEN)
-#define LZMA_PROB_IS_REP2_OFFSET \
- (LZMA_PROB_IS_REP1_OFFSET + LZMA_PROB_IS_REP1_LEN)
-#define LZMA_PROB_IS_REP0_LONG_OFFSET \
- (LZMA_PROB_IS_REP2_OFFSET + LZMA_PROB_IS_REP2_LEN)
-#define LZMA_PROB_DIST_SLOT_OFFSET \
- (LZMA_PROB_IS_REP0_LONG_OFFSET + LZMA_PROB_IS_REP0_LONG_LEN)
-#define LZMA_PROB_DIST_SPECIAL_OFFSET \
- (LZMA_PROB_DIST_SLOT_OFFSET + LZMA_PROB_DIST_SLOT_LEN)
-#define LZMA_PROB_DIST_ALIGN_OFFSET \
- (LZMA_PROB_DIST_SPECIAL_OFFSET + LZMA_PROB_DIST_SPECIAL_LEN)
-#define LZMA_PROB_MATCH_LEN_CHOICE_OFFSET \
- (LZMA_PROB_DIST_ALIGN_OFFSET + LZMA_PROB_DIST_ALIGN_LEN)
-#define LZMA_PROB_MATCH_LEN_CHOICE2_OFFSET \
- (LZMA_PROB_MATCH_LEN_CHOICE_OFFSET + LZMA_PROB_MATCH_LEN_CHOICE_LEN)
-#define LZMA_PROB_MATCH_LEN_LOW_OFFSET \
- (LZMA_PROB_MATCH_LEN_CHOICE2_OFFSET + LZMA_PROB_MATCH_LEN_CHOICE2_LEN)
-#define LZMA_PROB_MATCH_LEN_MID_OFFSET \
- (LZMA_PROB_MATCH_LEN_LOW_OFFSET + LZMA_PROB_MATCH_LEN_LOW_LEN)
-#define LZMA_PROB_MATCH_LEN_HIGH_OFFSET \
- (LZMA_PROB_MATCH_LEN_MID_OFFSET + LZMA_PROB_MATCH_LEN_MID_LEN)
-#define LZMA_PROB_REP_LEN_CHOICE_OFFSET \
- (LZMA_PROB_MATCH_LEN_HIGH_OFFSET + LZMA_PROB_MATCH_LEN_HIGH_LEN)
-#define LZMA_PROB_REP_LEN_CHOICE2_OFFSET \
- (LZMA_PROB_REP_LEN_CHOICE_OFFSET + LZMA_PROB_REP_LEN_CHOICE_LEN)
-#define LZMA_PROB_REP_LEN_LOW_OFFSET \
- (LZMA_PROB_REP_LEN_CHOICE2_OFFSET + LZMA_PROB_REP_LEN_CHOICE2_LEN)
-#define LZMA_PROB_REP_LEN_MID_OFFSET \
- (LZMA_PROB_REP_LEN_LOW_OFFSET + LZMA_PROB_REP_LEN_LOW_LEN)
-#define LZMA_PROB_REP_LEN_HIGH_OFFSET \
- (LZMA_PROB_REP_LEN_MID_OFFSET + LZMA_PROB_REP_LEN_MID_LEN)
-#define LZMA_PROB_LITERAL_OFFSET \
- (LZMA_PROB_REP_LEN_HIGH_OFFSET + LZMA_PROB_REP_LEN_HIGH_LEN)
-
-#define LZMA_PROB_TOTAL_COUNT \
- (LZMA_PROB_LITERAL_OFFSET + LZMA_PROB_LITERAL_LEN)
-
-/* Check that the number of LZMA probabilities is the same as the
- Linux kernel implementation. */
-
-#if LZMA_PROB_TOTAL_COUNT != 1846 + (1 << 4) * 0x300
- #error Wrong number of LZMA probabilities
-#endif
-
-/* Expressions for the offset in the LZMA probabilities array of a
- specific probability. */
-
-#define LZMA_IS_MATCH(state, pos) \
- (LZMA_PROB_IS_MATCH_OFFSET + (state) * LZMA_POS_STATES + (pos))
-#define LZMA_IS_REP(state) \
- (LZMA_PROB_IS_REP_OFFSET + (state))
-#define LZMA_IS_REP0(state) \
- (LZMA_PROB_IS_REP0_OFFSET + (state))
-#define LZMA_IS_REP1(state) \
- (LZMA_PROB_IS_REP1_OFFSET + (state))
-#define LZMA_IS_REP2(state) \
- (LZMA_PROB_IS_REP2_OFFSET + (state))
-#define LZMA_IS_REP0_LONG(state, pos) \
- (LZMA_PROB_IS_REP0_LONG_OFFSET + (state) * LZMA_POS_STATES + (pos))
-#define LZMA_DIST_SLOT(dist, slot) \
- (LZMA_PROB_DIST_SLOT_OFFSET + (dist) * LZMA_DIST_SLOTS + (slot))
-#define LZMA_DIST_SPECIAL(dist) \
- (LZMA_PROB_DIST_SPECIAL_OFFSET + (dist))
-#define LZMA_DIST_ALIGN(dist) \
- (LZMA_PROB_DIST_ALIGN_OFFSET + (dist))
-#define LZMA_MATCH_LEN_CHOICE \
- LZMA_PROB_MATCH_LEN_CHOICE_OFFSET
-#define LZMA_MATCH_LEN_CHOICE2 \
- LZMA_PROB_MATCH_LEN_CHOICE2_OFFSET
-#define LZMA_MATCH_LEN_LOW(pos, sym) \
- (LZMA_PROB_MATCH_LEN_LOW_OFFSET + (pos) * LZMA_LEN_LOW_SYMBOLS + (sym))
-#define LZMA_MATCH_LEN_MID(pos, sym) \
- (LZMA_PROB_MATCH_LEN_MID_OFFSET + (pos) * LZMA_LEN_MID_SYMBOLS + (sym))
-#define LZMA_MATCH_LEN_HIGH(sym) \
- (LZMA_PROB_MATCH_LEN_HIGH_OFFSET + (sym))
-#define LZMA_REP_LEN_CHOICE \
- LZMA_PROB_REP_LEN_CHOICE_OFFSET
-#define LZMA_REP_LEN_CHOICE2 \
- LZMA_PROB_REP_LEN_CHOICE2_OFFSET
-#define LZMA_REP_LEN_LOW(pos, sym) \
- (LZMA_PROB_REP_LEN_LOW_OFFSET + (pos) * LZMA_LEN_LOW_SYMBOLS + (sym))
-#define LZMA_REP_LEN_MID(pos, sym) \
- (LZMA_PROB_REP_LEN_MID_OFFSET + (pos) * LZMA_LEN_MID_SYMBOLS + (sym))
-#define LZMA_REP_LEN_HIGH(sym) \
- (LZMA_PROB_REP_LEN_HIGH_OFFSET + (sym))
-#define LZMA_LITERAL(code, size) \
- (LZMA_PROB_LITERAL_OFFSET + (code) * LZMA_LITERAL_CODER_SIZE + (size))
-
-/* Read an LZMA varint from BUF, reading and updating *POFFSET,
- setting *VAL. Returns 0 on error, 1 on success. */
-
-static int
-elf_lzma_varint (const unsigned char *compressed, size_t compressed_size,
- size_t *poffset, uint64_t *val)
-{
- size_t off;
- int i;
- uint64_t v;
- unsigned char b;
-
- off = *poffset;
- i = 0;
- v = 0;
- while (1)
- {
- if (unlikely (off >= compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
- b = compressed[off];
- v |= (b & 0x7f) << (i * 7);
- ++off;
- if ((b & 0x80) == 0)
- {
- *poffset = off;
- *val = v;
- return 1;
- }
- ++i;
- if (unlikely (i >= 9))
- {
- elf_uncompress_failed ();
- return 0;
- }
- }
-}
-
-/* Normalize the LZMA range decoder, pulling in an extra input byte if
- needed. */
-
-static void
-elf_lzma_range_normalize (const unsigned char *compressed,
- size_t compressed_size, size_t *poffset,
- uint32_t *prange, uint32_t *pcode)
-{
- if (*prange < (1U << 24))
- {
- if (unlikely (*poffset >= compressed_size))
- {
- /* We assume this will be caught elsewhere. */
- elf_uncompress_failed ();
- return;
- }
- *prange <<= 8;
- *pcode <<= 8;
- *pcode += compressed[*poffset];
- ++*poffset;
- }
-}
-
-/* Read and return a single bit from the LZMA stream, reading and
- updating *PROB. Each bit comes from the range coder. */
-
-static int
-elf_lzma_bit (const unsigned char *compressed, size_t compressed_size,
- uint16_t *prob, size_t *poffset, uint32_t *prange,
- uint32_t *pcode)
-{
- uint32_t bound;
-
- elf_lzma_range_normalize (compressed, compressed_size, poffset,
- prange, pcode);
- bound = (*prange >> 11) * (uint32_t) *prob;
- if (*pcode < bound)
- {
- *prange = bound;
- *prob += ((1U << 11) - *prob) >> 5;
- return 0;
- }
- else
- {
- *prange -= bound;
- *pcode -= bound;
- *prob -= *prob >> 5;
- return 1;
- }
-}
-
-/* Read an integer of size BITS from the LZMA stream, most significant
- bit first. The bits are predicted using PROBS. */
-
-static uint32_t
-elf_lzma_integer (const unsigned char *compressed, size_t compressed_size,
- uint16_t *probs, uint32_t bits, size_t *poffset,
- uint32_t *prange, uint32_t *pcode)
-{
- uint32_t sym;
- uint32_t i;
-
- sym = 1;
- for (i = 0; i < bits; i++)
- {
- int bit;
-
- bit = elf_lzma_bit (compressed, compressed_size, probs + sym, poffset,
- prange, pcode);
- sym <<= 1;
- sym += bit;
- }
- return sym - (1 << bits);
-}
-
-/* Read an integer of size BITS from the LZMA stream, least
- significant bit first. The bits are predicted using PROBS. */
-
-static uint32_t
-elf_lzma_reverse_integer (const unsigned char *compressed,
- size_t compressed_size, uint16_t *probs,
- uint32_t bits, size_t *poffset, uint32_t *prange,
- uint32_t *pcode)
-{
- uint32_t sym;
- uint32_t val;
- uint32_t i;
-
- sym = 1;
- val = 0;
- for (i = 0; i < bits; i++)
- {
- int bit;
-
- bit = elf_lzma_bit (compressed, compressed_size, probs + sym, poffset,
- prange, pcode);
- sym <<= 1;
- sym += bit;
- val += bit << i;
- }
- return val;
-}
-
-/* Read a length from the LZMA stream. IS_REP picks either LZMA_MATCH
- or LZMA_REP probabilities. */
-
-static uint32_t
-elf_lzma_len (const unsigned char *compressed, size_t compressed_size,
- uint16_t *probs, int is_rep, unsigned int pos_state,
- size_t *poffset, uint32_t *prange, uint32_t *pcode)
-{
- uint16_t *probs_choice;
- uint16_t *probs_sym;
- uint32_t bits;
- uint32_t len;
-
- probs_choice = probs + (is_rep
- ? LZMA_REP_LEN_CHOICE
- : LZMA_MATCH_LEN_CHOICE);
- if (elf_lzma_bit (compressed, compressed_size, probs_choice, poffset,
- prange, pcode))
- {
- probs_choice = probs + (is_rep
- ? LZMA_REP_LEN_CHOICE2
- : LZMA_MATCH_LEN_CHOICE2);
- if (elf_lzma_bit (compressed, compressed_size, probs_choice,
- poffset, prange, pcode))
- {
- probs_sym = probs + (is_rep
- ? LZMA_REP_LEN_HIGH (0)
- : LZMA_MATCH_LEN_HIGH (0));
- bits = 8;
- len = 2 + 8 + 8;
- }
- else
- {
- probs_sym = probs + (is_rep
- ? LZMA_REP_LEN_MID (pos_state, 0)
- : LZMA_MATCH_LEN_MID (pos_state, 0));
- bits = 3;
- len = 2 + 8;
- }
- }
- else
- {
- probs_sym = probs + (is_rep
- ? LZMA_REP_LEN_LOW (pos_state, 0)
- : LZMA_MATCH_LEN_LOW (pos_state, 0));
- bits = 3;
- len = 2;
- }
-
- len += elf_lzma_integer (compressed, compressed_size, probs_sym, bits,
- poffset, prange, pcode);
- return len;
-}
-
-/* Uncompress one LZMA block from a minidebug file. The compressed
- data is at COMPRESSED + *POFFSET. Update *POFFSET. Store the data
- into the memory at UNCOMPRESSED, size UNCOMPRESSED_SIZE. CHECK is
- the stream flag from the xz header. Return 1 on successful
- decompression. */
-
-static int
-elf_uncompress_lzma_block (const unsigned char *compressed,
- size_t compressed_size, unsigned char check,
- uint16_t *probs, unsigned char *uncompressed,
- size_t uncompressed_size, size_t *poffset)
-{
- size_t off;
- size_t block_header_offset;
- size_t block_header_size;
- unsigned char block_flags;
- uint64_t header_compressed_size;
- uint64_t header_uncompressed_size;
- unsigned char lzma2_properties;
- uint32_t computed_crc;
- uint32_t stream_crc;
- size_t uncompressed_offset;
- size_t dict_start_offset;
- unsigned int lc;
- unsigned int lp;
- unsigned int pb;
- uint32_t range;
- uint32_t code;
- uint32_t lstate;
- uint32_t dist[4];
-
- off = *poffset;
- block_header_offset = off;
-
- /* Block header size is a single byte. */
- if (unlikely (off >= compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
- block_header_size = (compressed[off] + 1) * 4;
- if (unlikely (off + block_header_size > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Block flags. */
- block_flags = compressed[off + 1];
- if (unlikely ((block_flags & 0x3c) != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- off += 2;
-
- /* Optional compressed size. */
- header_compressed_size = 0;
- if ((block_flags & 0x40) != 0)
- {
- *poffset = off;
- if (!elf_lzma_varint (compressed, compressed_size, poffset,
- &header_compressed_size))
- return 0;
- off = *poffset;
- }
-
- /* Optional uncompressed size. */
- header_uncompressed_size = 0;
- if ((block_flags & 0x80) != 0)
- {
- *poffset = off;
- if (!elf_lzma_varint (compressed, compressed_size, poffset,
- &header_uncompressed_size))
- return 0;
- off = *poffset;
- }
-
- /* The recipe for creating a minidebug file is to run the xz program
- with no arguments, so we expect exactly one filter: lzma2. */
-
- if (unlikely ((block_flags & 0x3) != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- if (unlikely (off + 2 >= block_header_offset + block_header_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* The filter ID for LZMA2 is 0x21. */
- if (unlikely (compressed[off] != 0x21))
- {
- elf_uncompress_failed ();
- return 0;
- }
- ++off;
-
- /* The size of the filter properties for LZMA2 is 1. */
- if (unlikely (compressed[off] != 1))
- {
- elf_uncompress_failed ();
- return 0;
- }
- ++off;
-
- lzma2_properties = compressed[off];
- ++off;
-
- if (unlikely (lzma2_properties > 40))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* The properties describe the dictionary size, but we don't care
- what that is. */
-
- /* Block header padding. */
- if (unlikely (off + 4 > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- off = (off + 3) &~ (size_t) 3;
-
- if (unlikely (off + 4 > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Block header CRC. */
- computed_crc = elf_crc32 (0, compressed + block_header_offset,
- block_header_size - 4);
- stream_crc = (compressed[off]
- | (compressed[off + 1] << 8)
- | (compressed[off + 2] << 16)
- | (compressed[off + 3] << 24));
- if (unlikely (computed_crc != stream_crc))
- {
- elf_uncompress_failed ();
- return 0;
- }
- off += 4;
-
- /* Read a sequence of LZMA2 packets. */
-
- uncompressed_offset = 0;
- dict_start_offset = 0;
- lc = 0;
- lp = 0;
- pb = 0;
- lstate = 0;
- while (off < compressed_size)
- {
- unsigned char control;
-
- range = 0xffffffff;
- code = 0;
-
- control = compressed[off];
- ++off;
- if (unlikely (control == 0))
- {
- /* End of packets. */
- break;
- }
-
- if (control == 1 || control >= 0xe0)
- {
- /* Reset dictionary to empty. */
- dict_start_offset = uncompressed_offset;
- }
-
- if (control < 0x80)
- {
- size_t chunk_size;
-
- /* The only valid values here are 1 or 2. A 1 means to
- reset the dictionary (done above). Then we see an
- uncompressed chunk. */
-
- if (unlikely (control > 2))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* An uncompressed chunk is a two byte size followed by
- data. */
-
- if (unlikely (off + 2 > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- chunk_size = compressed[off] << 8;
- chunk_size += compressed[off + 1];
- ++chunk_size;
-
- off += 2;
-
- if (unlikely (off + chunk_size > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
- if (unlikely (uncompressed_offset + chunk_size > uncompressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- memcpy (uncompressed + uncompressed_offset, compressed + off,
- chunk_size);
- uncompressed_offset += chunk_size;
- off += chunk_size;
- }
- else
- {
- size_t uncompressed_chunk_start;
- size_t uncompressed_chunk_size;
- size_t compressed_chunk_size;
- size_t limit;
-
- /* An LZMA chunk. This starts with an uncompressed size and
- a compressed size. */
-
- if (unlikely (off + 4 >= compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- uncompressed_chunk_start = uncompressed_offset;
-
- uncompressed_chunk_size = (control & 0x1f) << 16;
- uncompressed_chunk_size += compressed[off] << 8;
- uncompressed_chunk_size += compressed[off + 1];
- ++uncompressed_chunk_size;
-
- compressed_chunk_size = compressed[off + 2] << 8;
- compressed_chunk_size += compressed[off + 3];
- ++compressed_chunk_size;
-
- off += 4;
-
- /* Bit 7 (0x80) is set.
- Bits 6 and 5 (0x40 and 0x20) are as follows:
- 0: don't reset anything
- 1: reset state
- 2: reset state, read properties
- 3: reset state, read properties, reset dictionary (done above) */
-
- if (control >= 0xc0)
- {
- unsigned char props;
-
- /* Bit 6 is set, read properties. */
-
- if (unlikely (off >= compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
- props = compressed[off];
- ++off;
- if (unlikely (props > (4 * 5 + 4) * 9 + 8))
- {
- elf_uncompress_failed ();
- return 0;
- }
- pb = 0;
- while (props >= 9 * 5)
- {
- props -= 9 * 5;
- ++pb;
- }
- lp = 0;
- while (props > 9)
- {
- props -= 9;
- ++lp;
- }
- lc = props;
- if (unlikely (lc + lp > 4))
- {
- elf_uncompress_failed ();
- return 0;
- }
- }
-
- if (control >= 0xa0)
- {
- size_t i;
-
- /* Bit 5 or 6 is set, reset LZMA state. */
-
- lstate = 0;
- memset (&dist, 0, sizeof dist);
- for (i = 0; i < LZMA_PROB_TOTAL_COUNT; i++)
- probs[i] = 1 << 10;
- range = 0xffffffff;
- code = 0;
- }
-
- /* Read the range code. */
-
- if (unlikely (off + 5 > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* The byte at compressed[off] is ignored for some
- reason. */
-
- code = ((compressed[off + 1] << 24)
- + (compressed[off + 2] << 16)
- + (compressed[off + 3] << 8)
- + compressed[off + 4]);
- off += 5;
-
- /* This is the main LZMA decode loop. */
-
- limit = off + compressed_chunk_size;
- *poffset = off;
- while (*poffset < limit)
- {
- unsigned int pos_state;
-
- if (unlikely (uncompressed_offset
- == (uncompressed_chunk_start
- + uncompressed_chunk_size)))
- {
- /* We've decompressed all the expected bytes. */
- break;
- }
-
- pos_state = ((uncompressed_offset - dict_start_offset)
- & ((1 << pb) - 1));
-
- if (elf_lzma_bit (compressed, compressed_size,
- probs + LZMA_IS_MATCH (lstate, pos_state),
- poffset, &range, &code))
- {
- uint32_t len;
-
- if (elf_lzma_bit (compressed, compressed_size,
- probs + LZMA_IS_REP (lstate),
- poffset, &range, &code))
- {
- int short_rep;
- uint32_t next_dist;
-
- /* Repeated match. */
-
- short_rep = 0;
- if (elf_lzma_bit (compressed, compressed_size,
- probs + LZMA_IS_REP0 (lstate),
- poffset, &range, &code))
- {
- if (elf_lzma_bit (compressed, compressed_size,
- probs + LZMA_IS_REP1 (lstate),
- poffset, &range, &code))
- {
- if (elf_lzma_bit (compressed, compressed_size,
- probs + LZMA_IS_REP2 (lstate),
- poffset, &range, &code))
- {
- next_dist = dist[3];
- dist[3] = dist[2];
- }
- else
- {
- next_dist = dist[2];
- }
- dist[2] = dist[1];
- }
- else
- {
- next_dist = dist[1];
- }
-
- dist[1] = dist[0];
- dist[0] = next_dist;
- }
- else
- {
- if (!elf_lzma_bit (compressed, compressed_size,
- (probs
- + LZMA_IS_REP0_LONG (lstate,
- pos_state)),
- poffset, &range, &code))
- short_rep = 1;
- }
-
- if (lstate < 7)
- lstate = short_rep ? 9 : 8;
- else
- lstate = 11;
-
- if (short_rep)
- len = 1;
- else
- len = elf_lzma_len (compressed, compressed_size,
- probs, 1, pos_state, poffset,
- &range, &code);
- }
- else
- {
- uint32_t dist_state;
- uint32_t dist_slot;
- uint16_t *probs_dist;
-
- /* Match. */
-
- if (lstate < 7)
- lstate = 7;
- else
- lstate = 10;
- dist[3] = dist[2];
- dist[2] = dist[1];
- dist[1] = dist[0];
- len = elf_lzma_len (compressed, compressed_size,
- probs, 0, pos_state, poffset,
- &range, &code);
-
- if (len < 4 + 2)
- dist_state = len - 2;
- else
- dist_state = 3;
- probs_dist = probs + LZMA_DIST_SLOT (dist_state, 0);
- dist_slot = elf_lzma_integer (compressed,
- compressed_size,
- probs_dist, 6,
- poffset, &range,
- &code);
- if (dist_slot < LZMA_DIST_MODEL_START)
- dist[0] = dist_slot;
- else
- {
- uint32_t limit;
-
- limit = (dist_slot >> 1) - 1;
- dist[0] = 2 + (dist_slot & 1);
- if (dist_slot < LZMA_DIST_MODEL_END)
- {
- dist[0] <<= limit;
- probs_dist = (probs
- + LZMA_DIST_SPECIAL(dist[0]
- - dist_slot
- - 1));
- dist[0] +=
- elf_lzma_reverse_integer (compressed,
- compressed_size,
- probs_dist,
- limit, poffset,
- &range, &code);
- }
- else
- {
- uint32_t dist0;
- uint32_t i;
-
- dist0 = dist[0];
- for (i = 0; i < limit - 4; i++)
- {
- uint32_t mask;
-
- elf_lzma_range_normalize (compressed,
- compressed_size,
- poffset,
- &range, &code);
- range >>= 1;
- code -= range;
- mask = -(code >> 31);
- code += range & mask;
- dist0 <<= 1;
- dist0 += mask + 1;
- }
- dist0 <<= 4;
- probs_dist = probs + LZMA_DIST_ALIGN (0);
- dist0 +=
- elf_lzma_reverse_integer (compressed,
- compressed_size,
- probs_dist, 4,
- poffset,
- &range, &code);
- dist[0] = dist0;
- }
- }
- }
-
- if (unlikely (uncompressed_offset
- - dict_start_offset < dist[0] + 1))
- {
- elf_uncompress_failed ();
- return 0;
- }
- if (unlikely (uncompressed_offset + len > uncompressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- if (dist[0] == 0)
- {
- /* A common case, meaning repeat the last
- character LEN times. */
- memset (uncompressed + uncompressed_offset,
- uncompressed[uncompressed_offset - 1],
- len);
- uncompressed_offset += len;
- }
- else if (dist[0] + 1 >= len)
- {
- memcpy (uncompressed + uncompressed_offset,
- uncompressed + uncompressed_offset - dist[0] - 1,
- len);
- uncompressed_offset += len;
- }
- else
- {
- while (len > 0)
- {
- uint32_t copy;
-
- copy = len < dist[0] + 1 ? len : dist[0] + 1;
- memcpy (uncompressed + uncompressed_offset,
- (uncompressed + uncompressed_offset
- - dist[0] - 1),
- copy);
- len -= copy;
- uncompressed_offset += copy;
- }
- }
- }
- else
- {
- unsigned char prev;
- unsigned char low;
- size_t high;
- uint16_t *lit_probs;
- unsigned int sym;
-
- /* Literal value. */
-
- if (uncompressed_offset > 0)
- prev = uncompressed[uncompressed_offset - 1];
- else
- prev = 0;
- low = prev >> (8 - lc);
- high = (((uncompressed_offset - dict_start_offset)
- & ((1 << lp) - 1))
- << lc);
- lit_probs = probs + LZMA_LITERAL (low + high, 0);
- if (lstate < 7)
- sym = elf_lzma_integer (compressed, compressed_size,
- lit_probs, 8, poffset, &range,
- &code);
- else
- {
- unsigned int match;
- unsigned int bit;
- unsigned int match_bit;
- unsigned int idx;
-
- sym = 1;
- if (uncompressed_offset >= dist[0] + 1)
- match = uncompressed[uncompressed_offset - dist[0] - 1];
- else
- match = 0;
- match <<= 1;
- bit = 0x100;
- do
- {
- match_bit = match & bit;
- match <<= 1;
- idx = bit + match_bit + sym;
- sym <<= 1;
- if (elf_lzma_bit (compressed, compressed_size,
- lit_probs + idx, poffset,
- &range, &code))
- {
- ++sym;
- bit &= match_bit;
- }
- else
- {
- bit &= ~ match_bit;
- }
- }
- while (sym < 0x100);
- }
-
- if (unlikely (uncompressed_offset >= uncompressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- uncompressed[uncompressed_offset] = (unsigned char) sym;
- ++uncompressed_offset;
- if (lstate <= 3)
- lstate = 0;
- else if (lstate <= 9)
- lstate -= 3;
- else
- lstate -= 6;
- }
- }
-
- elf_lzma_range_normalize (compressed, compressed_size, poffset,
- &range, &code);
-
- off = *poffset;
- }
- }
-
- /* We have reached the end of the block. Pad to four byte
- boundary. */
- off = (off + 3) &~ (size_t) 3;
- if (unlikely (off > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- switch (check)
- {
- case 0:
- /* No check. */
- break;
-
- case 1:
- /* CRC32 */
- if (unlikely (off + 4 > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
- computed_crc = elf_crc32 (0, uncompressed, uncompressed_offset);
- stream_crc = (compressed[off]
- | (compressed[off + 1] << 8)
- | (compressed[off + 2] << 16)
- | (compressed[off + 3] << 24));
- if (computed_crc != stream_crc)
- {
- elf_uncompress_failed ();
- return 0;
- }
- off += 4;
- break;
-
- case 4:
- /* CRC64. We don't bother computing a CRC64 checksum. */
- if (unlikely (off + 8 > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
- off += 8;
- break;
-
- case 10:
- /* SHA. We don't bother computing a SHA checksum. */
- if (unlikely (off + 32 > compressed_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
- off += 32;
- break;
-
- default:
- elf_uncompress_failed ();
- return 0;
- }
-
- *poffset = off;
-
- return 1;
-}
-
-/* Uncompress LZMA data found in a minidebug file. The minidebug
- format is described at
- https://sourceware.org/gdb/current/onlinedocs/gdb/MiniDebugInfo.html.
- Returns 0 on error, 1 on successful decompression. For this
- function we return 0 on failure to decompress, as the calling code
- will carry on in that case. */
-
-static int
-elf_uncompress_lzma (struct backtrace_state *state,
- const unsigned char *compressed, size_t compressed_size,
- backtrace_error_callback error_callback, void *data,
- unsigned char **uncompressed, size_t *uncompressed_size)
-{
- size_t header_size;
- size_t footer_size;
- unsigned char check;
- uint32_t computed_crc;
- uint32_t stream_crc;
- size_t offset;
- size_t index_size;
- size_t footer_offset;
- size_t index_offset;
- uint64_t index_compressed_size;
- uint64_t index_uncompressed_size;
- unsigned char *mem;
- uint16_t *probs;
- size_t compressed_block_size;
-
- /* The format starts with a stream header and ends with a stream
- footer. */
- header_size = 12;
- footer_size = 12;
- if (unlikely (compressed_size < header_size + footer_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* The stream header starts with a magic string. */
- if (unlikely (memcmp (compressed, "\375" "7zXZ\0", 6) != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Next come stream flags. The first byte is zero, the second byte
- is the check. */
- if (unlikely (compressed[6] != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
- check = compressed[7];
- if (unlikely ((check & 0xf8) != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Next comes a CRC of the stream flags. */
- computed_crc = elf_crc32 (0, compressed + 6, 2);
- stream_crc = (compressed[8]
- | (compressed[9] << 8)
- | (compressed[10] << 16)
- | (compressed[11] << 24));
- if (unlikely (computed_crc != stream_crc))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Now that we've parsed the header, parse the footer, so that we
- can get the uncompressed size. */
-
- /* The footer ends with two magic bytes. */
-
- offset = compressed_size;
- if (unlikely (memcmp (compressed + offset - 2, "YZ", 2) != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
- offset -= 2;
-
- /* Before that are the stream flags, which should be the same as the
- flags in the header. */
- if (unlikely (compressed[offset - 2] != 0
- || compressed[offset - 1] != check))
- {
- elf_uncompress_failed ();
- return 0;
- }
- offset -= 2;
-
- /* Before that is the size of the index field, which precedes the
- footer. */
- index_size = (compressed[offset - 4]
- | (compressed[offset - 3] << 8)
- | (compressed[offset - 2] << 16)
- | (compressed[offset - 1] << 24));
- index_size = (index_size + 1) * 4;
- offset -= 4;
-
- /* Before that is a footer CRC. */
- computed_crc = elf_crc32 (0, compressed + offset, 6);
- stream_crc = (compressed[offset - 4]
- | (compressed[offset - 3] << 8)
- | (compressed[offset - 2] << 16)
- | (compressed[offset - 1] << 24));
- if (unlikely (computed_crc != stream_crc))
- {
- elf_uncompress_failed ();
- return 0;
- }
- offset -= 4;
-
- /* The index comes just before the footer. */
- if (unlikely (offset < index_size + header_size))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- footer_offset = offset;
- offset -= index_size;
- index_offset = offset;
-
- /* The index starts with a zero byte. */
- if (unlikely (compressed[offset] != 0))
- {
- elf_uncompress_failed ();
- return 0;
- }
- ++offset;
-
- /* Next is the number of blocks. We expect zero blocks for an empty
- stream, and otherwise a single block. */
- if (unlikely (compressed[offset] == 0))
- {
- *uncompressed = NULL;
- *uncompressed_size = 0;
- return 1;
- }
- if (unlikely (compressed[offset] != 1))
- {
- elf_uncompress_failed ();
- return 0;
- }
- ++offset;
-
- /* Next is the compressed size and the uncompressed size. */
- if (!elf_lzma_varint (compressed, compressed_size, &offset,
- &index_compressed_size))
- return 0;
- if (!elf_lzma_varint (compressed, compressed_size, &offset,
- &index_uncompressed_size))
- return 0;
-
- /* Pad to a four byte boundary. */
- offset = (offset + 3) &~ (size_t) 3;
-
- /* Next is a CRC of the index. */
- computed_crc = elf_crc32 (0, compressed + index_offset,
- offset - index_offset);
- stream_crc = (compressed[offset]
- | (compressed[offset + 1] << 8)
- | (compressed[offset + 2] << 16)
- | (compressed[offset + 3] << 24));
- if (unlikely (computed_crc != stream_crc))
- {
- elf_uncompress_failed ();
- return 0;
- }
- offset += 4;
-
- /* We should now be back at the footer. */
- if (unlikely (offset != footer_offset))
- {
- elf_uncompress_failed ();
- return 0;
- }
-
- /* Allocate space to hold the uncompressed data. If we succeed in
- uncompressing the LZMA data, we never free this memory. */
- mem = (unsigned char *) backtrace_alloc (state, index_uncompressed_size,
- error_callback, data);
- if (unlikely (mem == NULL))
- return 0;
- *uncompressed = mem;
- *uncompressed_size = index_uncompressed_size;
-
- /* Allocate space for probabilities. */
- probs = ((uint16_t *)
- backtrace_alloc (state,
- LZMA_PROB_TOTAL_COUNT * sizeof (uint16_t),
- error_callback, data));
- if (unlikely (probs == NULL))
- {
- backtrace_free (state, mem, index_uncompressed_size, error_callback,
- data);
- return 0;
- }
-
- /* Uncompress the block, which follows the header. */
- offset = 12;
- if (!elf_uncompress_lzma_block (compressed, compressed_size, check, probs,
- mem, index_uncompressed_size, &offset))
- {
- backtrace_free (state, mem, index_uncompressed_size, error_callback,
- data);
- return 0;
- }
-
- compressed_block_size = offset - 12;
- if (unlikely (compressed_block_size
- != ((index_compressed_size + 3) &~ (size_t) 3)))
- {
- elf_uncompress_failed ();
- backtrace_free (state, mem, index_uncompressed_size, error_callback,
- data);
- return 0;
- }
-
- offset = (offset + 3) &~ (size_t) 3;
- if (unlikely (offset != index_offset))
- {
- elf_uncompress_failed ();
- backtrace_free (state, mem, index_uncompressed_size, error_callback,
- data);
- return 0;
- }
-
- return 1;
-}
-
-/* This function is a hook for testing the LZMA support. It is only
- used by tests. */
-
-int
-backtrace_uncompress_lzma (struct backtrace_state *state,
- const unsigned char *compressed,
- size_t compressed_size,
- backtrace_error_callback error_callback,
- void *data, unsigned char **uncompressed,
- size_t *uncompressed_size)
-{
- return elf_uncompress_lzma (state, compressed, compressed_size,
- error_callback, data, uncompressed,
- uncompressed_size);
-}
-
-/* Add the backtrace data for one ELF file. Returns 1 on success,
- 0 on failure (in both cases descriptor is closed) or -1 if exe
- is non-zero and the ELF file is ET_DYN, which tells the caller that
- elf_add will need to be called on the descriptor again after
- base_address is determined. */
-
-static int
-elf_add (struct backtrace_state *state, const char *filename, int descriptor,
- const unsigned char *memory, size_t memory_size,
- uintptr_t base_address, backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn, int *found_sym, int *found_dwarf,
- struct dwarf_data **fileline_entry, int exe, int debuginfo,
- const char *with_buildid_data, uint32_t with_buildid_size)
-{
- struct elf_view ehdr_view;
- b_elf_ehdr ehdr;
- off_t shoff;
- unsigned int shnum;
- unsigned int shstrndx;
- struct elf_view shdrs_view;
- int shdrs_view_valid;
- const b_elf_shdr *shdrs;
- const b_elf_shdr *shstrhdr;
- size_t shstr_size;
- off_t shstr_off;
- struct elf_view names_view;
- int names_view_valid;
- const char *names;
- unsigned int symtab_shndx;
- unsigned int dynsym_shndx;
- unsigned int i;
- struct debug_section_info sections[DEBUG_MAX];
- struct debug_section_info zsections[DEBUG_MAX];
- struct elf_view symtab_view;
- int symtab_view_valid;
- struct elf_view strtab_view;
- int strtab_view_valid;
- struct elf_view buildid_view;
- int buildid_view_valid;
- const char *buildid_data;
- uint32_t buildid_size;
- struct elf_view debuglink_view;
- int debuglink_view_valid;
- const char *debuglink_name;
- uint32_t debuglink_crc;
- struct elf_view debugaltlink_view;
- int debugaltlink_view_valid;
- const char *debugaltlink_name;
- const char *debugaltlink_buildid_data;
- uint32_t debugaltlink_buildid_size;
- struct elf_view gnu_debugdata_view;
- int gnu_debugdata_view_valid;
- size_t gnu_debugdata_size;
- unsigned char *gnu_debugdata_uncompressed;
- size_t gnu_debugdata_uncompressed_size;
- off_t min_offset;
- off_t max_offset;
- off_t debug_size;
- struct elf_view debug_view;
- int debug_view_valid;
- unsigned int using_debug_view;
- uint16_t *zdebug_table;
- struct elf_view split_debug_view[DEBUG_MAX];
- unsigned char split_debug_view_valid[DEBUG_MAX];
- struct elf_ppc64_opd_data opd_data, *opd;
- struct dwarf_sections dwarf_sections;
-
- if (!debuginfo)
- {
- *found_sym = 0;
- *found_dwarf = 0;
- }
-
- shdrs_view_valid = 0;
- names_view_valid = 0;
- symtab_view_valid = 0;
- strtab_view_valid = 0;
- buildid_view_valid = 0;
- buildid_data = NULL;
- buildid_size = 0;
- debuglink_view_valid = 0;
- debuglink_name = NULL;
- debuglink_crc = 0;
- debugaltlink_view_valid = 0;
- debugaltlink_name = NULL;
- debugaltlink_buildid_data = NULL;
- debugaltlink_buildid_size = 0;
- gnu_debugdata_view_valid = 0;
- gnu_debugdata_size = 0;
- debug_view_valid = 0;
- memset (&split_debug_view_valid[0], 0, sizeof split_debug_view_valid);
- opd = NULL;
-
- if (!elf_get_view (state, descriptor, memory, memory_size, 0, sizeof ehdr,
- error_callback, data, &ehdr_view))
- goto fail;
-
- memcpy (&ehdr, ehdr_view.view.data, sizeof ehdr);
-
- elf_release_view (state, &ehdr_view, error_callback, data);
-
- if (ehdr.e_ident[EI_MAG0] != ELFMAG0
- || ehdr.e_ident[EI_MAG1] != ELFMAG1
- || ehdr.e_ident[EI_MAG2] != ELFMAG2
- || ehdr.e_ident[EI_MAG3] != ELFMAG3)
- {
- error_callback (data, "executable file is not ELF", 0);
- goto fail;
- }
- if (ehdr.e_ident[EI_VERSION] != EV_CURRENT)
- {
- error_callback (data, "executable file is unrecognized ELF version", 0);
- goto fail;
- }
-
-#if BACKTRACE_ELF_SIZE == 32
-#define BACKTRACE_ELFCLASS ELFCLASS32
-#else
-#define BACKTRACE_ELFCLASS ELFCLASS64
-#endif
-
- if (ehdr.e_ident[EI_CLASS] != BACKTRACE_ELFCLASS)
- {
- error_callback (data, "executable file is unexpected ELF class", 0);
- goto fail;
- }
-
- if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB
- && ehdr.e_ident[EI_DATA] != ELFDATA2MSB)
- {
- error_callback (data, "executable file has unknown endianness", 0);
- goto fail;
- }
-
- /* If the executable is ET_DYN, it is either a PIE, or we are running
- directly a shared library with .interp. We need to wait for
- dl_iterate_phdr in that case to determine the actual base_address. */
- if (exe && ehdr.e_type == ET_DYN)
- return -1;
-
- shoff = ehdr.e_shoff;
- shnum = ehdr.e_shnum;
- shstrndx = ehdr.e_shstrndx;
-
- if ((shnum == 0 || shstrndx == SHN_XINDEX)
- && shoff != 0)
- {
- struct elf_view shdr_view;
- const b_elf_shdr *shdr;
-
- if (!elf_get_view (state, descriptor, memory, memory_size, shoff,
- sizeof shdr, error_callback, data, &shdr_view))
- goto fail;
-
- shdr = (const b_elf_shdr *) shdr_view.view.data;
-
- if (shnum == 0)
- shnum = shdr->sh_size;
-
- if (shstrndx == SHN_XINDEX)
- {
- shstrndx = shdr->sh_link;
-
- /* Versions of the GNU binutils between 2.12 and 2.18 did
- not handle objects with more than SHN_LORESERVE sections
- correctly. All large section indexes were offset by
- 0x100. There is more information at
- http://sourceware.org/bugzilla/show_bug.cgi?id-5900 .
- Fortunately these object files are easy to detect, as the
- GNU binutils always put the section header string table
- near the end of the list of sections. Thus if the
- section header string table index is larger than the
- number of sections, then we know we have to subtract
- 0x100 to get the real section index. */
- if (shstrndx >= shnum && shstrndx >= SHN_LORESERVE + 0x100)
- shstrndx -= 0x100;
- }
-
- elf_release_view (state, &shdr_view, error_callback, data);
- }
-
- if (shnum == 0 || shstrndx == 0)
- goto fail;
-
- /* To translate PC to file/line when using DWARF, we need to find
- the .debug_info and .debug_line sections. */
-
- /* Read the section headers, skipping the first one. */
-
- if (!elf_get_view (state, descriptor, memory, memory_size,
- shoff + sizeof (b_elf_shdr),
- (shnum - 1) * sizeof (b_elf_shdr),
- error_callback, data, &shdrs_view))
- goto fail;
- shdrs_view_valid = 1;
- shdrs = (const b_elf_shdr *) shdrs_view.view.data;
-
- /* Read the section names. */
-
- shstrhdr = &shdrs[shstrndx - 1];
- shstr_size = shstrhdr->sh_size;
- shstr_off = shstrhdr->sh_offset;
-
- if (!elf_get_view (state, descriptor, memory, memory_size, shstr_off,
- shstrhdr->sh_size, error_callback, data, &names_view))
- goto fail;
- names_view_valid = 1;
- names = (const char *) names_view.view.data;
-
- symtab_shndx = 0;
- dynsym_shndx = 0;
-
- memset (sections, 0, sizeof sections);
- memset (zsections, 0, sizeof zsections);
-
- /* Look for the symbol table. */
- for (i = 1; i < shnum; ++i)
- {
- const b_elf_shdr *shdr;
- unsigned int sh_name;
- const char *name;
- int j;
-
- shdr = &shdrs[i - 1];
-
- if (shdr->sh_type == SHT_SYMTAB)
- symtab_shndx = i;
- else if (shdr->sh_type == SHT_DYNSYM)
- dynsym_shndx = i;
-
- sh_name = shdr->sh_name;
- if (sh_name >= shstr_size)
- {
- error_callback (data, "ELF section name out of range", 0);
- goto fail;
- }
-
- name = names + sh_name;
-
- for (j = 0; j < (int) DEBUG_MAX; ++j)
- {
- if (strcmp (name, dwarf_section_names[j]) == 0)
- {
- sections[j].offset = shdr->sh_offset;
- sections[j].size = shdr->sh_size;
- sections[j].compressed = (shdr->sh_flags & SHF_COMPRESSED) != 0;
- break;
- }
- }
-
- if (name[0] == '.' && name[1] == 'z')
- {
- for (j = 0; j < (int) DEBUG_MAX; ++j)
- {
- if (strcmp (name + 2, dwarf_section_names[j] + 1) == 0)
- {
- zsections[j].offset = shdr->sh_offset;
- zsections[j].size = shdr->sh_size;
- break;
- }
- }
- }
-
- /* Read the build ID if present. This could check for any
- SHT_NOTE section with the right note name and type, but gdb
- looks for a specific section name. */
- if ((!debuginfo || with_buildid_data != NULL)
- && !buildid_view_valid
- && strcmp (name, ".note.gnu.build-id") == 0)
- {
- const b_elf_note *note;
-
- if (!elf_get_view (state, descriptor, memory, memory_size,
- shdr->sh_offset, shdr->sh_size, error_callback,
- data, &buildid_view))
- goto fail;
-
- buildid_view_valid = 1;
- note = (const b_elf_note *) buildid_view.view.data;
- if (note->type == NT_GNU_BUILD_ID
- && note->namesz == 4
- && strncmp (note->name, "GNU", 4) == 0
- && shdr->sh_size <= 12 + ((note->namesz + 3) & ~ 3) + note->descsz)
- {
- buildid_data = &note->name[0] + ((note->namesz + 3) & ~ 3);
- buildid_size = note->descsz;
- }
-
- if (with_buildid_size != 0)
- {
- if (buildid_size != with_buildid_size)
- goto fail;
-
- if (memcmp (buildid_data, with_buildid_data, buildid_size) != 0)
- goto fail;
- }
- }
-
- /* Read the debuglink file if present. */
- if (!debuginfo
- && !debuglink_view_valid
- && strcmp (name, ".gnu_debuglink") == 0)
- {
- const char *debuglink_data;
- size_t crc_offset;
-
- if (!elf_get_view (state, descriptor, memory, memory_size,
- shdr->sh_offset, shdr->sh_size, error_callback,
- data, &debuglink_view))
- goto fail;
-
- debuglink_view_valid = 1;
- debuglink_data = (const char *) debuglink_view.view.data;
- crc_offset = strnlen (debuglink_data, shdr->sh_size);
- crc_offset = (crc_offset + 3) & ~3;
- if (crc_offset + 4 <= shdr->sh_size)
- {
- debuglink_name = debuglink_data;
- debuglink_crc = *(const uint32_t*)(debuglink_data + crc_offset);
- }
- }
-
- if (!debugaltlink_view_valid
- && strcmp (name, ".gnu_debugaltlink") == 0)
- {
- const char *debugaltlink_data;
- size_t debugaltlink_name_len;
-
- if (!elf_get_view (state, descriptor, memory, memory_size,
- shdr->sh_offset, shdr->sh_size, error_callback,
- data, &debugaltlink_view))
- goto fail;
-
- debugaltlink_view_valid = 1;
- debugaltlink_data = (const char *) debugaltlink_view.view.data;
- debugaltlink_name = debugaltlink_data;
- debugaltlink_name_len = strnlen (debugaltlink_data, shdr->sh_size);
- if (debugaltlink_name_len < shdr->sh_size)
- {
- /* Include terminating zero. */
- debugaltlink_name_len += 1;
-
- debugaltlink_buildid_data
- = debugaltlink_data + debugaltlink_name_len;
- debugaltlink_buildid_size = shdr->sh_size - debugaltlink_name_len;
- }
- }
-
- if (!gnu_debugdata_view_valid
- && strcmp (name, ".gnu_debugdata") == 0)
- {
- if (!elf_get_view (state, descriptor, memory, memory_size,
- shdr->sh_offset, shdr->sh_size, error_callback,
- data, &gnu_debugdata_view))
- goto fail;
-
- gnu_debugdata_size = shdr->sh_size;
- gnu_debugdata_view_valid = 1;
- }
-
- /* Read the .opd section on PowerPC64 ELFv1. */
- if (ehdr.e_machine == EM_PPC64
- && (ehdr.e_flags & EF_PPC64_ABI) < 2
- && shdr->sh_type == SHT_PROGBITS
- && strcmp (name, ".opd") == 0)
- {
- if (!elf_get_view (state, descriptor, memory, memory_size,
- shdr->sh_offset, shdr->sh_size, error_callback,
- data, &opd_data.view))
- goto fail;
-
- opd = &opd_data;
- opd->addr = shdr->sh_addr;
- opd->data = (const char *) opd_data.view.view.data;
- opd->size = shdr->sh_size;
- }
- }
-
- if (symtab_shndx == 0)
- symtab_shndx = dynsym_shndx;
- if (symtab_shndx != 0 && !debuginfo)
- {
- const b_elf_shdr *symtab_shdr;
- unsigned int strtab_shndx;
- const b_elf_shdr *strtab_shdr;
- struct elf_syminfo_data *sdata;
-
- symtab_shdr = &shdrs[symtab_shndx - 1];
- strtab_shndx = symtab_shdr->sh_link;
- if (strtab_shndx >= shnum)
- {
- error_callback (data,
- "ELF symbol table strtab link out of range", 0);
- goto fail;
- }
- strtab_shdr = &shdrs[strtab_shndx - 1];
-
- if (!elf_get_view (state, descriptor, memory, memory_size,
- symtab_shdr->sh_offset, symtab_shdr->sh_size,
- error_callback, data, &symtab_view))
- goto fail;
- symtab_view_valid = 1;
-
- if (!elf_get_view (state, descriptor, memory, memory_size,
- strtab_shdr->sh_offset, strtab_shdr->sh_size,
- error_callback, data, &strtab_view))
- goto fail;
- strtab_view_valid = 1;
-
- sdata = ((struct elf_syminfo_data *)
- backtrace_alloc (state, sizeof *sdata, error_callback, data));
- if (sdata == NULL)
- goto fail;
-
- if (!elf_initialize_syminfo (state, base_address,
- symtab_view.view.data, symtab_shdr->sh_size,
- strtab_view.view.data, strtab_shdr->sh_size,
- error_callback, data, sdata, opd))
- {
- backtrace_free (state, sdata, sizeof *sdata, error_callback, data);
- goto fail;
- }
-
- /* We no longer need the symbol table, but we hold on to the
- string table permanently. */
- elf_release_view (state, &symtab_view, error_callback, data);
- symtab_view_valid = 0;
- strtab_view_valid = 0;
-
- *found_sym = 1;
-
- elf_add_syminfo_data (state, sdata);
- }
-
- elf_release_view (state, &shdrs_view, error_callback, data);
- shdrs_view_valid = 0;
- elf_release_view (state, &names_view, error_callback, data);
- names_view_valid = 0;
-
- /* If the debug info is in a separate file, read that one instead. */
-
- if (buildid_data != NULL)
- {
- int d;
-
- d = elf_open_debugfile_by_buildid (state, buildid_data, buildid_size,
- error_callback, data);
- if (d >= 0)
- {
- int ret;
-
- elf_release_view (state, &buildid_view, error_callback, data);
- if (debuglink_view_valid)
- elf_release_view (state, &debuglink_view, error_callback, data);
- if (debugaltlink_view_valid)
- elf_release_view (state, &debugaltlink_view, error_callback, data);
- ret = elf_add (state, "", d, NULL, 0, base_address, error_callback,
- data, fileline_fn, found_sym, found_dwarf, NULL, 0,
- 1, NULL, 0);
- if (ret < 0)
- backtrace_close (d, error_callback, data);
- else if (descriptor >= 0)
- backtrace_close (descriptor, error_callback, data);
- return ret;
- }
- }
-
- if (buildid_view_valid)
- {
- elf_release_view (state, &buildid_view, error_callback, data);
- buildid_view_valid = 0;
- }
-
- if (opd)
- {
- elf_release_view (state, &opd->view, error_callback, data);
- opd = NULL;
- }
-
- if (debuglink_name != NULL)
- {
- int d;
-
- d = elf_open_debugfile_by_debuglink (state, filename, debuglink_name,
- debuglink_crc, error_callback,
- data);
- if (d >= 0)
- {
- int ret;
-
- elf_release_view (state, &debuglink_view, error_callback, data);
- if (debugaltlink_view_valid)
- elf_release_view (state, &debugaltlink_view, error_callback, data);
- ret = elf_add (state, "", d, NULL, 0, base_address, error_callback,
- data, fileline_fn, found_sym, found_dwarf, NULL, 0,
- 1, NULL, 0);
- if (ret < 0)
- backtrace_close (d, error_callback, data);
- else if (descriptor >= 0)
- backtrace_close(descriptor, error_callback, data);
- return ret;
- }
- }
-
- if (debuglink_view_valid)
- {
- elf_release_view (state, &debuglink_view, error_callback, data);
- debuglink_view_valid = 0;
- }
-
- struct dwarf_data *fileline_altlink = NULL;
- if (debugaltlink_name != NULL)
- {
- int d;
-
- d = elf_open_debugfile_by_debuglink (state, filename, debugaltlink_name,
- 0, error_callback, data);
- if (d >= 0)
- {
- int ret;
-
- ret = elf_add (state, filename, d, NULL, 0, base_address,
- error_callback, data, fileline_fn, found_sym,
- found_dwarf, &fileline_altlink, 0, 1,
- debugaltlink_buildid_data, debugaltlink_buildid_size);
- elf_release_view (state, &debugaltlink_view, error_callback, data);
- debugaltlink_view_valid = 0;
- if (ret < 0)
- {
- backtrace_close (d, error_callback, data);
- return ret;
- }
- }
- }
-
- if (debugaltlink_view_valid)
- {
- elf_release_view (state, &debugaltlink_view, error_callback, data);
- debugaltlink_view_valid = 0;
- }
-
- if (gnu_debugdata_view_valid)
- {
- int ret;
-
- ret = elf_uncompress_lzma (state,
- ((const unsigned char *)
- gnu_debugdata_view.view.data),
- gnu_debugdata_size, error_callback, data,
- &gnu_debugdata_uncompressed,
- &gnu_debugdata_uncompressed_size);
-
- elf_release_view (state, &gnu_debugdata_view, error_callback, data);
- gnu_debugdata_view_valid = 0;
-
- if (ret)
- {
- ret = elf_add (state, filename, -1, gnu_debugdata_uncompressed,
- gnu_debugdata_uncompressed_size, base_address,
- error_callback, data, fileline_fn, found_sym,
- found_dwarf, NULL, 0, 0, NULL, 0);
- if (ret >= 0 && descriptor >= 0)
- backtrace_close(descriptor, error_callback, data);
- return ret;
- }
- }
-
- /* Read all the debug sections in a single view, since they are
- probably adjacent in the file. If any of sections are
- uncompressed, we never release this view. */
-
- min_offset = 0;
- max_offset = 0;
- debug_size = 0;
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- off_t end;
-
- if (sections[i].size != 0)
- {
- if (min_offset == 0 || sections[i].offset < min_offset)
- min_offset = sections[i].offset;
- end = sections[i].offset + sections[i].size;
- if (end > max_offset)
- max_offset = end;
- debug_size += sections[i].size;
- }
- if (zsections[i].size != 0)
- {
- if (min_offset == 0 || zsections[i].offset < min_offset)
- min_offset = zsections[i].offset;
- end = zsections[i].offset + zsections[i].size;
- if (end > max_offset)
- max_offset = end;
- debug_size += zsections[i].size;
- }
- }
- if (min_offset == 0 || max_offset == 0)
- {
- if (descriptor >= 0)
- {
- if (!backtrace_close (descriptor, error_callback, data))
- goto fail;
- }
- return 1;
- }
-
- /* If the total debug section size is large, assume that there are
- gaps between the sections, and read them individually. */
-
- if (max_offset - min_offset < 0x20000000
- || max_offset - min_offset < debug_size + 0x10000)
- {
- if (!elf_get_view (state, descriptor, memory, memory_size, min_offset,
- max_offset - min_offset, error_callback, data,
- &debug_view))
- goto fail;
- debug_view_valid = 1;
- }
- else
- {
- memset (&split_debug_view[0], 0, sizeof split_debug_view);
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- struct debug_section_info *dsec;
-
- if (sections[i].size != 0)
- dsec = &sections[i];
- else if (zsections[i].size != 0)
- dsec = &zsections[i];
- else
- continue;
-
- if (!elf_get_view (state, descriptor, memory, memory_size,
- dsec->offset, dsec->size, error_callback, data,
- &split_debug_view[i]))
- goto fail;
- split_debug_view_valid[i] = 1;
-
- if (sections[i].size != 0)
- sections[i].data = ((const unsigned char *)
- split_debug_view[i].view.data);
- else
- zsections[i].data = ((const unsigned char *)
- split_debug_view[i].view.data);
- }
- }
-
- /* We've read all we need from the executable. */
- if (descriptor >= 0)
- {
- if (!backtrace_close (descriptor, error_callback, data))
- goto fail;
- descriptor = -1;
- }
-
- using_debug_view = 0;
- if (debug_view_valid)
- {
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- if (sections[i].size == 0)
- sections[i].data = NULL;
- else
- {
- sections[i].data = ((const unsigned char *) debug_view.view.data
- + (sections[i].offset - min_offset));
- ++using_debug_view;
- }
-
- if (zsections[i].size == 0)
- zsections[i].data = NULL;
- else
- zsections[i].data = ((const unsigned char *) debug_view.view.data
- + (zsections[i].offset - min_offset));
- }
- }
-
- /* Uncompress the old format (--compress-debug-sections=zlib-gnu). */
-
- zdebug_table = NULL;
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- if (sections[i].size == 0 && zsections[i].size > 0)
- {
- unsigned char *uncompressed_data;
- size_t uncompressed_size;
-
- if (zdebug_table == NULL)
- {
- zdebug_table = ((uint16_t *)
- backtrace_alloc (state, ZDEBUG_TABLE_SIZE,
- error_callback, data));
- if (zdebug_table == NULL)
- goto fail;
- }
-
- uncompressed_data = NULL;
- uncompressed_size = 0;
- if (!elf_uncompress_zdebug (state, zsections[i].data,
- zsections[i].size, zdebug_table,
- error_callback, data,
- &uncompressed_data, &uncompressed_size))
- goto fail;
- sections[i].data = uncompressed_data;
- sections[i].size = uncompressed_size;
- sections[i].compressed = 0;
-
- if (split_debug_view_valid[i])
- {
- elf_release_view (state, &split_debug_view[i],
- error_callback, data);
- split_debug_view_valid[i] = 0;
- }
- }
- }
-
- /* Uncompress the official ELF format
- (--compress-debug-sections=zlib-gabi). */
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- unsigned char *uncompressed_data;
- size_t uncompressed_size;
-
- if (sections[i].size == 0 || !sections[i].compressed)
- continue;
-
- if (zdebug_table == NULL)
- {
- zdebug_table = ((uint16_t *)
- backtrace_alloc (state, ZDEBUG_TABLE_SIZE,
- error_callback, data));
- if (zdebug_table == NULL)
- goto fail;
- }
-
- uncompressed_data = NULL;
- uncompressed_size = 0;
- if (!elf_uncompress_chdr (state, sections[i].data, sections[i].size,
- zdebug_table, error_callback, data,
- &uncompressed_data, &uncompressed_size))
- goto fail;
- sections[i].data = uncompressed_data;
- sections[i].size = uncompressed_size;
- sections[i].compressed = 0;
-
- if (debug_view_valid)
- --using_debug_view;
- else if (split_debug_view_valid[i])
- {
- elf_release_view (state, &split_debug_view[i], error_callback, data);
- split_debug_view_valid[i] = 0;
- }
- }
-
- if (zdebug_table != NULL)
- backtrace_free (state, zdebug_table, ZDEBUG_TABLE_SIZE,
- error_callback, data);
-
- if (debug_view_valid && using_debug_view == 0)
- {
- elf_release_view (state, &debug_view, error_callback, data);
- debug_view_valid = 0;
- }
-
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- dwarf_sections.data[i] = sections[i].data;
- dwarf_sections.size[i] = sections[i].size;
- }
-
- if (!backtrace_dwarf_add (state, base_address, &dwarf_sections,
- ehdr.e_ident[EI_DATA] == ELFDATA2MSB,
- fileline_altlink,
- error_callback, data, fileline_fn,
- fileline_entry))
- goto fail;
-
- *found_dwarf = 1;
-
- return 1;
-
- fail:
- if (shdrs_view_valid)
- elf_release_view (state, &shdrs_view, error_callback, data);
- if (names_view_valid)
- elf_release_view (state, &names_view, error_callback, data);
- if (symtab_view_valid)
- elf_release_view (state, &symtab_view, error_callback, data);
- if (strtab_view_valid)
- elf_release_view (state, &strtab_view, error_callback, data);
- if (debuglink_view_valid)
- elf_release_view (state, &debuglink_view, error_callback, data);
- if (debugaltlink_view_valid)
- elf_release_view (state, &debugaltlink_view, error_callback, data);
- if (gnu_debugdata_view_valid)
- elf_release_view (state, &gnu_debugdata_view, error_callback, data);
- if (buildid_view_valid)
- elf_release_view (state, &buildid_view, error_callback, data);
- if (debug_view_valid)
- elf_release_view (state, &debug_view, error_callback, data);
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- if (split_debug_view_valid[i])
- elf_release_view (state, &split_debug_view[i], error_callback, data);
- }
- if (opd)
- elf_release_view (state, &opd->view, error_callback, data);
- if (descriptor >= 0)
- backtrace_close (descriptor, error_callback, data);
- return 0;
-}
-
-/* Data passed to phdr_callback. */
-
-struct phdr_data
-{
- struct backtrace_state *state;
- backtrace_error_callback error_callback;
- void *data;
- fileline *fileline_fn;
- int *found_sym;
- int *found_dwarf;
- const char *exe_filename;
- int exe_descriptor;
-};
-
-/* Callback passed to dl_iterate_phdr. Load debug info from shared
- libraries. */
-
-static int
-#ifdef __i386__
-__attribute__ ((__force_align_arg_pointer__))
-#endif
-phdr_callback (struct dl_phdr_info *info, size_t size ATTRIBUTE_UNUSED,
- void *pdata)
-{
- struct phdr_data *pd = (struct phdr_data *) pdata;
- const char *filename;
- int descriptor;
- int does_not_exist;
- fileline elf_fileline_fn;
- int found_dwarf;
-
- /* There is not much we can do if we don't have the module name,
- unless executable is ET_DYN, where we expect the very first
- phdr_callback to be for the PIE. */
- if (info->dlpi_name == NULL || info->dlpi_name[0] == '\0')
- {
- if (pd->exe_descriptor == -1)
- return 0;
- filename = pd->exe_filename;
- descriptor = pd->exe_descriptor;
- pd->exe_descriptor = -1;
- }
- else
- {
- if (pd->exe_descriptor != -1)
- {
- backtrace_close (pd->exe_descriptor, pd->error_callback, pd->data);
- pd->exe_descriptor = -1;
- }
-
- filename = info->dlpi_name;
- descriptor = backtrace_open (info->dlpi_name, pd->error_callback,
- pd->data, &does_not_exist);
- if (descriptor < 0)
- return 0;
- }
-
- if (elf_add (pd->state, filename, descriptor, NULL, 0, info->dlpi_addr,
- pd->error_callback, pd->data, &elf_fileline_fn, pd->found_sym,
- &found_dwarf, NULL, 0, 0, NULL, 0))
- {
- if (found_dwarf)
- {
- *pd->found_dwarf = 1;
- *pd->fileline_fn = elf_fileline_fn;
- }
- }
-
- return 0;
-}
-
-/* Initialize the backtrace data we need from an ELF executable. At
- the ELF level, all we need to do is find the debug info
- sections. */
-
-int
-backtrace_initialize (struct backtrace_state *state, const char *filename,
- int descriptor, backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn)
-{
- int ret;
- int found_sym;
- int found_dwarf;
- fileline elf_fileline_fn = elf_nodebug;
- struct phdr_data pd;
-
- ret = elf_add (state, filename, descriptor, NULL, 0, 0, error_callback, data,
- &elf_fileline_fn, &found_sym, &found_dwarf, NULL, 1, 0, NULL,
- 0);
- if (!ret)
- return 0;
-
- pd.state = state;
- pd.error_callback = error_callback;
- pd.data = data;
- pd.fileline_fn = &elf_fileline_fn;
- pd.found_sym = &found_sym;
- pd.found_dwarf = &found_dwarf;
- pd.exe_filename = filename;
- pd.exe_descriptor = ret < 0 ? descriptor : -1;
-
- dl_iterate_phdr (phdr_callback, (void *) &pd);
-
- if (!state->threaded)
- {
- if (found_sym)
- state->syminfo_fn = elf_syminfo;
- else if (state->syminfo_fn == NULL)
- state->syminfo_fn = elf_nosyms;
- }
- else
- {
- if (found_sym)
- backtrace_atomic_store_pointer (&state->syminfo_fn, elf_syminfo);
- else
- (void) __sync_bool_compare_and_swap (&state->syminfo_fn, NULL,
- elf_nosyms);
- }
-
- if (!state->threaded)
- *fileline_fn = state->fileline_fn;
- else
- *fileline_fn = backtrace_atomic_load_pointer (&state->fileline_fn);
-
- if (*fileline_fn == NULL || *fileline_fn == elf_nodebug)
- *fileline_fn = elf_fileline_fn;
-
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/fileline.c b/fluent-bit/lib/libbacktrace-8602fda/fileline.c
deleted file mode 100644
index 0472f4721..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/fileline.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/* fileline.c -- Get file and line number information in a backtrace.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#if defined (HAVE_KERN_PROC_ARGS) || defined (HAVE_KERN_PROC)
-#include <sys/sysctl.h>
-#endif
-
-#ifdef HAVE_MACH_O_DYLD_H
-#include <mach-o/dyld.h>
-#endif
-
-#include "backtrace.h"
-#include "internal.h"
-
-#ifndef HAVE_GETEXECNAME
-#define getexecname() NULL
-#endif
-
-#if !defined (HAVE_KERN_PROC_ARGS) && !defined (HAVE_KERN_PROC)
-
-#define sysctl_exec_name1(state, error_callback, data) NULL
-#define sysctl_exec_name2(state, error_callback, data) NULL
-
-#else /* defined (HAVE_KERN_PROC_ARGS) || |defined (HAVE_KERN_PROC) */
-
-static char *
-sysctl_exec_name (struct backtrace_state *state,
- int mib0, int mib1, int mib2, int mib3,
- backtrace_error_callback error_callback, void *data)
-{
- int mib[4];
- size_t len;
- char *name;
- size_t rlen;
-
- mib[0] = mib0;
- mib[1] = mib1;
- mib[2] = mib2;
- mib[3] = mib3;
-
- if (sysctl (mib, 4, NULL, &len, NULL, 0) < 0)
- return NULL;
- name = (char *) backtrace_alloc (state, len, error_callback, data);
- if (name == NULL)
- return NULL;
- rlen = len;
- if (sysctl (mib, 4, name, &rlen, NULL, 0) < 0)
- {
- backtrace_free (state, name, len, error_callback, data);
- return NULL;
- }
- return name;
-}
-
-#ifdef HAVE_KERN_PROC_ARGS
-
-static char *
-sysctl_exec_name1 (struct backtrace_state *state,
- backtrace_error_callback error_callback, void *data)
-{
- /* This variant is used on NetBSD. */
- return sysctl_exec_name (state, CTL_KERN, KERN_PROC_ARGS, -1,
- KERN_PROC_PATHNAME, error_callback, data);
-}
-
-#else
-
-#define sysctl_exec_name1(state, error_callback, data) NULL
-
-#endif
-
-#ifdef HAVE_KERN_PROC
-
-static char *
-sysctl_exec_name2 (struct backtrace_state *state,
- backtrace_error_callback error_callback, void *data)
-{
- /* This variant is used on FreeBSD. */
- return sysctl_exec_name (state, CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1,
- error_callback, data);
-}
-
-#else
-
-#define sysctl_exec_name2(state, error_callback, data) NULL
-
-#endif
-
-#endif /* defined (HAVE_KERN_PROC_ARGS) || |defined (HAVE_KERN_PROC) */
-
-#ifdef HAVE_MACH_O_DYLD_H
-
-static char *
-macho_get_executable_path (struct backtrace_state *state,
- backtrace_error_callback error_callback, void *data)
-{
- uint32_t len;
- char *name;
-
- len = 0;
- if (_NSGetExecutablePath (NULL, &len) == 0)
- return NULL;
- name = (char *) backtrace_alloc (state, len, error_callback, data);
- if (name == NULL)
- return NULL;
- if (_NSGetExecutablePath (name, &len) != 0)
- {
- backtrace_free (state, name, len, error_callback, data);
- return NULL;
- }
- return name;
-}
-
-#else /* !defined (HAVE_MACH_O_DYLD_H) */
-
-#define macho_get_executable_path(state, error_callback, data) NULL
-
-#endif /* !defined (HAVE_MACH_O_DYLD_H) */
-
-/* Initialize the fileline information from the executable. Returns 1
- on success, 0 on failure. */
-
-static int
-fileline_initialize (struct backtrace_state *state,
- backtrace_error_callback error_callback, void *data)
-{
- int failed;
- fileline fileline_fn;
- int pass;
- int called_error_callback;
- int descriptor;
- const char *filename;
- char buf[64];
-
- if (!state->threaded)
- failed = state->fileline_initialization_failed;
- else
- failed = backtrace_atomic_load_int (&state->fileline_initialization_failed);
-
- if (failed)
- {
- error_callback (data, "failed to read executable information", -1);
- return 0;
- }
-
- if (!state->threaded)
- fileline_fn = state->fileline_fn;
- else
- fileline_fn = backtrace_atomic_load_pointer (&state->fileline_fn);
- if (fileline_fn != NULL)
- return 1;
-
- /* We have not initialized the information. Do it now. */
-
- descriptor = -1;
- called_error_callback = 0;
- for (pass = 0; pass < 8; ++pass)
- {
- int does_not_exist;
-
- switch (pass)
- {
- case 0:
- filename = state->filename;
- break;
- case 1:
- filename = getexecname ();
- break;
- case 2:
- filename = "/proc/self/exe";
- break;
- case 3:
- filename = "/proc/curproc/file";
- break;
- case 4:
- snprintf (buf, sizeof (buf), "/proc/%ld/object/a.out",
- (long) getpid ());
- filename = buf;
- break;
- case 5:
- filename = sysctl_exec_name1 (state, error_callback, data);
- break;
- case 6:
- filename = sysctl_exec_name2 (state, error_callback, data);
- break;
- case 7:
- filename = macho_get_executable_path (state, error_callback, data);
- break;
- default:
- abort ();
- }
-
- if (filename == NULL)
- continue;
-
- descriptor = backtrace_open (filename, error_callback, data,
- &does_not_exist);
- if (descriptor < 0 && !does_not_exist)
- {
- called_error_callback = 1;
- break;
- }
- if (descriptor >= 0)
- break;
- }
-
- if (descriptor < 0)
- {
- if (!called_error_callback)
- {
- if (state->filename != NULL)
- error_callback (data, state->filename, ENOENT);
- else
- error_callback (data,
- "libbacktrace could not find executable to open",
- 0);
- }
- failed = 1;
- }
-
- if (!failed)
- {
- if (!backtrace_initialize (state, filename, descriptor, error_callback,
- data, &fileline_fn))
- failed = 1;
- }
-
- if (failed)
- {
- if (!state->threaded)
- state->fileline_initialization_failed = 1;
- else
- backtrace_atomic_store_int (&state->fileline_initialization_failed, 1);
- return 0;
- }
-
- if (!state->threaded)
- state->fileline_fn = fileline_fn;
- else
- {
- backtrace_atomic_store_pointer (&state->fileline_fn, fileline_fn);
-
- /* Note that if two threads initialize at once, one of the data
- sets may be leaked. */
- }
-
- return 1;
-}
-
-/* Given a PC, find the file name, line number, and function name. */
-
-int
-backtrace_pcinfo (struct backtrace_state *state, uintptr_t pc,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data)
-{
- if (!fileline_initialize (state, error_callback, data))
- return 0;
-
- if (state->fileline_initialization_failed)
- return 0;
-
- return state->fileline_fn (state, pc, callback, error_callback, data);
-}
-
-/* Given a PC, find the symbol for it, and its value. */
-
-int
-backtrace_syminfo (struct backtrace_state *state, uintptr_t pc,
- backtrace_syminfo_callback callback,
- backtrace_error_callback error_callback, void *data)
-{
- if (!fileline_initialize (state, error_callback, data))
- return 0;
-
- if (state->fileline_initialization_failed)
- return 0;
-
- state->syminfo_fn (state, pc, callback, error_callback, data);
- return 1;
-}
-
-/* A backtrace_syminfo_callback that can call into a
- backtrace_full_callback, used when we have a symbol table but no
- debug info. */
-
-void
-backtrace_syminfo_to_full_callback (void *data, uintptr_t pc,
- const char *symname,
- uintptr_t symval ATTRIBUTE_UNUSED,
- uintptr_t symsize ATTRIBUTE_UNUSED)
-{
- struct backtrace_call_full *bdata = (struct backtrace_call_full *) data;
-
- bdata->ret = bdata->full_callback (bdata->full_data, pc, NULL, 0, symname);
-}
-
-/* An error callback that corresponds to
- backtrace_syminfo_to_full_callback. */
-
-void
-backtrace_syminfo_to_full_error_callback (void *data, const char *msg,
- int errnum)
-{
- struct backtrace_call_full *bdata = (struct backtrace_call_full *) data;
-
- bdata->full_error_callback (bdata->full_data, msg, errnum);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/filenames.h b/fluent-bit/lib/libbacktrace-8602fda/filenames.h
deleted file mode 100644
index aa7bd7adf..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/filenames.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* btest.c -- Filename header for libbacktrace library
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#ifndef GCC_VERSION
-# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
-#endif
-
-#if (GCC_VERSION < 2007)
-# define __attribute__(x)
-#endif
-
-#ifndef ATTRIBUTE_UNUSED
-# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#endif
-
-#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__)
-# define IS_DIR_SEPARATOR(c) ((c) == '/' || (c) == '\\')
-# define HAS_DRIVE_SPEC(f) ((f)[0] != '\0' && (f)[1] == ':')
-# define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]) || HAS_DRIVE_SPEC(f))
-#else
-# define IS_DIR_SEPARATOR(c) ((c) == '/')
-# define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]))
-#endif
diff --git a/fluent-bit/lib/libbacktrace-8602fda/filetype.awk b/fluent-bit/lib/libbacktrace-8602fda/filetype.awk
deleted file mode 100644
index 1eefa7e72..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/filetype.awk
+++ /dev/null
@@ -1,13 +0,0 @@
-# An awk script to determine the type of a file.
-/^\177ELF\001/ { if (NR == 1) { print "elf32"; exit } }
-/^\177ELF\002/ { if (NR == 1) { print "elf64"; exit } }
-/^\114\001/ { if (NR == 1) { print "pecoff"; exit } }
-/^\144\206/ { if (NR == 1) { print "pecoff"; exit } }
-/^\001\337/ { if (NR == 1) { print "xcoff32"; exit } }
-/^\001\367/ { if (NR == 1) { print "xcoff64"; exit } }
-/^\376\355\372\316/ { if (NR == 1) { print "macho"; exit } }
-/^\316\372\355\376/ { if (NR == 1) { print "macho"; exit } }
-/^\376\355\372\317/ { if (NR == 1) { print "macho"; exit } }
-/^\317\372\355\376/ { if (NR == 1) { print "macho"; exit } }
-/^\312\376\272\276/ { if (NR == 1) { print "macho"; exit } }
-/^\276\272\376\312/ { if (NR == 1) { print "macho"; exit } }
diff --git a/fluent-bit/lib/libbacktrace-8602fda/install-debuginfo-for-buildid.sh.in b/fluent-bit/lib/libbacktrace-8602fda/install-debuginfo-for-buildid.sh.in
deleted file mode 100644
index 1364779d7..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/install-debuginfo-for-buildid.sh.in
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-
-# install-debug-info-for-buildid.sh -- Helper script for libbacktrace library
-# testing.
-# Copyright (C) 2019-2021 Free Software Foundation, Inc.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-# (1) Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-
-# (2) Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-
-# (3) The name of the author may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-# Extract build-id from src, and copy debug info of src to
-# $build_id_dir/aa/bb...zz.debug.
-
-set -e
-
-sed=@SED@
-awk=@AWK@
-grep=@GREP@
-objcopy=@OBJCOPY@
-readelf=@READELF@
-mkdir_p="@MKDIR_P@"
-
-build_id_dir="$1"
-src="$2"
-
-buildid=$($readelf -n $src \
- | $grep "Build ID" \
- | $awk '{print $3}')
-
-prefix=$(echo $buildid \
- | $sed 's/^\(.\{2\}\).*/\1/')
-
-remainder=$(echo $buildid \
- | $sed 's/^.\{2\}//')
-
-dir=$build_id_dir/$prefix
-dst=$dir/$remainder.debug
-
-$mkdir_p $dir
-
-$objcopy --only-keep-debug $src $dst
diff --git a/fluent-bit/lib/libbacktrace-8602fda/install-sh b/fluent-bit/lib/libbacktrace-8602fda/install-sh
deleted file mode 100755
index 0b0fdcbba..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/install-sh
+++ /dev/null
@@ -1,501 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2013-12-25.23; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# 'make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-tab=' '
-nl='
-'
-IFS=" $tab$nl"
-
-# Set DOITPROG to "echo" to test this script.
-
-doit=${DOITPROG-}
-doit_exec=${doit:-exec}
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-is_target_a_directory=possibly
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
- or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
- --help display this help and exit.
- --version display version info and exit.
-
- -c (ignored)
- -C install only if different (preserve the last data modification time)
- -d create directories instead of installing files.
- -g GROUP $chgrpprog installed files to GROUP.
- -m MODE $chmodprog installed files to MODE.
- -o USER $chownprog installed files to USER.
- -s $stripprog installed files.
- -t DIRECTORY install into DIRECTORY.
- -T report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
- RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
- case $1 in
- -c) ;;
-
- -C) copy_on_change=true;;
-
- -d) dir_arg=true;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift;;
-
- --help) echo "$usage"; exit $?;;
-
- -m) mode=$2
- case $mode in
- *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
-
- -o) chowncmd="$chownprog $2"
- shift;;
-
- -s) stripcmd=$stripprog;;
-
- -t)
- is_target_a_directory=always
- dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
-
- -T) is_target_a_directory=never;;
-
- --version) echo "$0 $scriptversion"; exit $?;;
-
- --) shift
- break;;
-
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
-
- *) break;;
- esac
- shift
-done
-
-# We allow the use of options -d and -T together, by making -d
-# take the precedence; this is for compatibility with GNU install.
-
-if test -n "$dir_arg"; then
- if test -n "$dst_arg"; then
- echo "$0: target directory not allowed when installing a directory." >&2
- exit 1
- fi
-fi
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
- # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dst_arg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dst_arg"
- shift # fnord
- fi
- shift # arg
- dst_arg=$arg
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- done
-fi
-
-if test $# -eq 0; then
- if test -z "$dir_arg"; then
- echo "$0: no input file specified." >&2
- exit 1
- fi
- # It's OK to call 'install-sh -d' without argument.
- # This can happen when creating conditional directories.
- exit 0
-fi
-
-if test -z "$dir_arg"; then
- if test $# -gt 1 || test "$is_target_a_directory" = always; then
- if test ! -d "$dst_arg"; then
- echo "$0: $dst_arg: Is not a directory." >&2
- exit 1
- fi
- fi
-fi
-
-if test -z "$dir_arg"; then
- do_exit='(exit $ret); exit $ret'
- trap "ret=129; $do_exit" 1
- trap "ret=130; $do_exit" 2
- trap "ret=141; $do_exit" 13
- trap "ret=143; $do_exit" 15
-
- # Set umask so as not to create temps with too-generous modes.
- # However, 'strip' requires both read and write access to temps.
- case $mode in
- # Optimize common cases.
- *644) cp_umask=133;;
- *755) cp_umask=22;;
-
- *[0-7])
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw='% 200'
- fi
- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
- *)
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw=,u+rw
- fi
- cp_umask=$mode$u_plus_rw;;
- esac
-fi
-
-for src
-do
- # Protect names problematic for 'test' and other utilities.
- case $src in
- -* | [=\(\)!]) src=./$src;;
- esac
-
- if test -n "$dir_arg"; then
- dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
-
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
- # might cause directories to be created, which would be especially bad
- # if $src (and thus $dsttmp) contains '*'.
- if test ! -f "$src" && test ! -d "$src"; then
- echo "$0: $src does not exist." >&2
- exit 1
- fi
-
- if test -z "$dst_arg"; then
- echo "$0: no destination specified." >&2
- exit 1
- fi
- dst=$dst_arg
-
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
- if test -d "$dst"; then
- if test "$is_target_a_directory" = never; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
- fi
- dstdir=$dst
- dst=$dstdir/`basename "$src"`
- dstdir_status=0
- else
- dstdir=`dirname "$dst"`
- test -d "$dstdir"
- dstdir_status=$?
- fi
- fi
-
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
- esac
-
- if
- $posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
- )
- then :
- else
-
- # The umask is ridiculous, or mkdir does not conform to POSIX,
- # or it failed possibly due to a race condition. Create the
- # directory the slow way, step by step, checking for races as we go.
-
- case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
- esac
-
- oIFS=$IFS
- IFS=/
- set -f
- set fnord $dstdir
- shift
- set +f
- IFS=$oIFS
-
- prefixes=
-
- for d
- do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
- done
-
- if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
- fi
- fi
- fi
-
- if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
- else
-
- # Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
-
- # Trap to clean up those temp files at exit.
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
- # Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
- # and set any options; do chmod last to preserve setuid bits.
- #
- # If any of these fail, we abort the whole thing. If we want to
- # ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $cpprog $src $dsttmp" command.
- #
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
- { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
- { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
- # If -C, don't bother to copy if it wouldn't change the file.
- if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
- set -f &&
- set X $old && old=:$2:$4:$5:$6 &&
- set X $new && new=:$2:$4:$5:$6 &&
- set +f &&
- test "$old" = "$new" &&
- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
- then
- rm -f "$dsttmp"
- else
- # Rename the file to the real destination.
- $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
- {
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
- }
- fi || exit 1
-
- trap '' 0
- fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/instrumented_alloc.c b/fluent-bit/lib/libbacktrace-8602fda/instrumented_alloc.c
deleted file mode 100644
index 13af81a6d..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/instrumented_alloc.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* instrumented_alloc.c -- Memory allocation instrumented to fail when
- requested, for testing purposes.
- Copyright (C) 2018-2021 Free Software Foundation, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-/* Include all the header files of alloc here, to make sure they're not
- processed when including alloc.c below, such that the redefinitions of malloc
- and realloc are only effective in alloc.c itself. This does not work for
- config.h, because it's not wrapped in "#ifndef CONFIG_H\n#define CONFIG_H"
- and "#endif" but that does not seem to be harmful. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <inttypes.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-extern void *instrumented_malloc (size_t size);
-extern void *instrumented_realloc (void *ptr, size_t size);
-
-#define malloc instrumented_malloc
-#define realloc instrumented_realloc
-#include "alloc.c"
-#undef malloc
-#undef realloc
-
-static uint64_t nr_allocs = 0;
-static uint64_t fail_at_alloc = 0;
-
-extern int at_fail_alloc_p (void);
-extern uint64_t get_nr_allocs (void);
-extern void set_fail_at_alloc (uint64_t);
-
-void *
-instrumented_malloc (size_t size)
-{
- void *res;
-
- if (at_fail_alloc_p ())
- return NULL;
-
- res = malloc (size);
- if (res != NULL)
- nr_allocs++;
-
- return res;
-}
-
-void *
-instrumented_realloc (void *ptr, size_t size)
-{
- void *res;
-
- if (size != 0)
- {
- if (at_fail_alloc_p ())
- return NULL;
- }
-
- res = realloc (ptr, size);
- if (res != NULL)
- nr_allocs++;
-
- return res;
-}
-
-int
-at_fail_alloc_p (void)
-{
- return fail_at_alloc == nr_allocs + 1;
-}
-
-uint64_t
-get_nr_allocs (void)
-{
- return nr_allocs;
-}
-
-void
-set_fail_at_alloc (uint64_t nr)
-{
- fail_at_alloc = nr;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/internal.h b/fluent-bit/lib/libbacktrace-8602fda/internal.h
deleted file mode 100644
index bb481f373..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/internal.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/* internal.h -- Internal header file for stack backtrace library.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#ifndef BACKTRACE_INTERNAL_H
-#define BACKTRACE_INTERNAL_H
-
-/* We assume that <sys/types.h> and "backtrace.h" have already been
- included. */
-
-#ifndef GCC_VERSION
-# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
-#endif
-
-#if (GCC_VERSION < 2007)
-# define __attribute__(x)
-#endif
-
-#ifndef ATTRIBUTE_UNUSED
-# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#endif
-
-#ifndef ATTRIBUTE_MALLOC
-# if (GCC_VERSION >= 2096)
-# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-# else
-# define ATTRIBUTE_MALLOC
-# endif
-#endif
-
-#ifndef ATTRIBUTE_FALLTHROUGH
-# if (GCC_VERSION >= 7000)
-# define ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
-# else
-# define ATTRIBUTE_FALLTHROUGH
-# endif
-#endif
-
-#ifndef HAVE_SYNC_FUNCTIONS
-
-/* Define out the sync functions. These should never be called if
- they are not available. */
-
-#define __sync_bool_compare_and_swap(A, B, C) (abort(), 1)
-#define __sync_lock_test_and_set(A, B) (abort(), 0)
-#define __sync_lock_release(A) abort()
-
-#endif /* !defined (HAVE_SYNC_FUNCTIONS) */
-
-#ifdef HAVE_ATOMIC_FUNCTIONS
-
-/* We have the atomic builtin functions. */
-
-#define backtrace_atomic_load_pointer(p) \
- __atomic_load_n ((p), __ATOMIC_ACQUIRE)
-#define backtrace_atomic_load_int(p) \
- __atomic_load_n ((p), __ATOMIC_ACQUIRE)
-#define backtrace_atomic_store_pointer(p, v) \
- __atomic_store_n ((p), (v), __ATOMIC_RELEASE)
-#define backtrace_atomic_store_size_t(p, v) \
- __atomic_store_n ((p), (v), __ATOMIC_RELEASE)
-#define backtrace_atomic_store_int(p, v) \
- __atomic_store_n ((p), (v), __ATOMIC_RELEASE)
-
-#else /* !defined (HAVE_ATOMIC_FUNCTIONS) */
-#ifdef HAVE_SYNC_FUNCTIONS
-
-/* We have the sync functions but not the atomic functions. Define
- the atomic ones in terms of the sync ones. */
-
-extern void *backtrace_atomic_load_pointer (void *);
-extern int backtrace_atomic_load_int (int *);
-extern void backtrace_atomic_store_pointer (void *, void *);
-extern void backtrace_atomic_store_size_t (size_t *, size_t);
-extern void backtrace_atomic_store_int (int *, int);
-
-#else /* !defined (HAVE_SYNC_FUNCTIONS) */
-
-/* We have neither the sync nor the atomic functions. These will
- never be called. */
-
-#define backtrace_atomic_load_pointer(p) (abort(), (void *) NULL)
-#define backtrace_atomic_load_int(p) (abort(), 0)
-#define backtrace_atomic_store_pointer(p, v) abort()
-#define backtrace_atomic_store_size_t(p, v) abort()
-#define backtrace_atomic_store_int(p, v) abort()
-
-#endif /* !defined (HAVE_SYNC_FUNCTIONS) */
-#endif /* !defined (HAVE_ATOMIC_FUNCTIONS) */
-
-/* The type of the function that collects file/line information. This
- is like backtrace_pcinfo. */
-
-typedef int (*fileline) (struct backtrace_state *state, uintptr_t pc,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data);
-
-/* The type of the function that collects symbol information. This is
- like backtrace_syminfo. */
-
-typedef void (*syminfo) (struct backtrace_state *state, uintptr_t pc,
- backtrace_syminfo_callback callback,
- backtrace_error_callback error_callback, void *data);
-
-/* What the backtrace state pointer points to. */
-
-struct backtrace_state
-{
- /* The name of the executable. */
- const char *filename;
- /* Non-zero if threaded. */
- int threaded;
- /* The master lock for fileline_fn, fileline_data, syminfo_fn,
- syminfo_data, fileline_initialization_failed and everything the
- data pointers point to. */
- void *lock;
- /* The function that returns file/line information. */
- fileline fileline_fn;
- /* The data to pass to FILELINE_FN. */
- void *fileline_data;
- /* The function that returns symbol information. */
- syminfo syminfo_fn;
- /* The data to pass to SYMINFO_FN. */
- void *syminfo_data;
- /* Whether initializing the file/line information failed. */
- int fileline_initialization_failed;
- /* The lock for the freelist. */
- int lock_alloc;
- /* The freelist when using mmap. */
- struct backtrace_freelist_struct *freelist;
-};
-
-/* Open a file for reading. Returns -1 on error. If DOES_NOT_EXIST
- is not NULL, *DOES_NOT_EXIST will be set to 0 normally and set to 1
- if the file does not exist. If the file does not exist and
- DOES_NOT_EXIST is not NULL, the function will return -1 and will
- not call ERROR_CALLBACK. On other errors, or if DOES_NOT_EXIST is
- NULL, the function will call ERROR_CALLBACK before returning. */
-extern int backtrace_open (const char *filename,
- backtrace_error_callback error_callback,
- void *data,
- int *does_not_exist);
-
-/* A view of the contents of a file. This supports mmap when
- available. A view will remain in memory even after backtrace_close
- is called on the file descriptor from which the view was
- obtained. */
-
-struct backtrace_view
-{
- /* The data that the caller requested. */
- const void *data;
- /* The base of the view. */
- void *base;
- /* The total length of the view. */
- size_t len;
-};
-
-/* Create a view of SIZE bytes from DESCRIPTOR at OFFSET. Store the
- result in *VIEW. Returns 1 on success, 0 on error. */
-extern int backtrace_get_view (struct backtrace_state *state, int descriptor,
- off_t offset, uint64_t size,
- backtrace_error_callback error_callback,
- void *data, struct backtrace_view *view);
-
-/* Release a view created by backtrace_get_view. */
-extern void backtrace_release_view (struct backtrace_state *state,
- struct backtrace_view *view,
- backtrace_error_callback error_callback,
- void *data);
-
-/* Close a file opened by backtrace_open. Returns 1 on success, 0 on
- error. */
-
-extern int backtrace_close (int descriptor,
- backtrace_error_callback error_callback,
- void *data);
-
-/* Sort without using memory. */
-
-extern void backtrace_qsort (void *base, size_t count, size_t size,
- int (*compar) (const void *, const void *));
-
-/* Allocate memory. This is like malloc. If ERROR_CALLBACK is NULL,
- this does not report an error, it just returns NULL. */
-
-extern void *backtrace_alloc (struct backtrace_state *state, size_t size,
- backtrace_error_callback error_callback,
- void *data) ATTRIBUTE_MALLOC;
-
-/* Free memory allocated by backtrace_alloc. If ERROR_CALLBACK is
- NULL, this does not report an error. */
-
-extern void backtrace_free (struct backtrace_state *state, void *mem,
- size_t size,
- backtrace_error_callback error_callback,
- void *data);
-
-/* A growable vector of some struct. This is used for more efficient
- allocation when we don't know the final size of some group of data
- that we want to represent as an array. */
-
-struct backtrace_vector
-{
- /* The base of the vector. */
- void *base;
- /* The number of bytes in the vector. */
- size_t size;
- /* The number of bytes available at the current allocation. */
- size_t alc;
-};
-
-/* Grow VEC by SIZE bytes. Return a pointer to the newly allocated
- bytes. Note that this may move the entire vector to a new memory
- location. Returns NULL on failure. */
-
-extern void *backtrace_vector_grow (struct backtrace_state *state, size_t size,
- backtrace_error_callback error_callback,
- void *data,
- struct backtrace_vector *vec);
-
-/* Finish the current allocation on VEC. Prepare to start a new
- allocation. The finished allocation will never be freed. Returns
- a pointer to the base of the finished entries, or NULL on
- failure. */
-
-extern void* backtrace_vector_finish (struct backtrace_state *state,
- struct backtrace_vector *vec,
- backtrace_error_callback error_callback,
- void *data);
-
-/* Release any extra space allocated for VEC. This may change
- VEC->base. Returns 1 on success, 0 on failure. */
-
-extern int backtrace_vector_release (struct backtrace_state *state,
- struct backtrace_vector *vec,
- backtrace_error_callback error_callback,
- void *data);
-
-/* Free the space managed by VEC. This will reset VEC. */
-
-static inline void
-backtrace_vector_free (struct backtrace_state *state,
- struct backtrace_vector *vec,
- backtrace_error_callback error_callback, void *data)
-{
- vec->alc += vec->size;
- vec->size = 0;
- backtrace_vector_release (state, vec, error_callback, data);
-}
-
-/* Read initial debug data from a descriptor, and set the
- fileline_data, syminfo_fn, and syminfo_data fields of STATE.
- Return the fileln_fn field in *FILELN_FN--this is done this way so
- that the synchronization code is only implemented once. This is
- called after the descriptor has first been opened. It will close
- the descriptor if it is no longer needed. Returns 1 on success, 0
- on error. There will be multiple implementations of this function,
- for different file formats. Each system will compile the
- appropriate one. */
-
-extern int backtrace_initialize (struct backtrace_state *state,
- const char *filename,
- int descriptor,
- backtrace_error_callback error_callback,
- void *data,
- fileline *fileline_fn);
-
-/* An enum for the DWARF sections we care about. */
-
-enum dwarf_section
-{
- DEBUG_INFO,
- DEBUG_LINE,
- DEBUG_ABBREV,
- DEBUG_RANGES,
- DEBUG_STR,
- DEBUG_ADDR,
- DEBUG_STR_OFFSETS,
- DEBUG_LINE_STR,
- DEBUG_RNGLISTS,
-
- DEBUG_MAX
-};
-
-/* Data for the DWARF sections we care about. */
-
-struct dwarf_sections
-{
- const unsigned char *data[DEBUG_MAX];
- size_t size[DEBUG_MAX];
-};
-
-/* DWARF data read from a file, used for .gnu_debugaltlink. */
-
-struct dwarf_data;
-
-/* Add file/line information for a DWARF module. */
-
-extern int backtrace_dwarf_add (struct backtrace_state *state,
- uintptr_t base_address,
- const struct dwarf_sections *dwarf_sections,
- int is_bigendian,
- struct dwarf_data *fileline_altlink,
- backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn,
- struct dwarf_data **fileline_entry);
-
-/* A data structure to pass to backtrace_syminfo_to_full. */
-
-struct backtrace_call_full
-{
- backtrace_full_callback full_callback;
- backtrace_error_callback full_error_callback;
- void *full_data;
- int ret;
-};
-
-/* A backtrace_syminfo_callback that can call into a
- backtrace_full_callback, used when we have a symbol table but no
- debug info. */
-
-extern void backtrace_syminfo_to_full_callback (void *data, uintptr_t pc,
- const char *symname,
- uintptr_t symval,
- uintptr_t symsize);
-
-/* An error callback that corresponds to
- backtrace_syminfo_to_full_callback. */
-
-extern void backtrace_syminfo_to_full_error_callback (void *, const char *,
- int);
-
-/* A test-only hook for elf_uncompress_zdebug. */
-
-extern int backtrace_uncompress_zdebug (struct backtrace_state *,
- const unsigned char *compressed,
- size_t compressed_size,
- backtrace_error_callback, void *data,
- unsigned char **uncompressed,
- size_t *uncompressed_size);
-
-/* A test-only hook for elf_uncompress_lzma. */
-
-extern int backtrace_uncompress_lzma (struct backtrace_state *,
- const unsigned char *compressed,
- size_t compressed_size,
- backtrace_error_callback, void *data,
- unsigned char **uncompressed,
- size_t *uncompressed_size);
-
-#endif
diff --git a/fluent-bit/lib/libbacktrace-8602fda/libtool.m4 b/fluent-bit/lib/libbacktrace-8602fda/libtool.m4
deleted file mode 100644
index 17f8e5f30..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/libtool.m4
+++ /dev/null
@@ -1,7436 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 56 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2009 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- _LT_PROG_XSI_SHELLFNS
-
- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS="$save_LDFLAGS"
- ])
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
- # build without first building modern cctools / linker.
- case $host_cpu-$host_os in
- *-rhapsody* | *-darwin1.[[012]])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- *-darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- *-darwin*)
- # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
- # deployment target is forced to an earlier version.
- case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
- UNSET,*-darwin[[89]]*|UNSET,*-darwin[[12]][[0123456789]]*)
- ;;
- 10.[[012]][[,.]]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- *)
- ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
-# Checks for linker and compiler features on Darwin / macOS / iOS
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- m4_if([$1], [CXX],
-[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[
-lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\(.*\)$/\1/
- p
- }
- }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case "$ECHO" in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-sparc*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
- test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-
-# uclinux* changes (here and below) have been submitted to the libtool
-# project, but have not yet been accepted: they are GCC-local changes
-# for the time being. (See
-# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method == "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_save_LIBS="$LIBS"
- lt_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS="$lt_save_LIBS"
- CFLAGS="$lt_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ F* | *Sun*Fortran*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])],
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- )
- LDFLAGS="$save_LDFLAGS"
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
- [[If ld is used when linking, flag to hardcode $libdir into a binary
- during linking. This must work even if $libdir does not exist]])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting ${shlibpath_var} if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
- [Fix the shell variable $srcfile for the compiler])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report which library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- gnu*)
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)="$GXX"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case $p in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- else
- prev=
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- case $p in
- -L* | -R*)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- ;;
-
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- CC=${F77-"f77"}
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$G77"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- CC=${FC-"f95"}
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC="$lt_save_CC"
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=${1%%=*}
- func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=$(( $[*] ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=${#1}
-}
-
-_LT_EOF
- ;;
- *) # Bourne compatible functions.
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-}
-
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "$[@]"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$[1]+=\$[2]"
-}
-_LT_EOF
- ;;
- *)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
- ;;
- esac
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/ltmain.sh b/fluent-bit/lib/libbacktrace-8602fda/ltmain.sh
deleted file mode 100644
index 70990740b..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/ltmain.sh
+++ /dev/null
@@ -1,8636 +0,0 @@
-# Generated from ltmain.m4sh.
-
-# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a
-# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-# --config show all configuration variables
-# --debug enable verbose shell tracing
-# -n, --dry-run display commands without modifying any files
-# --features display basic configuration information and exit
-# --mode=MODE use operation mode MODE
-# --no-finish let install mode avoid finish commands
-# --preserve-dup-deps don't remove duplicate dependency libraries
-# --quiet, --silent don't print informational messages
-# --no-quiet, --no-silent
-# print informational messages (default)
-# --tag=TAG use configuration variables from tag TAG
-# -v, --verbose print more informational messages than default
-# --no-verbose don't print the extra informational messages
-# --version print version information
-# -h, --help, --help-all print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-# clean remove files from the build directory
-# compile compile a source file into a libtool object
-# execute automatically set library path, then run a program
-# finish complete the installation of libtool libraries
-# install install libraries or executables
-# link create a library or an executable
-# uninstall remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE. When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-# host-triplet: $host
-# shell: $SHELL
-# compiler: $LTCC
-# compiler flags: $LTCFLAGS
-# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a
-# automake: $automake_version
-# autoconf: $autoconf_version
-#
-# Report bugs to <bug-libtool@gnu.org>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION=2.2.7a
-TIMESTAMP=" 1.3134 2009-11-29"
-package_revision=1.3134
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
- fi"
-done
-
-$lt_unset CDPATH
-
-
-
-
-
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-: ${ECHO=$as_echo}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
-: ${LN_S="ln -s"}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" $lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-}
-
-# Generated shell functions inserted here.
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
- s@/\./@/@g
- t dotsl
- s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-# value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
- # Start from root dir and reassemble the path.
- func_normal_abspath_result=
- func_normal_abspath_tpath=$1
- func_normal_abspath_altnamespace=
- case $func_normal_abspath_tpath in
- "")
- # Empty path, that just means $cwd.
- func_stripname '' '/' "`pwd`"
- func_normal_abspath_result=$func_stripname_result
- return
- ;;
- # The next three entries are used to spot a run of precisely
- # two leading slashes without using negated character classes;
- # we take advantage of case's first-match behaviour.
- ///*)
- # Unusual form of absolute path, do nothing.
- ;;
- //*)
- # Not necessarily an ordinary path; POSIX reserves leading '//'
- # and for example Cygwin uses it to access remote file shares
- # over CIFS/SMB, so we conserve a leading double slash if found.
- func_normal_abspath_altnamespace=/
- ;;
- /*)
- # Absolute path, do nothing.
- ;;
- *)
- # Relative path, prepend $cwd.
- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
- ;;
- esac
- # Cancel out all the simple stuff to save iterations. We also want
- # the path to end with a slash for ease of parsing, so make sure
- # there is one (and only one) here.
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
- while :; do
- # Processed it all yet?
- if test "$func_normal_abspath_tpath" = / ; then
- # If we ascended to the root using ".." the result may be empty now.
- if test -z "$func_normal_abspath_result" ; then
- func_normal_abspath_result=/
- fi
- break
- fi
- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcar"`
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcdr"`
- # Figure out what to do with it
- case $func_normal_abspath_tcomponent in
- "")
- # Trailing empty path component, ignore it.
- ;;
- ..)
- # Parent dir; strip last assembled component from result.
- func_dirname "$func_normal_abspath_result"
- func_normal_abspath_result=$func_dirname_result
- ;;
- *)
- # Actual path component, append it.
- func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
- ;;
- esac
- done
- # Restore leading double-slash if one was found on entry.
- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-# value returned in "$func_relative_path_result"
-func_relative_path ()
-{
- func_relative_path_result=
- func_normal_abspath "$1"
- func_relative_path_tlibdir=$func_normal_abspath_result
- func_normal_abspath "$2"
- func_relative_path_tbindir=$func_normal_abspath_result
-
- # Ascend the tree starting from libdir
- while :; do
- # check if we have found a prefix of bindir
- case $func_relative_path_tbindir in
- $func_relative_path_tlibdir)
- # found an exact match
- func_relative_path_tcancelled=
- break
- ;;
- $func_relative_path_tlibdir*)
- # found a matching prefix
- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
- func_relative_path_tcancelled=$func_stripname_result
- if test -z "$func_relative_path_result"; then
- func_relative_path_result=.
- fi
- break
- ;;
- *)
- func_dirname $func_relative_path_tlibdir
- func_relative_path_tlibdir=${func_dirname_result}
- if test "x$func_relative_path_tlibdir" = x ; then
- # Have to descend all the way to the root!
- func_relative_path_result=../$func_relative_path_result
- func_relative_path_tcancelled=$func_relative_path_tbindir
- break
- fi
- func_relative_path_result=../$func_relative_path_result
- ;;
- esac
- done
-
- # Now calculate path; take care to avoid doubling-up slashes.
- func_stripname '' '/' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- func_stripname '/' '/' "$func_relative_path_tcancelled"
- if test "x$func_stripname_result" != x ; then
- func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
- fi
-
- # Normalisation. If bindir is libdir, return empty string,
- # else relative path ending with a slash; either way, target
- # file name can be directly appended.
- if test ! -z "$func_relative_path_result"; then
- func_stripname './' '' "$func_relative_path_result/"
- func_relative_path_result=$func_stripname_result
- fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
- [\\/]*|[A-Za-z]:\\*) ;;
- *[\\/]*)
- progdir=$func_dirname_result
- progdir=`cd "$progdir" && pwd`
- progpath="$progdir/$progname"
- ;;
- *)
- save_IFS="$IFS"
- IFS=:
- for progdir in $PATH; do
- IFS="$save_IFS"
- test -x "$progdir/$progname" && break
- done
- IFS="$save_IFS"
- test -n "$progdir" || progdir=`pwd`
- progpath="$progdir/$progname"
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
- s/$bs4/&\\
-/g
- s/^$bs2$dollar/$bs&/
- s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
- s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
- $ECHO "$progname${mode+: }$mode: $*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $opt_verbose && func_echo ${1+"$@"}
-
- # A bug in bash halts the script if the last line of a function
- # fails when set -e is in force, so we need another command to
- # work around that:
- :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
-
- # bash bug again:
- :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- func_error ${1+"$@"}
- func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information." ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
- $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
- my_directory_path="$1"
- my_dir_list=
-
- if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
- # Protect directory names starting with `-'
- case $my_directory_path in
- -*) my_directory_path="./$my_directory_path" ;;
- esac
-
- # While some portion of DIR does not yet exist...
- while test ! -d "$my_directory_path"; do
- # ...make a list in topmost first order. Use a colon delimited
- # list incase some portion of path contains whitespace.
- my_dir_list="$my_directory_path:$my_dir_list"
-
- # If the last portion added has no slash in it, the list is done
- case $my_directory_path in */*) ;; *) break ;; esac
-
- # ...otherwise throw away the child directory and loop
- my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
- done
- my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
- save_mkdir_p_IFS="$IFS"; IFS=':'
- for my_dir in $my_dir_list; do
- IFS="$save_mkdir_p_IFS"
- # mkdir can fail with a `File exist' error if two processes
- # try to create one of the directories concurrently. Don't
- # stop in that case!
- $MKDIR "$my_dir" 2>/dev/null || :
- done
- IFS="$save_mkdir_p_IFS"
-
- # Bail out if we (or some other process) failed to create a directory.
- test -d "$my_directory_path" || \
- func_fatal_error "Failed to create \`$1'"
- fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible. If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
- my_template="${TMPDIR-/tmp}/${1-$progname}"
-
- if test "$opt_dry_run" = ":"; then
- # Return a directory name, but don't create it in dry-run mode
- my_tmpdir="${my_template}-$$"
- else
-
- # If mktemp works, use that first and foremost
- my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
- if test ! -d "$my_tmpdir"; then
- # Failing that, at least try and use $RANDOM to avoid a race
- my_tmpdir="${my_template}-${RANDOM-0}$$"
-
- save_mktempdir_umask=`umask`
- umask 0077
- $MKDIR "$my_tmpdir"
- umask $save_mktempdir_umask
- fi
-
- # If we're not in dry-run mode, bomb out on failure
- test -d "$my_tmpdir" || \
- func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
- fi
-
- $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
- case $1 in
- *[\\\`\"\$]*)
- func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
- *)
- func_quote_for_eval_unquoted_result="$1" ;;
- esac
-
- case $func_quote_for_eval_unquoted_result in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and and variable
- # expansion for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
- ;;
- *)
- func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
- esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- case $1 in
- *[\\\`\"]*)
- my_arg=`$ECHO "$1" | $SED \
- -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- my_arg="$1" ;;
- esac
-
- case $my_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- my_arg="\"$my_arg\""
- ;;
- esac
-
- func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$my_cmd"
- my_status=$?
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it. Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$lt_user_locale
- $my_cmd"
- my_status=$?
- eval "$lt_safe_locale"
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-
-
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
- $SED -n '/(C)/!b go
- :more
- /\./!{
- N
- s/\n# //
- b more
- }
- :go
- /^# '$PROGRAM' (GNU /,/# warranty; / {
- s/^# //
- s/^# *$//
- s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
- p
- }' < "$progpath"
- exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $SED -n '/^# Usage:/,/^# *-h/ {
- s/^# //
- s/^# *$//
- s/\$progname/'$progname'/
- p
- }' < "$progpath"
- echo
- $ECHO "run \`$progname --help | more' for full usage"
- exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
- $SED -n '/^# Usage:/,/# Report bugs to/ {
- s/^# //
- s/^# *$//
- s*\$progname*'$progname'*
- s*\$host*'"$host"'*
- s*\$SHELL*'"$SHELL"'*
- s*\$LTCC*'"$LTCC"'*
- s*\$LTCFLAGS*'"$LTCFLAGS"'*
- s*\$LD*'"$LD"'*
- s/\$with_gnu_ld/'"$with_gnu_ld"'/
- s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
- s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
- p
- }' < "$progpath"
- ret=$?
- if test -z "$1"; then
- exit $ret
- fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- func_error "missing argument for $1"
- exit_cmd=exit
-}
-
-exit_cmd=:
-
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-# $mode is unset
-nonopt=
-execute_dlfiles=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-opt_dry_run=false
-opt_finish=:
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
- func_error ${1+"$@"}
- func_error "See the $PACKAGE documentation for more information."
- func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
- re_begincf='^# ### BEGIN LIBTOOL'
- re_endcf='^# ### END LIBTOOL'
-
- # Default configuration.
- $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
- done
-
- exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
- echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
-
- exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
- # Global variable:
- tagname="$1"
-
- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
- sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
- # Validate tagname.
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- func_fatal_error "invalid tag name: $tagname"
- ;;
- esac
-
- # Don't test for the "default" C tag, as we know it's
- # there but not specially marked.
- case $tagname in
- CC) ;;
- *)
- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
- taglist="$taglist $tagname"
-
- # Evaluate the configuration. Be careful to quote the path
- # and the sed script, to avoid splitting on whitespace, but
- # also don't use non-portable quotes within backquotes within
- # quotes we have to do it in 2 steps:
- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
- eval "$extractedcf"
- else
- func_error "ignoring unknown tag $tagname"
- fi
- ;;
- esac
-}
-
-# Parse options once, thoroughly. This comes as soon as possible in
-# the script to make things like `libtool --version' happen quickly.
-{
-
- # Shorthand for --mode=foo, only valid as the first argument
- case $1 in
- clean|clea|cle|cl)
- shift; set dummy --mode clean ${1+"$@"}; shift
- ;;
- compile|compil|compi|comp|com|co|c)
- shift; set dummy --mode compile ${1+"$@"}; shift
- ;;
- execute|execut|execu|exec|exe|ex|e)
- shift; set dummy --mode execute ${1+"$@"}; shift
- ;;
- finish|finis|fini|fin|fi|f)
- shift; set dummy --mode finish ${1+"$@"}; shift
- ;;
- install|instal|insta|inst|ins|in|i)
- shift; set dummy --mode install ${1+"$@"}; shift
- ;;
- link|lin|li|l)
- shift; set dummy --mode link ${1+"$@"}; shift
- ;;
- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
- shift; set dummy --mode uninstall ${1+"$@"}; shift
- ;;
- esac
-
- # Parse non-mode specific arguments:
- while test "$#" -gt 0; do
- opt="$1"
- shift
-
- case $opt in
- --config) func_config ;;
-
- --debug) preserve_args="$preserve_args $opt"
- func_echo "enabling shell trace mode"
- opt_debug='set -x'
- $opt_debug
- ;;
-
- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
- execute_dlfiles="$execute_dlfiles $1"
- shift
- ;;
-
- --dry-run | -n) opt_dry_run=: ;;
- --features) func_features ;;
- --finish) mode="finish" ;;
- --no-finish) opt_finish=false ;;
-
- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
- case $1 in
- # Valid mode arguments:
- clean) ;;
- compile) ;;
- execute) ;;
- finish) ;;
- install) ;;
- link) ;;
- relink) ;;
- uninstall) ;;
-
- # Catch anything else as an error
- *) func_error "invalid argument for $opt"
- exit_cmd=exit
- break
- ;;
- esac
-
- mode="$1"
- shift
- ;;
-
- --preserve-dup-deps)
- opt_duplicate_deps=: ;;
-
- --quiet|--silent) preserve_args="$preserve_args $opt"
- opt_silent=:
- opt_verbose=false
- ;;
-
- --no-quiet|--no-silent)
- preserve_args="$preserve_args $opt"
- opt_silent=false
- ;;
-
- --verbose| -v) preserve_args="$preserve_args $opt"
- opt_silent=false
- opt_verbose=:
- ;;
-
- --no-verbose) preserve_args="$preserve_args $opt"
- opt_verbose=false
- ;;
-
- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
- preserve_args="$preserve_args $opt $1"
- func_enable_tag "$1" # tagname is set here
- shift
- ;;
-
- # Separate optargs to long options:
- -dlopen=*|--mode=*|--tag=*)
- func_opt_split "$opt"
- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
- shift
- ;;
-
- -\?|-h) func_usage ;;
- --help) opt_help=: ;;
- --help-all) opt_help=': help-all' ;;
- --version) func_version ;;
-
- -*) func_fatal_help "unrecognized option \`$opt'" ;;
-
- *) nonopt="$opt"
- break
- ;;
- esac
- done
-
-
- case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* )
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
- ;;
- esac
-
- # Having warned about all mis-specified options, bail out if
- # anything was wrong.
- $exit_cmd $EXIT_FAILURE
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
- if test "$package_revision" != "$macro_revision"; then
- if test "$VERSION" != "$macro_version"; then
- if test -z "$macro_version"; then
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- fi
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
- fi
-
- exit $EXIT_MISMATCH
- fi
-}
-
-
-## ----------- ##
-## Main. ##
-## ----------- ##
-
-$opt_help || {
- # Sanity checks first:
- func_check_version_match
-
- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- func_fatal_configuration "not configured to build any kind of library"
- fi
-
- test -z "$mode" && func_fatal_error "error: you must specify a MODE."
-
-
- # Darwin sucks
- eval "std_shrext=\"$shrext_cmds\""
-
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$execute_dlfiles" && test "$mode" != execute; then
- func_error "unrecognized option \`-dlopen'"
- $ECHO "$help" 1>&2
- exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$progname --help --mode=$mode' for more information."
-}
-
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
- test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null \
- | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs. To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway. Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
- lalib_p=no
- if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
- for lalib_p_l in 1 2 3 4
- do
- read lalib_p_line
- case "$lalib_p_line" in
- \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
- esac
- done
- exec 0<&5 5<&-
- fi
- test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
- func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
- func_ltwrapper_exec_suffix=
- case $1 in
- *.exe) ;;
- *) func_ltwrapper_exec_suffix=.exe ;;
- esac
- $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
- func_ltwrapper_scriptname_result=""
- if func_ltwrapper_executable_p "$1"; then
- func_dirname_and_basename "$1" "" "."
- func_stripname '' '.exe' "$func_basename_result"
- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
- fi
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
- func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
- $opt_debug
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$save_ifs
- eval "cmd=\"$cmd\""
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)! Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
- $opt_debug
- case $1 in
- */* | *\\*) . "$1" ;;
- *) . "./$1" ;;
- esac
-}
-
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
- $opt_debug
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
- func_quote_for_eval "$arg"
- CC_quoted="$CC_quoted $func_quote_for_eval_result"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case $@ in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
- func_quote_for_eval "$arg"
- CC_quoted="$CC_quoted $func_quote_for_eval_result"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case "$@ " in
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- func_echo "unable to infer tagged configuration"
- func_fatal_error "specify a tag with \`--tag'"
-# else
-# func_verbose "using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
- write_libobj=${1}
- if test "$build_libtool_libs" = yes; then
- write_lobj=\'${2}\'
- else
- write_lobj=none
- fi
-
- if test "$build_old_libs" = yes; then
- write_oldobj=\'${3}\'
- else
- write_oldobj=none
- fi
-
- $opt_dry_run || {
- cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
- $MV "${write_libobj}T" "${write_libobj}"
- }
-}
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
- $opt_debug
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
- later=
- pie_flag=
-
- for arg
- do
- case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- test -n "$libobj" && \
- func_fatal_error "you cannot specify \`-o' more than once"
- arg_mode=target
- continue
- ;;
-
- -pie | -fpie | -fPIE)
- pie_flag="$pie_flag $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
- later="$later $arg"
- continue
- ;;
-
- -no-suppress)
- suppress_opt=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$arg"
- lastarg="$lastarg $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
- base_compile="$base_compile $lastarg"
- continue
- ;;
-
- *)
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- func_quote_for_eval "$lastarg"
- base_compile="$base_compile $func_quote_for_eval_result"
- done # for arg
-
- case $arg_mode in
- arg)
- func_fatal_error "you must specify an argument for -Xcompile"
- ;;
- target)
- func_fatal_error "you must specify a target with \`-o'"
- ;;
- *)
- # Get the name of the library object.
- test -z "$libobj" && {
- func_basename "$srcfile"
- libobj="$func_basename_result"
- }
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- case $libobj in
- *.[cCFSifmso] | \
- *.ada | *.adb | *.ads | *.asm | \
- *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
- *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
- func_xform "$libobj"
- libobj=$func_xform_result
- ;;
- esac
-
- case $libobj in
- *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
- *)
- func_fatal_error "cannot determine name of library object from \`$libobj'"
- ;;
- esac
-
- func_infer_tag $base_compile
-
- for arg in $later; do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- continue
- ;;
-
- -static)
- build_libtool_libs=no
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
- esac
- done
-
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
- && func_warning "libobj name \`$libobj' may not contain shell special characters."
- func_dirname_and_basename "$obj" "/" ""
- objname="$func_basename_result"
- xdir="$func_dirname_result"
- lobj=${xdir}$objdir/$objname
-
- test -z "$base_compile" && \
- func_fatal_help "you must specify a compilation command"
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2* | cegcc*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
- removelist="$removelist $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
- removelist="$removelist $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
- if test -n "$fix_srcfile_path"; then
- eval "srcfile=\"$fix_srcfile_path\""
- fi
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
- command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $qsrcfile"
- fi
-
- func_mkdir_p "$xdir$objdir"
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- command="$command -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
- 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- func_show_eval '$MV "$output_obj" "$lobj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
-
- # Allow error messages only from the first compilation.
- if test "$suppress_opt" = yes; then
- suppress_output=' >/dev/null 2>&1'
- fi
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
- command="$base_compile $qsrcfile$pie_flag"
- else
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- command="$command -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- command="$command$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- func_show_eval '$MV "$output_obj" "$obj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
- fi
-
- $opt_dry_run || {
- func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- removelist=$lockfile
- $RM "$lockfile"
- fi
- }
-
- exit $EXIT_SUCCESS
-}
-
-$opt_help || {
- test "$mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
- compile)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to building PIC objects only
- -prefer-non-pic try to building non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only build a \`.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
- execute)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
- finish)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
- install)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -bindir BINDIR specify path to binaries directory (for systems where
- libraries must be found in the PATH setting at runtime)
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -precious-files-regex REGEX
- don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
- -Wc,FLAG
- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wl,FLAG
- -Xlinker FLAG pass linker-specific FLAG directly to the linker
- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
- uninstall)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
- func_fatal_help "invalid operation mode \`$mode'"
- ;;
- esac
-
- echo
- $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
- if test "$opt_help" = :; then
- func_mode_help
- else
- {
- func_help noexit
- for mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | sed -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
- for mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
- } |
- sed '1d
- /^When reporting/,/^Report/{
- H
- d
- }
- $x
- /information about other modes/d
- /more detailed .*MODE/d
- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
- fi
- exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
- $opt_debug
- # The first argument is the command name.
- cmd="$nonopt"
- test -z "$cmd" && \
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
- for file in $execute_dlfiles; do
- test -f "$file" \
- || func_fatal_help "\`$file' is not a file"
-
- dir=
- case $file in
- *.la)
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$lib' is not a valid libtool archive"
-
- # Read the libtool library.
- dlname=
- library_names=
- func_source "$file"
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && \
- func_warning "\`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
-
- if test -f "$dir/$objdir/$dlname"; then
- dir="$dir/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
- fi
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- ;;
-
- *)
- func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval test -z \"\$$shlibpath_var\"; then
- eval $shlibpath_var=\$dir
- else
- eval $shlibpath_var=\$dir:\$$shlibpath_var
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -* | *.la | *.lo ) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if func_ltwrapper_script_p "$file"; then
- func_source "$file"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- elif func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- func_source "$func_ltwrapper_scriptname_result"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- func_quote_for_eval "$file"
- args="$args $func_quote_for_eval_result"
- done
-
- if test "X$opt_dry_run" = Xfalse; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
- echo "export $shlibpath_var"
- fi
- $ECHO "$cmd$args"
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
- $opt_debug
- libdirs="$nonopt"
- admincmds=
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for dir
- do
- libdirs="$libdirs $dir"
- done
-
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $opt_dry_run || eval "$cmds" || admincmds="$admincmds
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- $opt_silent && exit $EXIT_SUCCESS
-
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $ECHO " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval "flag=\"$hardcode_libdir_flag_spec\""
-
- $ECHO " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $ECHO " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
-
- echo "See any operating system documentation about shared libraries for"
- case $host in
- solaris2.[6789]|solaris2.1[0-9])
- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
- echo "pages."
- ;;
- *)
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- ;;
- esac
- echo "----------------------------------------------------------------------"
- exit $EXIT_SUCCESS
-}
-
-test "$mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
- $opt_debug
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- case $nonopt in *shtool*) :;; *) false;; esac; then
- # Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
- arg=$1
- shift
- else
- install_prog=
- arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
- install_prog="$install_prog$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
- *) install_cp=false ;;
- esac
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- no_mode=:
- for arg
- do
- arg2=
- if test -n "$dest"; then
- files="$files $dest"
- dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f)
- if $install_cp; then :; else
- prev=$arg
- fi
- ;;
- -g | -m | -o)
- prev=$arg
- ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*)
- ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- if test "x$prev" = x-m && test -n "$install_override_mode"; then
- arg2=$install_override_mode
- no_mode=false
- fi
- prev=
- else
- dest=$arg
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- install_prog="$install_prog $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
- install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
- func_fatal_help "you must specify an install program"
-
- test -n "$prev" && \
- func_fatal_help "the \`$prev' option requires an argument"
-
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
- fi
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- func_fatal_help "no file or destination specified"
- else
- func_fatal_help "you must specify a destination"
- fi
- fi
-
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$dest"
- dest=$func_stripname_result
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- func_dirname_and_basename "$dest" "" "."
- destdir="$func_dirname_result"
- destname="$func_basename_result"
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files; shift
- test "$#" -gt 1 && \
- func_fatal_help "\`$dest' is not a directory"
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- func_fatal_help "\`$destdir' must be an absolute directory name"
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- staticlibs="$staticlibs $file"
- ;;
-
- *.la)
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$file' is not a valid libtool archive"
-
- library_names=
- old_library=
- relink_command=
- func_source "$file"
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) current_libdirs="$current_libdirs $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) future_libdirs="$future_libdirs $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir="$func_dirname_result"
- dir="$dir$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- test "$inst_prefix_dir" = "$destdir" && \
- func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- func_warning "relinking \`$file'"
- func_show_eval "$relink_command" \
- 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
- fi
-
- # See the names of the shared library.
- set dummy $library_names; shift
- if test -n "$1"; then
- realname="$1"
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
- 'exit $?'
- tstripme="$stripme"
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- case $realname in
- *.dll.a)
- tstripme=""
- ;;
- esac
- ;;
- esac
- if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- # Try `ln -sf' first, because the `ln' binary might depend on
- # the symlink we replace! Solaris /bin/ln does not understand -f,
- # so we also need to try rm && ln -s.
- for linkname
- do
- test "$linkname" != "$realname" \
- && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- func_execute_cmds "$postinstall_cmds" 'exit $?'
- fi
-
- # Install the pseudo-library for information purposes.
- func_basename "$file"
- name="$func_basename_result"
- instname="$dir/$name"i
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- func_lo2o "$destfile"
- staticdest=$func_lo2o_result
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- func_fatal_help "cannot copy a libtool object to \`$destfile'"
- ;;
- esac
-
- # Install the libtool object if requested.
- test -n "$destfile" && \
- func_show_eval "$install_prog $file $destfile" 'exit $?'
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- func_lo2o "$file"
- staticobj=$func_lo2o_result
- func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
- fi
- exit $EXIT_SUCCESS
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin* | *mingw*)
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- wrapper=$func_ltwrapper_scriptname_result
- else
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
- fi
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if func_ltwrapper_script_p "$wrapper"; then
- notinst_deplibs=
- relink_command=
-
- func_source "$wrapper"
-
- # Check the variables that should have been set.
- test -z "$generated_by_libtool_version" && \
- func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- func_source "$lib"
- fi
- libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- func_warning "\`$lib' has not been installed in \`$libdir'"
- finalize=no
- fi
- done
-
- relink_command=
- func_source "$wrapper"
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- $opt_dry_run || {
- if test "$finalize" = yes; then
- tmpdir=`func_mktempdir`
- func_basename "$file$stripped_ext"
- file="$func_basename_result"
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
- $opt_silent || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
- }
- if eval "$relink_command"; then :
- else
- func_error "error: relink \`$file' with the above command before installing it"
- $opt_dry_run || ${RM}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- func_warning "cannot relink \`$file'"
- fi
- }
- else
- # Install the binary that we compiled earlier.
- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- func_stripname '' '.exe' "$destfile"
- destfile=$func_stripname_result
- ;;
- esac
- ;;
- esac
- func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
- $opt_dry_run || if test -n "$outputname"; then
- ${RM}r "$tmpdir"
- fi
- ;;
- esac
- done
-
- for file in $staticlibs; do
- func_basename "$file"
- name="$func_basename_result"
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
-
- func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
- if test -n "$stripme" && test -n "$old_striplib"; then
- func_show_eval "$old_striplib $oldlib" 'exit $?'
- fi
-
- # Do each command in the postinstall commands.
- func_execute_cmds "$old_postinstall_cmds" 'exit $?'
- done
-
- test -n "$future_libdirs" && \
- func_warning "remember to run \`$progname --finish$future_libdirs'"
-
- if test -n "$current_libdirs" && $opt_finish; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
- else
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $opt_debug
- my_outputname="$1"
- my_originator="$2"
- my_pic_p="${3-no}"
- my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms="${my_outputname}S.c"
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${my_outputname}.nm"
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_verbose "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- func_verbose "generating symbol list for \`$output'"
-
- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
- func_verbose "extracting global C symbols from \`$progfile'"
- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
- ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- echo EXPORTS > "$output_objdir/$outputname.def"
- cat "$export_symbols" >> "$output_objdir/$outputname.def"
- ;;
- esac
- }
- else
- $opt_dry_run || {
- ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp"
- $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- echo EXPORTS > "$output_objdir/$outputname.def"
- cat "$nlist" >> "$output_objdir/$outputname.def"
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_verbose "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
- $opt_dry_run || {
- $ECHO ": $name " >> "$nlist"
- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- done
-
- $opt_dry_run || {
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if $GREP -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- $GREP -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- echo >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
- runtime relocations are performed -- see ld's documentation
- on pseudo-relocs. */"
- lt_dlsym_const= ;;
- *osf5*)
- echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
- lt_dlsym_const= ;;
- *)
- lt_dlsym_const=const ;;
- esac
-
- echo >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
- { \"$my_originator\", (void *) 0 },"
-
- case $need_lib_prefix in
- no)
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- *)
- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- esac
- echo >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- if test "X$my_pic_p" != Xno; then
- pic_flag_for_symtable=" $pic_flag"
- fi
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) symtab_cflags="$symtab_cflags $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
- # Transform the symbol file into the correct name.
- symfileobj="$output_objdir/${my_outputname}S.$objext"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for \`$my_dlsyms'"
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
- fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
- $opt_debug
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
- win32_nmres=`$NM -f posix -A "$1" |
- $SED -n -e '
- 1,100{
- / I /{
- s,.*,import,
- p
- q
- }
- }'`
- case $win32_nmres in
- import*) win32_libid_type="x86 archive import";;
- *) win32_libid_type="x86 archive static";;
- esac
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $ECHO "$win32_libid_type"
-}
-
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $opt_debug
- f_ex_an_ar_dir="$1"; shift
- f_ex_an_ar_oldlib="$1"
- if test "$lock_old_archive_extraction" = yes; then
- lockfile=$f_ex_an_ar_oldlib.lock
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- fi
- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
- 'stat=$?; rm -f "$lockfile"; exit $stat'
- if test "$lock_old_archive_extraction" = yes; then
- $opt_dry_run || rm -f "$lockfile"
- fi
- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $opt_debug
- my_gentop="$1"; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=""
- my_xlib=""
- my_xabs=""
- my_xdir=""
-
- for my_xlib in $my_oldlibs; do
- # Extract the objects.
- case $my_xlib in
- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
- *) my_xabs=`pwd`"/$my_xlib" ;;
- esac
- func_basename "$my_xlib"
- my_xlib="$func_basename_result"
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- func_arith $extracted_serial + 1
- extracted_serial=$func_arith_result
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_verbose "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- darwin_base_archive=`basename "$darwin_archive"`
- darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches ; do
- func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- func_extract_an_archive "`pwd`" "${darwin_base_archive}"
- cd "$darwin_curdir"
- $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
- done # $darwin_arches
- ## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_run
- ;;
- *)
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable. Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take. If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory. This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
- func_emit_wrapper_arg1=${1-no}
-
- $ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$ECHO are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- file=\"\$0\""
-
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
- $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
- ECHO=\"$qECHO\"
- fi\
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
- if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
- # special case for '.'
- if test \"\$thisdir\" = \".\"; then
- thisdir=\`pwd\`
- fi
- # remove .libs from thisdir
- case \"\$thisdir\" in
- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
- $objdir ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $ECHO "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" ||
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $MKDIR \"\$progdir\"
- else
- $RM \"\$progdir/\$file\"
- fi"
-
- $ECHO "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then :
- else
- $ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $RM \"\$progdir/\$program\";
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $RM \"\$progdir/\$file\"
- fi"
- else
- $ECHO "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $ECHO "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- # fixup the dll searchpath if we need to.
- if test -n "$dllsearchpath"; then
- $ECHO "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2* | *-cegcc*)
- $ECHO "\
- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
- ;;
-
- *)
- $ECHO "\
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
- ;;
- esac
- $ECHO "\
- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
- exit 1
- fi
- else
- # The program doesn't exist.
- \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
- \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
-}
-
-
-# func_to_host_path arg
-#
-# Convert paths to host format when used with build tools.
-# Intended for use with "native" mingw (where libtool itself
-# is running under the msys shell), or in the following cross-
-# build environments:
-# $build $host
-# mingw (msys) mingw [e.g. native]
-# cygwin mingw
-# *nix + wine mingw
-# where wine is equipped with the `winepath' executable.
-# In the native mingw case, the (msys) shell automatically
-# converts paths for any non-msys applications it launches,
-# but that facility isn't available from inside the cwrapper.
-# Similar accommodations are necessary for $host mingw and
-# $build cygwin. Calling this function does no harm for other
-# $host/$build combinations not listed above.
-#
-# ARG is the path (on $build) that should be converted to
-# the proper representation for $host. The result is stored
-# in $func_to_host_path_result.
-func_to_host_path ()
-{
- func_to_host_path_result="$1"
- if test -n "$1"; then
- case $host in
- *mingw* )
- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
- case $build in
- *mingw* ) # actually, msys
- # awkward: cmd appends spaces to result
- func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
- ;;
- *cygwin* )
- func_to_host_path_result=`cygpath -w "$1" |
- $SED -e "$lt_sed_naive_backslashify"`
- ;;
- * )
- # Unfortunately, winepath does not exit with a non-zero
- # error code, so we are forced to check the contents of
- # stdout. On the other hand, if the command is not
- # found, the shell will set an exit code of 127 and print
- # *an error message* to stdout. So we must check for both
- # error code of zero AND non-empty stdout, which explains
- # the odd construction:
- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
- func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
- $SED -e "$lt_sed_naive_backslashify"`
- else
- # Allow warning below.
- func_to_host_path_result=
- fi
- ;;
- esac
- if test -z "$func_to_host_path_result" ; then
- func_error "Could not determine host path corresponding to"
- func_error " \`$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback:
- func_to_host_path_result="$1"
- fi
- ;;
- esac
- fi
-}
-# end: func_to_host_path
-
-# func_to_host_pathlist arg
-#
-# Convert pathlists to host format when used with build tools.
-# See func_to_host_path(), above. This function supports the
-# following $build/$host combinations (but does no harm for
-# combinations not listed here):
-# $build $host
-# mingw (msys) mingw [e.g. native]
-# cygwin mingw
-# *nix + wine mingw
-#
-# Path separators are also converted from $build format to
-# $host format. If ARG begins or ends with a path separator
-# character, it is preserved (but converted to $host format)
-# on output.
-#
-# ARG is a pathlist (on $build) that should be converted to
-# the proper representation on $host. The result is stored
-# in $func_to_host_pathlist_result.
-func_to_host_pathlist ()
-{
- func_to_host_pathlist_result="$1"
- if test -n "$1"; then
- case $host in
- *mingw* )
- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
- # Remove leading and trailing path separator characters from
- # ARG. msys behavior is inconsistent here, cygpath turns them
- # into '.;' and ';.', and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_pathlist_tmp1=$func_stripname_result
- case $build in
- *mingw* ) # Actually, msys.
- # Awkward: cmd appends spaces to result.
- func_to_host_pathlist_result=`
- ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
- ;;
- *cygwin* )
- func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
- $SED -e "$lt_sed_naive_backslashify"`
- ;;
- * )
- # unfortunately, winepath doesn't convert pathlists
- func_to_host_pathlist_result=""
- func_to_host_pathlist_oldIFS=$IFS
- IFS=:
- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
- IFS=$func_to_host_pathlist_oldIFS
- if test -n "$func_to_host_pathlist_f" ; then
- func_to_host_path "$func_to_host_pathlist_f"
- if test -n "$func_to_host_path_result" ; then
- if test -z "$func_to_host_pathlist_result" ; then
- func_to_host_pathlist_result="$func_to_host_path_result"
- else
- func_append func_to_host_pathlist_result ";$func_to_host_path_result"
- fi
- fi
- fi
- done
- IFS=$func_to_host_pathlist_oldIFS
- ;;
- esac
- if test -z "$func_to_host_pathlist_result"; then
- func_error "Could not determine the host path(s) corresponding to"
- func_error " \`$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback. This may break if $1 contains DOS-style drive
- # specifications. The fix is not to complicate the expression
- # below, but for the user to provide a working wine installation
- # with winepath so that path translation in the cross-to-mingw
- # case works properly.
- lt_replace_pathsep_nix_to_dos="s|:|;|g"
- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
- $SED -e "$lt_replace_pathsep_nix_to_dos"`
- fi
- # Now, add the leading and trailing path separators back
- case "$1" in
- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
- ;;
- esac
- case "$1" in
- *: ) func_append func_to_host_pathlist_result ";"
- ;;
- esac
- ;;
- esac
- fi
-}
-# end: func_to_host_pathlist
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
- cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-
- Currently, it simply execs the wrapper *script* "$SHELL $output",
- but could eventually absorb all of the scripts functionality and
- exec $objdir/$outputname directly.
-*/
-EOF
- cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-# include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-# define _INTPTR_T_DEFINED
-# define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if (defined (_WIN32) && ! defined(__CYGWIN__)) || defined (__MSDOS__) || \
- defined (__DJGPP__) || defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-# define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-# define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#undef LTWRAPPER_DEBUGPRINTF
-#if defined LT_DEBUGWRAPPER
-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
-static void
-ltwrapper_debugprintf (const char *fmt, ...)
-{
- va_list args;
- va_start (args, fmt);
- (void) vfprintf (stderr, fmt, args);
- va_end (args);
-}
-#else
-# define LTWRAPPER_DEBUGPRINTF(args)
-#endif
-
-const char *program_name = NULL;
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
- cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_pathlist "$temp_rpath"
- cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
-EOF
- else
- cat <<"EOF"
-const char * LIB_PATH_VALUE = "";
-EOF
- fi
-
- if test -n "$dllsearchpath"; then
- func_to_host_pathlist "$dllsearchpath:"
- cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
-EOF
- else
- cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE = "";
-EOF
- fi
-
- if test "$fast_install" = yes; then
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
- else
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
- fi
-
-
- cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX "--lt-"
-#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
-
-static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-
-static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int newargc;
- char *tmp_pathspec;
- char *actual_cwrapper_path;
- char *actual_cwrapper_name;
- char *target_name;
- char *lt_argv_zero;
- intptr_t rval = 127;
-
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
- LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
- LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
-
- /* very simple arg parsing; don't want to rely on getopt */
- for (i = 1; i < argc; i++)
- {
- if (strcmp (argv[i], dumpscript_opt) == 0)
- {
-EOF
- case "$host" in
- *mingw* | *cygwin* )
- # make stdout use "unix" line endings
- echo " setmode(1,_O_BINARY);"
- ;;
- esac
-
- cat <<"EOF"
- lt_dump_script (stdout);
- return 0;
- }
- }
-
- newargz = XMALLOC (char *, argc + 1);
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
- lt_fatal ("Couldn't find %s", argv[0]);
- LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
- tmp_pathspec));
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
- actual_cwrapper_path));
- XFREE (tmp_pathspec);
-
- actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
- strendzap (actual_cwrapper_name, ".exe");
- tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
- XFREE (actual_cwrapper_name);
- actual_cwrapper_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- /* target_name transforms -- use actual target program name; might have lt- prefix */
- target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
- strendzap (target_name, ".exe");
- tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
- XFREE (target_name);
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
- target_name));
-EOF
-
- cat <<EOF
- newargz[0] =
- XMALLOC (char, (strlen (actual_cwrapper_path) +
- strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
- strcpy (newargz[0], actual_cwrapper_path);
- strcat (newargz[0], "$objdir");
- strcat (newargz[0], "/");
-EOF
-
- cat <<"EOF"
- /* stop here, and copy so we don't have to do this twice */
- tmp_pathspec = xstrdup (newargz[0]);
-
- /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
- strcat (newargz[0], actual_cwrapper_name);
-
- /* DO want the lt- prefix here if it exists, so use target_name */
- lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
- XFREE (tmp_pathspec);
- tmp_pathspec = NULL;
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- {
- char* p;
- while ((p = strchr (newargz[0], '\\')) != NULL)
- {
- *p = '/';
- }
- while ((p = strchr (lt_argv_zero, '\\')) != NULL)
- {
- *p = '/';
- }
- }
-EOF
- ;;
- esac
-
- cat <<"EOF"
- XFREE (target_name);
- XFREE (actual_cwrapper_path);
- XFREE (actual_cwrapper_name);
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
-
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal ("Unrecognized option in %s namespace: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
- LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
- for (i = 0; i < newargc; i++)
- {
- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- /* execv doesn't actually work on mingw as expected on unix */
- newargz = prepare_spawn (newargz);
- rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
- if (rval == -1)
- {
- /* failed to start process */
- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
- return 127;
- }
- return rval;
-EOF
- ;;
- *)
- cat <<"EOF"
- execv (lt_argv_zero, newargz);
- return rval; /* =127, but avoids unused variable warning */
-EOF
- ;;
- esac
-
- cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void *p = (void *) malloc (num);
- if (!p)
- lt_fatal ("Memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
- string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha ((unsigned char) name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return base;
-}
-
-int
-check_executable (const char *path)
-{
- struct stat st;
-
- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
- path ? (*path ? path : "EMPTY!") : "NULL!"));
- if ((!path) || (!*path))
- return 0;
-
- if ((stat (path, &st) >= 0)
- && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
- return 1;
- else
- return 0;
-}
-
-int
-make_executable (const char *path)
-{
- int rval = 0;
- struct stat st;
-
- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
- path ? (*path ? path : "EMPTY!") : "NULL!"));
- if ((!path) || (!*path))
- return 0;
-
- if (stat (path, &st) >= 0)
- {
- rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
- }
- return rval;
-}
-
-/* Searches for the full path of the wrapper. Returns
- newly allocated full path name if found, NULL otherwise
- Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
- int has_slash = 0;
- const char *p;
- const char *p_next;
- /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
- int tmp_len;
- char *concat_name;
-
- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n",
- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-
- /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- else
- {
-#endif
- if (IS_DIR_SEPARATOR (wrapper[0]))
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- }
-#endif
-
- for (p = wrapper; *p; p++)
- if (*p == '/')
- {
- has_slash = 1;
- break;
- }
- if (!has_slash)
- {
- /* no slashes; search PATH */
- const char *path = getenv ("PATH");
- if (path != NULL)
- {
- for (p = path; *p; p = p_next)
- {
- const char *q;
- size_t p_len;
- for (q = p; *q; q++)
- if (IS_PATH_SEPARATOR (*q))
- break;
- p_len = q - p;
- p_next = (*q == '\0' ? q : q + 1);
- if (p_len == 0)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal ("getcwd failed");
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
- }
- else
- {
- concat_name =
- XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, p, p_len);
- concat_name[p_len] = '/';
- strcpy (concat_name + p_len + 1, wrapper);
- }
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- }
- /* not found in PATH; assume curdir */
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal ("getcwd failed");
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
-
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
- return xstrdup (pathspec);
-#else
- char buf[LT_PATHMAX];
- struct stat s;
- char *tmp_pathspec = xstrdup (pathspec);
- char *p;
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
- tmp_pathspec));
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
- {
- has_symlinks = 1;
- break;
- }
-
- /* search backwards for last DIR_SEPARATOR */
- p = tmp_pathspec + strlen (tmp_pathspec) - 1;
- while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- p--;
- if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- {
- /* no more DIR_SEPARATORS left */
- break;
- }
- *p = '\0';
- }
- else
- {
- char *errstr = strerror (errno);
- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
- }
- }
- XFREE (tmp_pathspec);
-
- if (!has_symlinks)
- {
- return xstrdup (pathspec);
- }
-
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
- lt_fatal ("Could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert (str != NULL);
- assert (pat != NULL);
-
- len = strlen (str);
- patlen = strlen (pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp (str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-static void
-lt_error_core (int exit_status, const char *mode,
- const char *message, va_list ap)
-{
- fprintf (stderr, "%s: %s: ", program_name, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
- va_end (ap);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
- (name ? name : "<NULL>"),
- (value ? value : "<NULL>")));
- {
-#ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
- char *str = xstrdup (value);
- setenv (name, str, 1);
-#else
- int len = strlen (name) + 1 + strlen (value) + 1;
- char *str = XMALLOC (char, len);
- sprintf (str, "%s=%s", name, value);
- if (putenv (str) != EXIT_SUCCESS)
- {
- XFREE (str);
- }
-#endif
- }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
- char *new_value;
- if (orig_value && *orig_value)
- {
- int orig_value_len = strlen (orig_value);
- int add_len = strlen (add);
- new_value = XMALLOC (char, add_len + orig_value_len + 1);
- if (to_end)
- {
- strcpy (new_value, orig_value);
- strcpy (new_value + orig_value_len, add);
- }
- else
- {
- strcpy (new_value, add);
- strcpy (new_value + add_len, orig_value);
- }
- }
- else
- {
- new_value = xstrdup (add);
- }
- return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
- (name ? name : "<NULL>"),
- (value ? value : "<NULL>")));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- /* some systems can't cope with a ':'-terminated path #' */
- int len = strlen (new_value);
- while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
- {
- new_value[len-1] = '\0';
- }
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
- (name ? name : "<NULL>"),
- (value ? value : "<NULL>")));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-EOF
- case $host_os in
- mingw*)
- cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
- Note that spawn() does not by itself call the command interpreter
- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&v);
- v.dwPlatformId == VER_PLATFORM_WIN32_NT;
- }) ? "cmd.exe" : "command.com").
- Instead it simply concatenates the arguments, separated by ' ', and calls
- CreateProcess(). We must quote the arguments since Win32 CreateProcess()
- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
- special way:
- - Space and tab are interpreted as delimiters. They are not treated as
- delimiters if they are surrounded by double quotes: "...".
- - Unescaped double quotes are removed from the input. Their only effect is
- that within double quotes, space and tab are treated like normal
- characters.
- - Backslashes not followed by double quotes are not special.
- - But 2*n+1 backslashes followed by a double quote become
- n backslashes followed by a double quote (n >= 0):
- \" -> "
- \\\" -> \"
- \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
- size_t argc;
- char **new_argv;
- size_t i;
-
- /* Count number of arguments. */
- for (argc = 0; argv[argc] != NULL; argc++)
- ;
-
- /* Allocate new argument vector. */
- new_argv = XMALLOC (char *, argc + 1);
-
- /* Put quoted arguments into the new argument vector. */
- for (i = 0; i < argc; i++)
- {
- const char *string = argv[i];
-
- if (string[0] == '\0')
- new_argv[i] = xstrdup ("\"\"");
- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
- {
- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
- size_t length;
- unsigned int backslashes;
- const char *s;
- char *quoted_string;
- char *p;
-
- length = 0;
- backslashes = 0;
- if (quote_around)
- length++;
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- length += backslashes + 1;
- length++;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- length += backslashes + 1;
-
- quoted_string = XMALLOC (char, length + 1);
-
- p = quoted_string;
- backslashes = 0;
- if (quote_around)
- *p++ = '"';
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- {
- unsigned int j;
- for (j = backslashes + 1; j > 0; j--)
- *p++ = '\\';
- }
- *p++ = c;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- {
- unsigned int j;
- for (j = backslashes; j > 0; j--)
- *p++ = '\\';
- *p++ = '"';
- }
- *p = '\0';
-
- new_argv[i] = quoted_string;
- }
- else
- new_argv[i] = (char *) string;
- }
- new_argv[argc] = NULL;
-
- return new_argv;
-}
-EOF
- ;;
- esac
-
- cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
- func_emit_wrapper yes |
- $SED -e 's/\([\\"]\)/\\\1/g' \
- -e 's/^/ fputs ("/' -e 's/$/\\n", f);/'
-
- cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
- $opt_debug
- case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
- $opt_debug
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args=$nonopt
- base_compile="$nonopt $@"
- compile_command=$nonopt
- finalize_command=$nonopt
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
- new_inherited_linker_flags=
-
- avoid_version=no
- bindir=
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- non_pic_objects=
- precious_files_regex=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
- weak_libs=
- single_module="${wl}-single_module"
- func_infer_tag $base_compile
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- break
- ;;
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- func_warning "complete static linking is impossible in this configuration"
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- -static)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
- build_libtool_libs=no
- build_old_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- func_append compile_command " @OUTPUT@"
- func_append finalize_command " @OUTPUT@"
- ;;
- esac
-
- case $prev in
- bindir)
- bindir="$arg"
- prev=
- continue
- ;;
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- func_append compile_command " @SYMFILE@"
- func_append finalize_command " @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
- else
- dlprefiles="$dlprefiles $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- test -f "$arg" \
- || func_fatal_error "symbol file \`$arg' does not exist"
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat "$save_arg"`
- do
-# moreargs="$moreargs $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- dlfiles="$dlfiles $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- dlprefiles="$dlprefiles $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- done
- else
- func_fatal_error "link input file \`$arg' does not exist"
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- precious_regex)
- precious_files_regex="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) rpath="$rpath $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) xrpath="$xrpath $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- shrext)
- shrext_cmds="$arg"
- prev=
- continue
- ;;
- weak)
- weak_libs="$weak_libs $arg"
- prev=
- continue
- ;;
- xcclinker)
- linker_flags="$linker_flags $qarg"
- compiler_flags="$compiler_flags $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
- compiler_flags="$compiler_flags $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
- linker_flags="$linker_flags $qarg"
- compiler_flags="$compiler_flags $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- func_fatal_error "\`-allow-undefined' must not be used because it is the default"
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -bindir)
- prev=bindir
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- func_fatal_error "more than one -exported-symbols argument is not allowed"
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- func_stripname '-L' '' "$arg"
- dir=$func_stripname_result
- if test -z "$dir"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between \`-L' and \`$1'"
- else
- func_fatal_error "need path for \`-L' option"
- fi
- fi
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
- func_fatal_error "cannot determine absolute directory name of \`$dir'"
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "*) ;;
- *)
- deplibs="$deplibs -L$dir"
- lib_search_path="$lib_search_path $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
- *) dllsearchpath="$dllsearchpath:$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) dllsearchpath="$dllsearchpath:$testbindir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- deplibs="$deplibs System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-linux*)
- test "X$arg" = "X-lc" && continue
- ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- deplibs="$deplibs $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
- -model|-arch|-isysroot)
- compiler_flags="$compiler_flags $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
- continue
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
- compiler_flags="$compiler_flags $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
- esac
- continue
- ;;
-
- -multi_module)
- single_module="${wl}-multi_module"
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
- # The PATH hackery in wrapper scripts is required on Windows
- # and Darwin in order for the loader to find any dlls it needs.
- func_warning "\`-no-install' is ignored for $host"
- func_warning "assuming \`-no-fast-install' instead"
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -precious-files-regex)
- prev=precious_regex
- continue
- ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- func_stripname '-R' '' "$arg"
- dir=$func_stripname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) xrpath="$xrpath $dir" ;;
- esac
- continue
- ;;
-
- -shared)
- # The effects of -shared are defined in a previous loop.
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -static | -static-libtool-libs)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -weak)
- prev=weak
- continue
- ;;
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- arg="$arg $func_quote_for_eval_result"
- compiler_flags="$compiler_flags $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Wl,*)
- func_stripname '-Wl,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- arg="$arg $wl$func_quote_for_eval_result"
- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
- linker_flags="$linker_flags $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # -msg_* for osf cc
- -msg_*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
- # -r[0-9][0-9]* specifies the processor on the SGI compiler
- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
- # +DA*, +DD* enable 64-bit mode on the HP compiler
- # -q* pass through compiler args for the IBM compiler
- # -m*, -t[45]*, -txscale* pass through architecture-specific
- # compiler args for GCC
- # -F/path gives path to uninstalled frameworks, gcc on darwin
- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
- # @file GCC response files
- # -tp=* Portland pgcc target processor selection
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- compiler_flags="$compiler_flags $arg"
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- *.$objext)
- # A standard object.
- objs="$objs $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- dlfiles="$dlfiles $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- dlprefiles="$dlprefiles $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- deplibs="$deplibs $arg"
- old_deplibs="$old_deplibs $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- dlfiles="$dlfiles $arg"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- dlprefiles="$dlprefiles $arg"
- prev=
- else
- deplibs="$deplibs $arg"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
- done # argument parsing loop
-
- test -n "$prev" && \
- func_fatal_help "the \`$prevarg' option requires an argument"
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval "arg=\"$export_dynamic_flag_spec\""
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- func_basename "$output"
- outputname="$func_basename_result"
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval "sys_lib_search_path=\"$sys_lib_search_path_spec\""
- eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\""
-
- func_dirname "$output" "/" ""
- output_objdir="$func_dirname_result$objdir"
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
- # Determine the type of output
- case $output in
- "")
- func_fatal_help "you must specify an output file"
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if $opt_duplicate_deps ; then
- case "$libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- libs="$libs $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
- esac
- pre_post_deps="$pre_post_deps $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
-
- case $linkmode in
- lib)
- passes="conv dlpreopen link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
-
- for pass in $passes; do
- # The preopen pass in lib mode reverses $deplibs; put it back here
- # so that -L comes before libs that need it for instance...
- if test "$linkmode,$pass" = "lib,link"; then
- ## FIXME: Find the place where the list is rebuilt in the wrong
- ## order, and fix it there properly
- tmp_deplibs=
- for deplib in $deplibs; do
- tmp_deplibs="$deplib $tmp_deplibs"
- done
- deplibs="$tmp_deplibs"
- fi
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
- esac
- fi
- if test "$linkmode,$pass" = "lib,dlpreopen"; then
- # Collect and forward deplibs of preopened libtool libs
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
- case $lib in
- *.la) func_source "$lib" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
- # has declared as weak libs
- for deplib in $dependency_libs; do
- func_basename "$deplib"
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
- *) deplibs="$deplibs $deplib" ;;
- esac
- done
- done
- libs="$dlprefiles"
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
-
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- compiler_flags="$compiler_flags $deplib"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- func_warning "\`-l' is ignored for archives/objects"
- continue
- fi
- func_stripname '-l' '' "$deplib"
- name=$func_stripname_result
- if test "$linkmode" = lib; then
- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
- else
- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
- fi
- for searchdir in $searchdirs; do
- for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if func_lalib_p "$lib"; then
- library_names=
- old_library=
- func_source "$lib"
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- *.ltframework)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
- newlib_search_path="$newlib_search_path $func_stripname_result"
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
- newlib_search_path="$newlib_search_path $func_stripname_result"
- ;;
- *)
- func_warning "\`-L' is ignored for archives/objects"
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- func_stripname '-R' '' "$deplib"
- dir=$func_stripname_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) xrpath="$xrpath $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la) lib="$deplib" ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- # Linking convenience modules into shared libraries is allowed,
- # but linking other static libraries is non-portable.
- case " $dlpreconveniencelibs " in
- *" $deplib "*) ;;
- *)
- valid_a_lib=no
- case $deplibs_check_method in
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- valid_a_lib=yes
- fi
- ;;
- pass_all)
- valid_a_lib=yes
- ;;
- esac
- if test "$valid_a_lib" != yes; then
- echo
- $ECHO "*** Warning: Trying to link with static lib archive $deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because the file extensions .$libext of this argument makes me believe"
- echo "*** that it is just a static archive that I should not use here."
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the"
- $ECHO "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- ;;
- esac
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- newdlprefiles="$newdlprefiles $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- newdlfiles="$newdlfiles $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
-
- if test "$found" = yes || test -f "$lib"; then :
- else
- func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
- fi
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$lib" \
- || func_fatal_error "\`$lib' is not a valid libtool archive"
-
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- inherited_linker_flags=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
- avoidtemprpath=
-
-
- # Read the .la file
- func_source "$lib"
-
- # Convert "-framework foo" to "foo.ltframework"
- if test -n "$inherited_linker_flags"; then
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
- esac
- done
- fi
- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
- convenience="$convenience $ladir/$objdir/$old_library"
- old_convenience="$old_convenience $ladir/$objdir/$old_library"
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- func_fatal_error "\`$lib' is not a convenience library"
- fi
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_duplicate_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- for l in $old_library $library_names; do
- linklib="$l"
- done
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
- fi
- if test -z "$dlname" ||
- test "$dlopen_support" != yes ||
- test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- dlprefiles="$dlprefiles $lib $dependency_libs"
- else
- newdlfiles="$newdlfiles $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- func_warning "cannot determine absolute directory name of \`$ladir'"
- func_warning "passing it literally to the linker, although it might fail"
- abs_ladir="$ladir"
- fi
- ;;
- esac
- func_basename "$lib"
- laname="$func_basename_result"
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library \`$lib' was moved."
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$libdir"
- absdir="$libdir"
- fi
- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- dir="$ladir"
- absdir="$abs_ladir"
- # Remove this search path later
- notinst_path="$notinst_path $abs_ladir"
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- notinst_path="$notinst_path $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
- name=$func_stripname_result
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir" && test "$linkmode" = prog; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
- fi
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- newdlprefiles="$newdlprefiles $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- newdlprefiles="$newdlprefiles $dir/$dlname"
- else
- newdlprefiles="$newdlprefiles $dir/$linklib"
- fi
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- newlib_search_path="$newlib_search_path $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- newlib_search_path="$newlib_search_path $func_stripname_result"
- ;;
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if $opt_duplicate_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath:" in
- *"$absdir:"*) ;;
- *) temp_rpath="$temp_rpath$absdir:" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- use_static_libs=$prefer_static_libs
- if test "$use_static_libs" = built && test "$installed" = yes; then
- use_static_libs=no
- fi
- if test -n "$library_names" &&
- { test "$use_static_libs" = no || test -z "$old_library"; }; then
- case $host in
- *cygwin* | *mingw* | *cegcc*)
- # No point in relinking DLLs because paths are not encoded
- notinst_deplibs="$notinst_deplibs $lib"
- need_relink=no
- ;;
- *)
- if test "$installed" = no; then
- notinst_deplibs="$notinst_deplibs $lib"
- need_relink=yes
- fi
- ;;
- esac
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some
- # systems (darwin). Don't bleat about dlopened modules though!
- dlopenmodule=""
- for dlpremoduletest in $dlprefiles; do
- if test "X$dlpremoduletest" = "X$lib"; then
- dlopenmodule="$dlpremoduletest"
- break
- fi
- done
- if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
- echo
- if test "$linkmode" = prog; then
- $ECHO "*** Warning: Linking the executable $output against the loadable module"
- else
- $ECHO "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $ECHO "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- shift
- realname="$1"
- shift
- eval "libname=\"$libname_spec\""
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw* | *cegcc*)
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
- esac
- eval "soname=\"$soname_spec\""
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- func_basename "$soroot"
- soname="$func_basename_result"
- func_stripname 'lib' '.dll' "$soname"
- newlib=libimp-$func_stripname_result.a
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- func_verbose "extracting exported symbol list from \`$soname'"
- func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- func_verbose "generating import library for \`$soname'"
- func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
- *-*-sysv4*uw2*) add_dir="-L$dir" ;;
- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
- *-*-unixware7*) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a (non-dlopened) module then we can not
- # link against it, someone is ignoring the earlier warnings
- if /usr/bin/file -L $add 2> /dev/null |
- $GREP ": [^:]* bundle" >/dev/null ; then
- if test "X$dlopenmodule" != "X$lib"; then
- $ECHO "*** Warning: lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- echo
- echo "*** And there doesn't seem to be a static archive available"
- echo "*** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- elif test -n "$old_library"; then
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$absdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- add_dir="$add_dir -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- func_fatal_configuration "unsupported hardcode properties"
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes &&
- test "$hardcode_minus_L" != yes &&
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" &&
- test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- add_dir="$add_dir -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- echo
- $ECHO "*** Warning: This system can not link to static lib archive $lib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- echo "*** But as you try to build a module library, libtool will still create "
- echo "*** a static module, that should work as long as the dlopening application"
- echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- if test -n "$dependency_libs" &&
- { test "$hardcode_into_libs" != yes ||
- test "$build_old_libs" = yes ||
- test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) func_stripname '-R' '' "$libdir"
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) xrpath="$xrpath $temp_xrpath";;
- esac;;
- *) temp_deplibs="$temp_deplibs $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
- newlib_search_path="$newlib_search_path $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- if $opt_duplicate_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- path=
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- func_dirname "$deplib" "" "."
- dir="$func_dirname_result"
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- func_warning "cannot determine absolute directory name of \`$dir'"
- absdir="$dir"
- fi
- ;;
- esac
- if $GREP "^installed=no" $deplib > /dev/null; then
- case $host in
- *-*-darwin*)
- depdepl=
- deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$absdir/$objdir/$depdepl" ; then
- depdepl="$absdir/$objdir/$depdepl"
- darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- if test -z "$darwin_install_name"; then
- darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
- path=
- fi
- fi
- ;;
- *)
- path="-L$absdir/$objdir"
- ;;
- esac
- else
- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
- func_warning "\`$deplib' seems to be moved"
-
- path="-L$absdir"
- fi
- ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$path $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- if test "$pass" = link; then
- if test "$linkmode" = "prog"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- fi
- fi
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) lib_search_path="$lib_search_path $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\$$var
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) tmp_libs="$tmp_libs $deplib" ;;
- esac
- ;;
- *) tmp_libs="$tmp_libs $deplib" ;;
- esac
- done
- eval $var=\$tmp_libs
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs
- # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- tmp_libs="$tmp_libs $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- fi
- if test "$linkmode" = prog || test "$linkmode" = lib; then
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for archives"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for archives" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for archives"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for archives"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for archives"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for archives"
-
- test -n "$export_symbols$export_symbols_regex" && \
- func_warning "\`-export-symbols' is ignored for archives"
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- objs="$objs$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
- eval "shared_ext=\"$shrext_cmds\""
- eval "libname=\"$libname_spec\""
- ;;
- *)
- test "$module" = no && \
- func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
- eval "shared_ext=\"$shrext_cmds\""
- eval "libname=\"$libname_spec\""
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
- libobjs="$libobjs $objs"
- fi
- fi
-
- test "$dlself" != no && \
- func_warning "\`-dlopen self' is ignored for libtool libraries"
-
- set dummy $rpath
- shift
- test "$#" -gt 1 && \
- func_warning "ignoring multiple \`-rpath's for a libtool library"
-
- install_libdir="$1"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for convenience libraries"
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- shift
- IFS="$save_ifs"
-
- test -n "$7" && \
- func_fatal_help "too many parameters to \`-version-info'"
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$1"
- number_minor="$2"
- number_revision="$3"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- darwin|linux|osf|windows|none)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|qnx|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_minor"
- lt_irix_increment=no
- ;;
- esac
- ;;
- no)
- current="$1"
- revision="$2"
- age="$3"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "CURRENT \`$current' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $revision in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "REVISION \`$revision' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $age in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "AGE \`$age' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- func_error "AGE \`$age' is greater than the current interface number \`$current'"
- func_fatal_error "\`$vinfo' is not valid version information"
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- func_arith $current + 1
- minor_current=$func_arith_result
- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current"
- ;;
-
- irix | nonstopux)
- if test "X$lt_irix_increment" = "Xno"; then
- func_arith $current - $age
- else
- func_arith $current - $age + 1
- fi
- major=$func_arith_result
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- func_arith $revision - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- func_arith $current - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- verstring="$verstring:${current}.0"
- ;;
-
- qnx)
- major=".$current"
- versuffix=".$current"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
-
- *)
- func_fatal_configuration "unknown library version type \`$version_type'"
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- func_warning "undefined symbols not allowed in $host shared libraries"
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
-
- fi
-
- func_generate_dlsyms "$libname" "$libname" "yes"
- libobjs="$libobjs $symfileobj"
- test "X$libobjs" = "X " && libobjs=
-
- if test "$mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$ECHO "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *.gcno)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- if test "X$precious_files_regex" != "X"; then
- if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
- then
- continue
- fi
- fi
- removelist="$removelist $p"
- ;;
- *) ;;
- esac
- done
- test -n "$removelist" && \
- func_show_eval "${RM}r \$removelist"
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- #for path in $notinst_path; do
- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
- #done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- temp_xrpath="$temp_xrpath -R$libdir"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) dlfiles="$dlfiles $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) dlprefiles="$dlprefiles $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- deplibs="$deplibs System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- deplibs="$deplibs -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $opt_dry_run || $RM conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- newdeplibs="$newdeplibs $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- eval "libname=\"$libname_spec\""
- eval "deplib_matches=\"$library_names_spec\""
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- newdeplibs="$newdeplibs $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which I believe you do not have"
- echo "*** because a test_compile did reveal that the linker did not use it for"
- echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- ;;
- *)
- newdeplibs="$newdeplibs $i"
- ;;
- esac
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
- ldd_output=`ldd conftest`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- newdeplibs="$newdeplibs $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- eval "libname=\"$libname_spec\""
- eval "deplib_matches=\"$library_names_spec\""
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- newdeplibs="$newdeplibs $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because a test_compile did reveal that the linker did not use this one"
- echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- ;;
- *)
- newdeplibs="$newdeplibs $i"
- ;;
- esac
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method; shift
- file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- eval "libname=\"$libname_spec\""
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
- $GREP " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- eval "libname=\"$libname_spec\""
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
- done
- fi
- case $tmp_deplibs in
- *[!\ \ ]*)
- echo
- if test "X$deplibs_check_method" = "Xnone"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- ;;
- esac
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library with the System framework
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- echo
- echo "*** Since this library must not contain undefined symbols,"
- echo "*** because either the platform does not support them or"
- echo "*** it was explicitly requested with -no-undefined,"
- echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
- new_libs="$new_libs -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$new_libs $deplib" ;;
- esac
- ;;
- *) new_libs="$new_libs $deplib" ;;
- esac
- done
- deplibs="$new_libs"
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval "flag=\"$hardcode_libdir_flag_spec\""
- dep_rpath="$dep_rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- if test -n "$hardcode_libdir_flag_spec_ld"; then
- eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\""
- else
- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
- fi
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- eval $runpath_var=\$rpath\$$runpath_var
- export $runpath_var
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval $shlibpath_var=\$shlibpath\$$shlibpath_var
- export $shlibpath_var
- fi
-
- # Get the real and link names of the library.
- eval "shared_ext=\"$shrext_cmds\""
- eval "library_names=\"$library_names_spec\""
- set dummy $library_names
- shift
- realname="$1"
- shift
-
- if test -n "$soname_spec"; then
- eval "soname=\"$soname_spec\""
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- linknames=
- for link
- do
- linknames="$linknames $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- test "X$libobjs" = "X " && libobjs=
-
- delfiles=
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols="$output_objdir/$libname.uexp"
- delfiles="$delfiles $export_symbols"
- fi
-
- orig_export_symbols=
- case $host_os in
- cygwin* | mingw* | cegcc*)
- if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
- # exporting using user supplied symfile
- if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
- # and it's NOT already a .def file. Must figure out
- # which of the given symbols are data symbols and tag
- # them as such. So, trigger use of export_symbols_cmds.
- # export_symbols gets reassigned inside the "prepare
- # the list of exported symbols" if statement, so the
- # include_expsyms logic still works.
- orig_export_symbols="$export_symbols"
- export_symbols=
- always_export_symbols=yes
- fi
- fi
- ;;
- esac
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- eval "cmd=\"$cmd\""
- func_len " $cmd"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- func_show_eval "$cmd" 'exit $?'
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- func_verbose "using reloadable object file for export list..."
- skipped_export=:
- # Break out early, otherwise skipped_export may be
- # set to false by a later but shorter cmd.
- break
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"
- fi
-
- if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- tmp_deplibs="$tmp_deplibs $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec" &&
- test "$compiler_needs_object" = yes &&
- test -z "$libobjs"; then
- # extract the archives, so we have objects to list.
- # TODO: could optimize this to just extract one archive.
- whole_archive_flag_spec=
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\""
- test "X$libobjs" = "X " && libobjs=
- else
- gentop="$output_objdir/${outputname}x"
- generated="$generated $gentop"
-
- func_extract_archives $gentop $convenience
- libobjs="$libobjs $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval "flag=\"$thread_safe_flag_spec\""
- linker_flags="$linker_flags $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$mode" = relink; then
- $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $?
- fi
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval "test_cmds=\"$module_expsym_cmds\""
- cmds=$module_expsym_cmds
- else
- eval "test_cmds=\"$module_cmds\""
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval "test_cmds=\"$archive_expsym_cmds\""
- cmds=$archive_expsym_cmds
- else
- eval "test_cmds=\"$archive_cmds\""
- cmds=$archive_cmds
- fi
- fi
-
- if test "X$skipped_export" != "X:" &&
- func_len " $test_cmds" &&
- len=$func_len_result &&
- test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise
- # or, if using GNU ld and skipped_export is not :, use a linker
- # script.
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
- func_basename "$output"
- output_la=$func_basename_result
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- last_robj=
- k=1
-
- if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
- output=${output_objdir}/${output_la}.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- $ECHO "$obj" >> $output
- done
- echo ')' >> $output
- delfiles="$delfiles $output"
- elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
- output=${output_objdir}/${output_la}.lnk
- func_verbose "creating linker input file list: $output"
- : > $output
- set x $save_libobjs
- shift
- firstobj=
- if test "$compiler_needs_object" = yes; then
- firstobj="$1 "
- shift
- fi
- for obj
- do
- $ECHO "$obj" >> $output
- done
- delfiles="$delfiles $output"
- output=$firstobj\"$file_list_spec$output\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-${k}.$objext
- eval "test_cmds=\"$reload_cmds\""
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- if test "X$objlist" = X ||
- test "$len" -lt "$max_cmd_len"; then
- func_append objlist " $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
- eval "concat_cmds=\"$reload_cmds\""
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
- eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\""
- fi
- last_robj=$output_objdir/$output_la-${k}.$objext
- func_arith $k + 1
- k=$func_arith_result
- output=$output_objdir/$output_la-${k}.$objext
- objlist=" $obj"
- func_len " $last_robj"
- func_arith $len0 + $func_len_result
- len=$func_arith_result
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
- eval "concat_cmds=\"\${concat_cmds}$reload_cmds\""
- if test -n "$last_robj"; then
- eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\""
- fi
- delfiles="$delfiles $output"
-
- else
- output=
- fi
-
- if ${skipped_export-false}; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\""
- if test -n "$last_robj"; then
- eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\""
- fi
- fi
-
- test -n "$save_libobjs" &&
- func_verbose "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- if test -n "$export_symbols_regex" && ${skipped_export-false}; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
-
- if ${skipped_export-false}; then
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"
- fi
-
- if test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
- fi
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\""
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- cmds=$module_expsym_cmds
- else
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- cmds=$archive_expsym_cmds
- else
- cmds=$archive_cmds
- fi
- fi
- fi
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
- eval "cmds=\"\$cmds~\$RM $delfiles\""
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- generated="$generated $gentop"
-
- func_extract_archives $gentop $dlprefiles
- libobjs="$libobjs $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- eval "cmd=\"$cmd\""
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$mode" = relink; then
- $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
- func_show_eval '${RM}r "$gentop"'
- fi
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for objects"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for objects" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for objects"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for objects"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for objects"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for objects"
-
- case $output in
- *.lo)
- test -n "$objs$old_deplibs" && \
- func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
- libobj=$output
- func_lo2o "$libobj"
- obj=$func_lo2o_result
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $opt_dry_run || $RM $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\""
- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- else
- gentop="$output_objdir/${obj}x"
- generated="$generated $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- func_execute_cmds "$reload_cmds" 'exit $?'
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $opt_dry_run || echo timestamp > $libobj || exit $?
- exit $EXIT_SUCCESS
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- func_execute_cmds "$reload_cmds" 'exit $?'
- fi
-
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- ;;
-
- prog)
- case $host in
- *cygwin*) func_stripname '' '.exe' "$output"
- output=$func_stripname_result.exe;;
- esac
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for programs"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for programs"
-
- test "$preload" = yes \
- && test "$dlopen_support" = unknown \
- && test "$dlopen_self" = unknown \
- && test "$dlopen_self_static" = unknown && \
- func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- # But is supposedly fixed on 10.4 or later (yay!).
- if test "$tagname" = CXX ; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
- compile_command="$compile_command ${wl}-bind_at_load"
- finalize_command="$finalize_command ${wl}-bind_at_load"
- ;;
- esac
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
- new_libs="$new_libs -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $compile_deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$new_libs $deplib" ;;
- esac
- ;;
- *) new_libs="$new_libs $deplib" ;;
- esac
- done
- compile_deplibs="$new_libs"
-
-
- compile_command="$compile_command $compile_deplibs"
- finalize_command="$finalize_command $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval "flag=\"$hardcode_libdir_flag_spec\""
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
- *) dllsearchpath="$dllsearchpath:$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) dllsearchpath="$dllsearchpath:$testbindir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval "rpath=\" $hardcode_libdir_flag_spec\""
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval "flag=\"$hardcode_libdir_flag_spec\""
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval "rpath=\" $hardcode_libdir_flag_spec\""
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- fi
-
- func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
- # template prelinking step
- if test -n "$prelink_cmds"; then
- func_execute_cmds "$prelink_cmds" 'exit $?'
- fi
-
- wrappers_required=yes
- case $host in
- *cegcc* | *mingw32ce*)
- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
- wrappers_required=no
- ;;
- *cygwin* | *mingw* )
- if test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- *)
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- esac
- if test "$wrappers_required" = no; then
- # Replace the output file specification.
- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.${objext}"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
- fi
-
- exit $exit_status
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- rpath="$rpath$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
- exit $EXIT_SUCCESS
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- func_warning "this platform does not like uninstalled shared libraries"
- func_warning "\`$output' will be relinked during installation"
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- func_show_eval "$link_command" 'exit $?'
-
- # Now create the wrapper script.
- func_verbose "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- fi
-
- # Only actually do things if not in dry run mode.
- $opt_dry_run || {
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) func_stripname '' '.exe' "$output"
- output=$func_stripname_result ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- func_stripname '' '.exe' "$outputname"
- outputname=$func_stripname_result ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- func_dirname_and_basename "$output" "" "."
- output_name=$func_basename_result
- output_path=$func_dirname_result
- cwrappersource="$output_path/$objdir/lt-$output_name.c"
- cwrapper="$output_path/$output_name.exe"
- $RM $cwrappersource $cwrapper
- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_cwrapperexe_src > $cwrappersource
-
- # The wrapper executable is built using the $host compiler,
- # because it contains $host paths and files. If cross-
- # compiling, it, like the target executable, must be
- # executed on the $host or under an emulation environment.
- $opt_dry_run || {
- $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
- $STRIP $cwrapper
- }
-
- # Now, create the wrapper script for func_source use:
- func_ltwrapper_scriptname $cwrapper
- $RM $func_ltwrapper_scriptname_result
- trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
- $opt_dry_run || {
- # note: this script will not be executed, so do not chmod.
- if test "x$build" = "x$host" ; then
- $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
- else
- func_emit_wrapper no > $func_ltwrapper_scriptname_result
- fi
- }
- ;;
- * )
- $RM $output
- trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_wrapper no > $output
- chmod +x $output
- ;;
- esac
- }
- exit $EXIT_SUCCESS
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save $symfileobj"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- if test "$preload" = yes && test -f "$symfileobj"; then
- oldobjs="$oldobjs $symfileobj"
- fi
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- generated="$generated $gentop"
-
- func_extract_archives $gentop $addlibs
- oldobjs="$oldobjs $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- cmds=$old_archive_from_new_cmds
- else
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- generated="$generated $gentop"
-
- func_extract_archives $gentop $dlprefiles
- oldobjs="$oldobjs $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
- # to avoid creating archives with duplicate basenames if we
- # might have to extract them afterwards, e.g., when creating a
- # static archive out of a convenience library, or when linking
- # the entirety of a libtool archive into another (currently
- # not supported by libtool).
- if (for obj in $oldobjs
- do
- func_basename "$obj"
- $ECHO "$func_basename_result"
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop="$output_objdir/${outputname}x"
- generated="$generated $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
- counter=1
- for obj in $save_oldobjs
- do
- func_basename "$obj"
- objbase="$func_basename_result"
- case " $oldobjs " in
- " ") oldobjs=$obj ;;
- *[\ /]"$objbase "*)
- while :; do
- # Make sure we don't pick an alternate name that also
- # overlaps.
- newobj=lt$counter-$objbase
- func_arith $counter + 1
- counter=$func_arith_result
- case " $oldobjs " in
- *[\ /]"$newobj "*) ;;
- *) if test ! -f "$gentop/$newobj"; then break; fi ;;
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
- oldobjs="$oldobjs $gentop/$newobj"
- ;;
- *) oldobjs="$oldobjs $obj" ;;
- esac
- done
- fi
- eval "cmds=\"$old_archive_cmds\""
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- oldobjs=
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- eval "test_cmds=\"$old_archive_cmds\""
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
- for obj in $save_oldobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- func_append objlist " $obj"
- if test "$len" -lt "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\""
- objlist=
- len=$len0
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval "cmds=\"\$concat_cmds\""
- else
- eval "cmds=\"\$concat_cmds~\$old_archive_cmds\""
- fi
- fi
- fi
- func_execute_cmds "$cmds" 'exit $?'
- done
-
- test -n "$generated" && \
- func_show_eval "${RM}r$generated"
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- func_verbose "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
-
- # Only create the output if not a dry run.
- $opt_dry_run || {
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- func_basename "$deplib"
- name="$func_basename_result"
- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- newdependency_libs="$newdependency_libs $libdir/$name"
- ;;
- *) newdependency_libs="$newdependency_libs $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
-
- for lib in $dlfiles; do
- case $lib in
- *.la)
- func_basename "$lib"
- name="$func_basename_result"
- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- newdlfiles="$newdlfiles $libdir/$name"
- ;;
- *) newdlfiles="$newdlfiles $lib" ;;
- esac
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- *.la)
- # Only pass preopened files to the pseudo-archive (for
- # eventual linking with the app. that links it) if we
- # didn't already link the preopened objects directly into
- # the library:
- func_basename "$lib"
- name="$func_basename_result"
- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- newdlprefiles="$newdlprefiles $libdir/$name"
- ;;
- esac
- done
- dlprefiles="$newdlprefiles"
- else
- newdlfiles=
- for lib in $dlfiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- newdlfiles="$newdlfiles $abs"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- newdlprefiles="$newdlprefiles $abs"
- done
- dlprefiles="$newdlprefiles"
- fi
- $RM $output
- # place dlname in correct position for cygwin
- # In fact, it would be nice if we could use this code for all target
- # systems that can't hard-code library paths into their executables
- # and that have no shared library path variable independent of PATH,
- # but it turns out we can't easily determine that from inspecting
- # libtool variables, so we have to hard-code the OSs to which it
- # applies here; at the moment, that means platforms that use the PE
- # object format with DLL files. See the long comment at the top of
- # tests/bindir.at for full details.
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
- # If a -bindir argument was supplied, place the dll there.
- if test "x$bindir" != x ;
- then
- func_relative_path "$install_libdir" "$bindir"
- tdlname=$func_relative_path_result$dlname
- else
- # Otherwise fall back on heuristic.
- tdlname=../bin/$dlname
- fi
- ;;
- esac
- $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes; then
- $ECHO >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- }
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
- ;;
- esac
- exit $EXIT_SUCCESS
-}
-
-{ test "$mode" = link || test "$mode" = relink; } &&
- func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
- $opt_debug
- RM="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) RM="$RM $arg"; rmforce=yes ;;
- -*) RM="$RM $arg" ;;
- *) files="$files $arg" ;;
- esac
- done
-
- test -z "$RM" && \
- func_fatal_help "you must specify an RM program"
-
- rmdirs=
-
- origobjdir="$objdir"
- for file in $files; do
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- if test "X$dir" = X.; then
- objdir="$origobjdir"
- else
- objdir="$dir/$origobjdir"
- fi
- func_basename "$file"
- name="$func_basename_result"
- test "$mode" = uninstall && objdir="$dir"
-
- # Remember objdir for removal later, being careful to avoid duplicates
- if test "$mode" = clean; then
- case " $rmdirs " in
- *" $objdir "*) ;;
- *) rmdirs="$rmdirs $objdir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if { test -L "$file"; } >/dev/null 2>&1 ||
- { test -h "$file"; } >/dev/null 2>&1 ||
- test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if func_lalib_p "$file"; then
- func_source $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- rmfiles="$rmfiles $objdir/$n"
- done
- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-
- case "$mode" in
- clean)
- case " $library_names " in
- # " " in the beginning catches empty $dlname
- *" $dlname "*) ;;
- *) rmfiles="$rmfiles $objdir/$dlname" ;;
- esac
- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
- # FIXME: should reinstall the best remaining shared library.
- ;;
- esac
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if func_lalib_p "$file"; then
-
- # Read the .lo file
- func_source $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" &&
- test "$pic_object" != none; then
- rmfiles="$rmfiles $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" &&
- test "$non_pic_object" != none; then
- rmfiles="$rmfiles $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- func_stripname '' '.exe' "$name"
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- rmfiles="$rmfiles $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if func_ltwrapper_p "$file"; then
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
- rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
- fi
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- rmfiles="$rmfiles $objdir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- rmfiles="$rmfiles $objdir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
- objdir="$origobjdir"
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- func_show_eval "rmdir $dir >/dev/null 2>&1"
- fi
- done
-
- exit $exit_status
-}
-
-{ test "$mode" = uninstall || test "$mode" = clean; } &&
- func_mode_uninstall ${1+"$@"}
-
-test -z "$mode" && {
- help="$generic_help"
- func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
- func_fatal_help "invalid operation mode \`$mode'"
-
-if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
- exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
-
diff --git a/fluent-bit/lib/libbacktrace-8602fda/ltoptions.m4 b/fluent-bit/lib/libbacktrace-8602fda/ltoptions.m4
deleted file mode 100644
index 5ef12ced2..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/ltoptions.m4
+++ /dev/null
@@ -1,369 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [pic_mode="$withval"],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/ltsugar.m4 b/fluent-bit/lib/libbacktrace-8602fda/ltsugar.m4
deleted file mode 100644
index 9000a057d..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/ltversion.m4 b/fluent-bit/lib/libbacktrace-8602fda/ltversion.m4
deleted file mode 100644
index bf87f7713..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# Generated from ltversion.in.
-
-# serial 3134 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.2.7a])
-m4_define([LT_PACKAGE_REVISION], [1.3134])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.7a'
-macro_revision='1.3134'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/lt~obsolete.m4 b/fluent-bit/lib/libbacktrace-8602fda/lt~obsolete.m4
deleted file mode 100644
index bf92b5e07..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 4 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/fluent-bit/lib/libbacktrace-8602fda/macho.c b/fluent-bit/lib/libbacktrace-8602fda/macho.c
deleted file mode 100644
index d00aea9bc..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/macho.c
+++ /dev/null
@@ -1,1355 +0,0 @@
-/* elf.c -- Get debug data from a Mach-O file for backtraces.
- Copyright (C) 2020-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <sys/types.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef HAVE_MACH_O_DYLD_H
-#include <mach-o/dyld.h>
-#endif
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* Mach-O file header for a 32-bit executable. */
-
-struct macho_header_32
-{
- uint32_t magic; /* Magic number (MACH_O_MAGIC_32) */
- uint32_t cputype; /* CPU type */
- uint32_t cpusubtype; /* CPU subtype */
- uint32_t filetype; /* Type of file (object, executable) */
- uint32_t ncmds; /* Number of load commands */
- uint32_t sizeofcmds; /* Total size of load commands */
- uint32_t flags; /* Flags for special features */
-};
-
-/* Mach-O file header for a 64-bit executable. */
-
-struct macho_header_64
-{
- uint32_t magic; /* Magic number (MACH_O_MAGIC_64) */
- uint32_t cputype; /* CPU type */
- uint32_t cpusubtype; /* CPU subtype */
- uint32_t filetype; /* Type of file (object, executable) */
- uint32_t ncmds; /* Number of load commands */
- uint32_t sizeofcmds; /* Total size of load commands */
- uint32_t flags; /* Flags for special features */
- uint32_t reserved; /* Reserved */
-};
-
-/* Mach-O file header for a fat executable. */
-
-struct macho_header_fat
-{
- uint32_t magic; /* Magic number (MACH_O_MH_(MAGIC|CIGAM)_FAT(_64)?) */
- uint32_t nfat_arch; /* Number of components */
-};
-
-/* Values for the header magic field. */
-
-#define MACH_O_MH_MAGIC_32 0xfeedface
-#define MACH_O_MH_MAGIC_64 0xfeedfacf
-#define MACH_O_MH_MAGIC_FAT 0xcafebabe
-#define MACH_O_MH_CIGAM_FAT 0xbebafeca
-#define MACH_O_MH_MAGIC_FAT_64 0xcafebabf
-#define MACH_O_MH_CIGAM_FAT_64 0xbfbafeca
-
-/* Value for the header filetype field. */
-
-#define MACH_O_MH_EXECUTE 0x02
-#define MACH_O_MH_DYLIB 0x06
-#define MACH_O_MH_DSYM 0x0a
-
-/* A component of a fat file. A fat file starts with a
- macho_header_fat followed by nfat_arch instances of this
- struct. */
-
-struct macho_fat_arch
-{
- uint32_t cputype; /* CPU type */
- uint32_t cpusubtype; /* CPU subtype */
- uint32_t offset; /* File offset of this entry */
- uint32_t size; /* Size of this entry */
- uint32_t align; /* Alignment of this entry */
-};
-
-/* A component of a 64-bit fat file. This is used if the magic field
- is MAGIC_FAT_64. This is only used when some file size or file
- offset is too large to represent in the 32-bit format. */
-
-struct macho_fat_arch_64
-{
- uint32_t cputype; /* CPU type */
- uint32_t cpusubtype; /* CPU subtype */
- uint64_t offset; /* File offset of this entry */
- uint64_t size; /* Size of this entry */
- uint32_t align; /* Alignment of this entry */
- uint32_t reserved; /* Reserved */
-};
-
-/* Values for the fat_arch cputype field (and the header cputype
- field). */
-
-#define MACH_O_CPU_ARCH_ABI64 0x01000000
-
-#define MACH_O_CPU_TYPE_X86 7
-#define MACH_O_CPU_TYPE_ARM 12
-#define MACH_O_CPU_TYPE_PPC 18
-
-#define MACH_O_CPU_TYPE_X86_64 (MACH_O_CPU_TYPE_X86 | MACH_O_CPU_ARCH_ABI64)
-#define MACH_O_CPU_TYPE_ARM64 (MACH_O_CPU_TYPE_ARM | MACH_O_CPU_ARCH_ABI64)
-#define MACH_O_CPU_TYPE_PPC64 (MACH_O_CPU_TYPE_PPC | MACH_O_CPU_ARCH_ABI64)
-
-/* The header of a load command. */
-
-struct macho_load_command
-{
- uint32_t cmd; /* The type of load command */
- uint32_t cmdsize; /* Size in bytes of the entire command */
-};
-
-/* Values for the load_command cmd field. */
-
-#define MACH_O_LC_SEGMENT 0x01
-#define MACH_O_LC_SYMTAB 0x02
-#define MACH_O_LC_SEGMENT_64 0x19
-#define MACH_O_LC_UUID 0x1b
-
-/* The length of a section of segment name. */
-
-#define MACH_O_NAMELEN (16)
-
-/* LC_SEGMENT load command. */
-
-struct macho_segment_command
-{
- uint32_t cmd; /* The type of load command (LC_SEGMENT) */
- uint32_t cmdsize; /* Size in bytes of the entire command */
- char segname[MACH_O_NAMELEN]; /* Segment name */
- uint32_t vmaddr; /* Virtual memory address */
- uint32_t vmsize; /* Virtual memory size */
- uint32_t fileoff; /* Offset of data to be mapped */
- uint32_t filesize; /* Size of data in file */
- uint32_t maxprot; /* Maximum permitted virtual protection */
- uint32_t initprot; /* Initial virtual memory protection */
- uint32_t nsects; /* Number of sections in this segment */
- uint32_t flags; /* Flags */
-};
-
-/* LC_SEGMENT_64 load command. */
-
-struct macho_segment_64_command
-{
- uint32_t cmd; /* The type of load command (LC_SEGMENT) */
- uint32_t cmdsize; /* Size in bytes of the entire command */
- char segname[MACH_O_NAMELEN]; /* Segment name */
- uint64_t vmaddr; /* Virtual memory address */
- uint64_t vmsize; /* Virtual memory size */
- uint64_t fileoff; /* Offset of data to be mapped */
- uint64_t filesize; /* Size of data in file */
- uint32_t maxprot; /* Maximum permitted virtual protection */
- uint32_t initprot; /* Initial virtual memory protection */
- uint32_t nsects; /* Number of sections in this segment */
- uint32_t flags; /* Flags */
-};
-
-/* LC_SYMTAB load command. */
-
-struct macho_symtab_command
-{
- uint32_t cmd; /* The type of load command (LC_SEGMENT) */
- uint32_t cmdsize; /* Size in bytes of the entire command */
- uint32_t symoff; /* File offset of symbol table */
- uint32_t nsyms; /* Number of symbols */
- uint32_t stroff; /* File offset of string table */
- uint32_t strsize; /* String table size */
-};
-
-/* The length of a Mach-O uuid. */
-
-#define MACH_O_UUID_LEN (16)
-
-/* LC_UUID load command. */
-
-struct macho_uuid_command
-{
- uint32_t cmd; /* Type of load command (LC_UUID) */
- uint32_t cmdsize; /* Size in bytes of command */
- unsigned char uuid[MACH_O_UUID_LEN]; /* UUID */
-};
-
-/* 32-bit section header within a LC_SEGMENT segment. */
-
-struct macho_section
-{
- char sectname[MACH_O_NAMELEN]; /* Section name */
- char segment[MACH_O_NAMELEN]; /* Segment of this section */
- uint32_t addr; /* Address in memory */
- uint32_t size; /* Section size */
- uint32_t offset; /* File offset */
- uint32_t align; /* Log2 of section alignment */
- uint32_t reloff; /* File offset of relocations */
- uint32_t nreloc; /* Number of relocs for this section */
- uint32_t flags; /* Flags */
- uint32_t reserved1;
- uint32_t reserved2;
-};
-
-/* 64-bit section header within a LC_SEGMENT_64 segment. */
-
-struct macho_section_64
-{
- char sectname[MACH_O_NAMELEN]; /* Section name */
- char segment[MACH_O_NAMELEN]; /* Segment of this section */
- uint64_t addr; /* Address in memory */
- uint64_t size; /* Section size */
- uint32_t offset; /* File offset */
- uint32_t align; /* Log2 of section alignment */
- uint32_t reloff; /* File offset of section relocations */
- uint32_t nreloc; /* Number of relocs for this section */
- uint32_t flags; /* Flags */
- uint32_t reserved1;
- uint32_t reserved2;
- uint32_t reserved3;
-};
-
-/* 32-bit symbol data. */
-
-struct macho_nlist
-{
- uint32_t n_strx; /* Index of name in string table */
- uint8_t n_type; /* Type flag */
- uint8_t n_sect; /* Section number */
- uint16_t n_desc; /* Stabs description field */
- uint32_t n_value; /* Value */
-};
-
-/* 64-bit symbol data. */
-
-struct macho_nlist_64
-{
- uint32_t n_strx; /* Index of name in string table */
- uint8_t n_type; /* Type flag */
- uint8_t n_sect; /* Section number */
- uint16_t n_desc; /* Stabs description field */
- uint64_t n_value; /* Value */
-};
-
-/* Value found in nlist n_type field. */
-
-#define MACH_O_N_EXT 0x01 /* Extern symbol */
-#define MACH_O_N_ABS 0x02 /* Absolute symbol */
-#define MACH_O_N_SECT 0x0e /* Defined in section */
-
-#define MACH_O_N_TYPE 0x0e /* Mask for type bits */
-#define MACH_O_N_STAB 0xe0 /* Stabs debugging symbol */
-
-/* Information we keep for a Mach-O symbol. */
-
-struct macho_symbol
-{
- const char *name; /* Symbol name */
- uintptr_t address; /* Symbol address */
-};
-
-/* Information to pass to macho_syminfo. */
-
-struct macho_syminfo_data
-{
- struct macho_syminfo_data *next; /* Next module */
- struct macho_symbol *symbols; /* Symbols sorted by address */
- size_t count; /* Number of symbols */
-};
-
-/* Names of sections, indexed by enum dwarf_section in internal.h. */
-
-static const char * const dwarf_section_names[DEBUG_MAX] =
-{
- "__debug_info",
- "__debug_line",
- "__debug_abbrev",
- "__debug_ranges",
- "__debug_str",
- "", /* DEBUG_ADDR */
- "__debug_str_offs",
- "", /* DEBUG_LINE_STR */
- "__debug_rnglists"
-};
-
-/* Forward declaration. */
-
-static int macho_add (struct backtrace_state *, const char *, int, off_t,
- const unsigned char *, uintptr_t, int,
- backtrace_error_callback, void *, fileline *, int *);
-
-/* A dummy callback function used when we can't find any debug info. */
-
-static int
-macho_nodebug (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t pc ATTRIBUTE_UNUSED,
- backtrace_full_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data, "no debug info in Mach-O executable", -1);
- return 0;
-}
-
-/* A dummy callback function used when we can't find a symbol
- table. */
-
-static void
-macho_nosyms (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t addr ATTRIBUTE_UNUSED,
- backtrace_syminfo_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data, "no symbol table in Mach-O executable", -1);
-}
-
-/* Add a single DWARF section to DWARF_SECTIONS, if we need the
- section. Returns 1 on success, 0 on failure. */
-
-static int
-macho_add_dwarf_section (struct backtrace_state *state, int descriptor,
- const char *sectname, uint32_t offset, uint64_t size,
- backtrace_error_callback error_callback, void *data,
- struct dwarf_sections *dwarf_sections)
-{
- int i;
-
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- if (dwarf_section_names[i][0] != '\0'
- && strncmp (sectname, dwarf_section_names[i], MACH_O_NAMELEN) == 0)
- {
- struct backtrace_view section_view;
-
- /* FIXME: Perhaps it would be better to try to use a single
- view to read all the DWARF data, as we try to do for
- ELF. */
-
- if (!backtrace_get_view (state, descriptor, offset, size,
- error_callback, data, &section_view))
- return 0;
- dwarf_sections->data[i] = (const unsigned char *) section_view.data;
- dwarf_sections->size[i] = size;
- break;
- }
- }
- return 1;
-}
-
-/* Collect DWARF sections from a DWARF segment. Returns 1 on success,
- 0 on failure. */
-
-static int
-macho_add_dwarf_segment (struct backtrace_state *state, int descriptor,
- off_t offset, unsigned int cmd, const char *psecs,
- size_t sizesecs, unsigned int nsects,
- backtrace_error_callback error_callback, void *data,
- struct dwarf_sections *dwarf_sections)
-{
- size_t sec_header_size;
- size_t secoffset;
- unsigned int i;
-
- switch (cmd)
- {
- case MACH_O_LC_SEGMENT:
- sec_header_size = sizeof (struct macho_section);
- break;
- case MACH_O_LC_SEGMENT_64:
- sec_header_size = sizeof (struct macho_section_64);
- break;
- default:
- abort ();
- }
-
- secoffset = 0;
- for (i = 0; i < nsects; ++i)
- {
- if (secoffset + sec_header_size > sizesecs)
- {
- error_callback (data, "section overflow withing segment", 0);
- return 0;
- }
-
- switch (cmd)
- {
- case MACH_O_LC_SEGMENT:
- {
- struct macho_section section;
-
- memcpy (&section, psecs + secoffset, sizeof section);
- macho_add_dwarf_section (state, descriptor, section.sectname,
- offset + section.offset, section.size,
- error_callback, data, dwarf_sections);
- }
- break;
-
- case MACH_O_LC_SEGMENT_64:
- {
- struct macho_section_64 section;
-
- memcpy (&section, psecs + secoffset, sizeof section);
- macho_add_dwarf_section (state, descriptor, section.sectname,
- offset + section.offset, section.size,
- error_callback, data, dwarf_sections);
- }
- break;
-
- default:
- abort ();
- }
-
- secoffset += sec_header_size;
- }
-
- return 1;
-}
-
-/* Compare struct macho_symbol for qsort. */
-
-static int
-macho_symbol_compare (const void *v1, const void *v2)
-{
- const struct macho_symbol *m1 = (const struct macho_symbol *) v1;
- const struct macho_symbol *m2 = (const struct macho_symbol *) v2;
-
- if (m1->address < m2->address)
- return -1;
- else if (m1->address > m2->address)
- return 1;
- else
- return 0;
-}
-
-/* Compare an address against a macho_symbol for bsearch. We allocate
- one extra entry in the array so that this can safely look at the
- next entry. */
-
-static int
-macho_symbol_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct macho_symbol *entry = (const struct macho_symbol *) ventry;
- uintptr_t addr;
-
- addr = *key;
- if (addr < entry->address)
- return -1;
- else if (entry->name[0] == '\0'
- && entry->address == ~(uintptr_t) 0)
- return -1;
- else if ((entry + 1)->name[0] == '\0'
- && (entry + 1)->address == ~(uintptr_t) 0)
- return -1;
- else if (addr >= (entry + 1)->address)
- return 1;
- else
- return 0;
-}
-
-/* Return whether the symbol type field indicates a symbol table entry
- that we care about: a function or data symbol. */
-
-static int
-macho_defined_symbol (uint8_t type)
-{
- if ((type & MACH_O_N_STAB) != 0)
- return 0;
- if ((type & MACH_O_N_EXT) != 0)
- return 0;
- switch (type & MACH_O_N_TYPE)
- {
- case MACH_O_N_ABS:
- return 1;
- case MACH_O_N_SECT:
- return 1;
- default:
- return 0;
- }
-}
-
-/* Add symbol table information for a Mach-O file. */
-
-static int
-macho_add_symtab (struct backtrace_state *state, int descriptor,
- uintptr_t base_address, int is_64,
- off_t symoff, unsigned int nsyms, off_t stroff,
- unsigned int strsize,
- backtrace_error_callback error_callback, void *data)
-{
- size_t symsize;
- struct backtrace_view sym_view;
- int sym_view_valid;
- struct backtrace_view str_view;
- int str_view_valid;
- size_t ndefs;
- size_t symtaboff;
- unsigned int i;
- size_t macho_symbol_size;
- struct macho_symbol *macho_symbols;
- unsigned int j;
- struct macho_syminfo_data *sdata;
-
- sym_view_valid = 0;
- str_view_valid = 0;
- macho_symbol_size = 0;
- macho_symbols = NULL;
-
- if (is_64)
- symsize = sizeof (struct macho_nlist_64);
- else
- symsize = sizeof (struct macho_nlist);
-
- if (!backtrace_get_view (state, descriptor, symoff, nsyms * symsize,
- error_callback, data, &sym_view))
- goto fail;
- sym_view_valid = 1;
-
- if (!backtrace_get_view (state, descriptor, stroff, strsize,
- error_callback, data, &str_view))
- return 0;
- str_view_valid = 1;
-
- ndefs = 0;
- symtaboff = 0;
- for (i = 0; i < nsyms; ++i, symtaboff += symsize)
- {
- if (is_64)
- {
- struct macho_nlist_64 nlist;
-
- memcpy (&nlist, (const char *) sym_view.data + symtaboff,
- sizeof nlist);
- if (macho_defined_symbol (nlist.n_type))
- ++ndefs;
- }
- else
- {
- struct macho_nlist nlist;
-
- memcpy (&nlist, (const char *) sym_view.data + symtaboff,
- sizeof nlist);
- if (macho_defined_symbol (nlist.n_type))
- ++ndefs;
- }
- }
-
- /* Add 1 to ndefs to make room for a sentinel. */
- macho_symbol_size = (ndefs + 1) * sizeof (struct macho_symbol);
- macho_symbols = ((struct macho_symbol *)
- backtrace_alloc (state, macho_symbol_size, error_callback,
- data));
- if (macho_symbols == NULL)
- goto fail;
-
- j = 0;
- symtaboff = 0;
- for (i = 0; i < nsyms; ++i, symtaboff += symsize)
- {
- uint32_t strx;
- uint64_t value;
- const char *name;
-
- strx = 0;
- value = 0;
- if (is_64)
- {
- struct macho_nlist_64 nlist;
-
- memcpy (&nlist, (const char *) sym_view.data + symtaboff,
- sizeof nlist);
- if (!macho_defined_symbol (nlist.n_type))
- continue;
-
- strx = nlist.n_strx;
- value = nlist.n_value;
- }
- else
- {
- struct macho_nlist nlist;
-
- memcpy (&nlist, (const char *) sym_view.data + symtaboff,
- sizeof nlist);
- if (!macho_defined_symbol (nlist.n_type))
- continue;
-
- strx = nlist.n_strx;
- value = nlist.n_value;
- }
-
- if (strx >= strsize)
- {
- error_callback (data, "symbol string index out of range", 0);
- goto fail;
- }
-
- name = (const char *) str_view.data + strx;
- if (name[0] == '_')
- ++name;
- macho_symbols[j].name = name;
- macho_symbols[j].address = value + base_address;
- ++j;
- }
-
- sdata = ((struct macho_syminfo_data *)
- backtrace_alloc (state, sizeof *sdata, error_callback, data));
- if (sdata == NULL)
- goto fail;
-
- /* We need to keep the string table since it holds the names, but we
- can release the symbol table. */
-
- backtrace_release_view (state, &sym_view, error_callback, data);
- sym_view_valid = 0;
- str_view_valid = 0;
-
- /* Add a trailing sentinel symbol. */
- macho_symbols[j].name = "";
- macho_symbols[j].address = ~(uintptr_t) 0;
-
- backtrace_qsort (macho_symbols, ndefs + 1, sizeof (struct macho_symbol),
- macho_symbol_compare);
-
- sdata->next = NULL;
- sdata->symbols = macho_symbols;
- sdata->count = ndefs;
-
- if (!state->threaded)
- {
- struct macho_syminfo_data **pp;
-
- for (pp = (struct macho_syminfo_data **) (void *) &state->syminfo_data;
- *pp != NULL;
- pp = &(*pp)->next)
- ;
- *pp = sdata;
- }
- else
- {
- while (1)
- {
- struct macho_syminfo_data **pp;
-
- pp = (struct macho_syminfo_data **) (void *) &state->syminfo_data;
-
- while (1)
- {
- struct macho_syminfo_data *p;
-
- p = backtrace_atomic_load_pointer (pp);
-
- if (p == NULL)
- break;
-
- pp = &p->next;
- }
-
- if (__sync_bool_compare_and_swap (pp, NULL, sdata))
- break;
- }
- }
-
- return 1;
-
- fail:
- if (macho_symbols != NULL)
- backtrace_free (state, macho_symbols, macho_symbol_size,
- error_callback, data);
- if (sym_view_valid)
- backtrace_release_view (state, &sym_view, error_callback, data);
- if (str_view_valid)
- backtrace_release_view (state, &str_view, error_callback, data);
- return 0;
-}
-
-/* Return the symbol name and value for an ADDR. */
-
-static void
-macho_syminfo (struct backtrace_state *state, uintptr_t addr,
- backtrace_syminfo_callback callback,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data)
-{
- struct macho_syminfo_data *sdata;
- struct macho_symbol *sym;
-
- sym = NULL;
- if (!state->threaded)
- {
- for (sdata = (struct macho_syminfo_data *) state->syminfo_data;
- sdata != NULL;
- sdata = sdata->next)
- {
- sym = ((struct macho_symbol *)
- bsearch (&addr, sdata->symbols, sdata->count,
- sizeof (struct macho_symbol), macho_symbol_search));
- if (sym != NULL)
- break;
- }
- }
- else
- {
- struct macho_syminfo_data **pp;
-
- pp = (struct macho_syminfo_data **) (void *) &state->syminfo_data;
- while (1)
- {
- sdata = backtrace_atomic_load_pointer (pp);
- if (sdata == NULL)
- break;
-
- sym = ((struct macho_symbol *)
- bsearch (&addr, sdata->symbols, sdata->count,
- sizeof (struct macho_symbol), macho_symbol_search));
- if (sym != NULL)
- break;
-
- pp = &sdata->next;
- }
- }
-
- if (sym == NULL)
- callback (data, addr, NULL, 0, 0);
- else
- callback (data, addr, sym->name, sym->address, 0);
-}
-
-/* Look through a fat file to find the relevant executable. Returns 1
- on success, 0 on failure (in both cases descriptor is closed). */
-
-static int
-macho_add_fat (struct backtrace_state *state, const char *filename,
- int descriptor, int swapped, off_t offset,
- const unsigned char *match_uuid, uintptr_t base_address,
- int skip_symtab, uint32_t nfat_arch, int is_64,
- backtrace_error_callback error_callback, void *data,
- fileline *fileline_fn, int *found_sym)
-{
- int arch_view_valid;
- unsigned int cputype;
- size_t arch_size;
- struct backtrace_view arch_view;
- unsigned int i;
-
- arch_view_valid = 0;
-
-#if defined (__x86_64__)
- cputype = MACH_O_CPU_TYPE_X86_64;
-#elif defined (__i386__)
- cputype = MACH_O_CPU_TYPE_X86;
-#elif defined (__aarch64__)
- cputype = MACH_O_CPU_TYPE_ARM64;
-#elif defined (__arm__)
- cputype = MACH_O_CPU_TYPE_ARM;
-#elif defined (__ppc__)
- cputype = MACH_O_CPU_TYPE_PPC;
-#elif defined (__ppc64__)
- cputype = MACH_O_CPU_TYPE_PPC64;
-#else
- error_callback (data, "unknown Mach-O architecture", 0);
- goto fail;
-#endif
-
- if (is_64)
- arch_size = sizeof (struct macho_fat_arch_64);
- else
- arch_size = sizeof (struct macho_fat_arch);
-
- if (!backtrace_get_view (state, descriptor, offset,
- nfat_arch * arch_size,
- error_callback, data, &arch_view))
- goto fail;
-
- for (i = 0; i < nfat_arch; ++i)
- {
- uint32_t fcputype;
- uint64_t foffset;
-
- if (is_64)
- {
- struct macho_fat_arch_64 fat_arch_64;
-
- memcpy (&fat_arch_64,
- (const char *) arch_view.data + i * arch_size,
- arch_size);
- fcputype = fat_arch_64.cputype;
- foffset = fat_arch_64.offset;
- if (swapped)
- {
- fcputype = __builtin_bswap32 (fcputype);
- foffset = __builtin_bswap64 (foffset);
- }
- }
- else
- {
- struct macho_fat_arch fat_arch_32;
-
- memcpy (&fat_arch_32,
- (const char *) arch_view.data + i * arch_size,
- arch_size);
- fcputype = fat_arch_32.cputype;
- foffset = (uint64_t) fat_arch_32.offset;
- if (swapped)
- {
- fcputype = __builtin_bswap32 (fcputype);
- foffset = (uint64_t) __builtin_bswap32 ((uint32_t) foffset);
- }
- }
-
- if (fcputype == cputype)
- {
- /* FIXME: What about cpusubtype? */
- backtrace_release_view (state, &arch_view, error_callback, data);
- return macho_add (state, filename, descriptor, foffset, match_uuid,
- base_address, skip_symtab, error_callback, data,
- fileline_fn, found_sym);
- }
- }
-
- error_callback (data, "could not find executable in fat file", 0);
-
- fail:
- if (arch_view_valid)
- backtrace_release_view (state, &arch_view, error_callback, data);
- if (descriptor != -1)
- backtrace_close (descriptor, error_callback, data);
- return 0;
-}
-
-/* Look for the dsym file for FILENAME. This is called if FILENAME
- does not have debug info or a symbol table. Returns 1 on success,
- 0 on failure. */
-
-static int
-macho_add_dsym (struct backtrace_state *state, const char *filename,
- uintptr_t base_address, const unsigned char *uuid,
- backtrace_error_callback error_callback, void *data,
- fileline* fileline_fn)
-{
- const char *p;
- const char *dirname;
- char *diralc;
- size_t dirnamelen;
- const char *basename;
- size_t basenamelen;
- const char *dsymsuffixdir;
- size_t dsymsuffixdirlen;
- size_t dsymlen;
- char *dsym;
- char *ps;
- int d;
- int does_not_exist;
- int dummy_found_sym;
-
- diralc = NULL;
- dirnamelen = 0;
- dsym = NULL;
- dsymlen = 0;
-
- p = strrchr (filename, '/');
- if (p == NULL)
- {
- dirname = ".";
- dirnamelen = 1;
- basename = filename;
- basenamelen = strlen (basename);
- diralc = NULL;
- }
- else
- {
- dirnamelen = p - filename;
- diralc = backtrace_alloc (state, dirnamelen + 1, error_callback, data);
- if (diralc == NULL)
- goto fail;
- memcpy (diralc, filename, dirnamelen);
- diralc[dirnamelen] = '\0';
- dirname = diralc;
- basename = p + 1;
- basenamelen = strlen (basename);
- }
-
- dsymsuffixdir = ".dSYM/Contents/Resources/DWARF/";
- dsymsuffixdirlen = strlen (dsymsuffixdir);
-
- dsymlen = (dirnamelen
- + 1
- + basenamelen
- + dsymsuffixdirlen
- + basenamelen
- + 1);
- dsym = backtrace_alloc (state, dsymlen, error_callback, data);
- if (dsym == NULL)
- goto fail;
-
- ps = dsym;
- memcpy (ps, dirname, dirnamelen);
- ps += dirnamelen;
- *ps++ = '/';
- memcpy (ps, basename, basenamelen);
- ps += basenamelen;
- memcpy (ps, dsymsuffixdir, dsymsuffixdirlen);
- ps += dsymsuffixdirlen;
- memcpy (ps, basename, basenamelen);
- ps += basenamelen;
- *ps = '\0';
-
- if (diralc != NULL)
- {
- backtrace_free (state, diralc, dirnamelen + 1, error_callback, data);
- diralc = NULL;
- }
-
- d = backtrace_open (dsym, error_callback, data, &does_not_exist);
- if (d < 0)
- {
- /* The file does not exist, so we can't read the debug info.
- Just return success. */
- backtrace_free (state, dsym, dsymlen, error_callback, data);
- return 1;
- }
-
- if (!macho_add (state, dsym, d, 0, uuid, base_address, 1,
- error_callback, data, fileline_fn, &dummy_found_sym))
- goto fail;
-
- backtrace_free (state, dsym, dsymlen, error_callback, data);
-
- return 1;
-
- fail:
- if (dsym != NULL)
- backtrace_free (state, dsym, dsymlen, error_callback, data);
- if (diralc != NULL)
- backtrace_free (state, diralc, dirnamelen, error_callback, data);
- return 0;
-}
-
-/* Add the backtrace data for a Macho-O file. Returns 1 on success, 0
- on failure (in both cases descriptor is closed).
-
- FILENAME: the name of the executable.
- DESCRIPTOR: an open descriptor for the executable, closed here.
- OFFSET: the offset within the file of this executable, for fat files.
- MATCH_UUID: if not NULL, UUID that must match.
- BASE_ADDRESS: the load address of the executable.
- SKIP_SYMTAB: if non-zero, ignore the symbol table; used for dSYM files.
- FILELINE_FN: set to the fileline function, by backtrace_dwarf_add.
- FOUND_SYM: set to non-zero if we found the symbol table.
-*/
-
-static int
-macho_add (struct backtrace_state *state, const char *filename, int descriptor,
- off_t offset, const unsigned char *match_uuid,
- uintptr_t base_address, int skip_symtab,
- backtrace_error_callback error_callback, void *data,
- fileline *fileline_fn, int *found_sym)
-{
- struct backtrace_view header_view;
- struct macho_header_32 header;
- off_t hdroffset;
- int is_64;
- struct backtrace_view cmds_view;
- int cmds_view_valid;
- struct dwarf_sections dwarf_sections;
- int have_dwarf;
- unsigned char uuid[MACH_O_UUID_LEN];
- int have_uuid;
- size_t cmdoffset;
- unsigned int i;
-
- *found_sym = 0;
-
- cmds_view_valid = 0;
-
- /* The 32-bit and 64-bit file headers start out the same, so we can
- just always read the 32-bit version. A fat header is shorter but
- it will always be followed by data, so it's OK to read extra. */
-
- if (!backtrace_get_view (state, descriptor, offset,
- sizeof (struct macho_header_32),
- error_callback, data, &header_view))
- goto fail;
-
- memcpy (&header, header_view.data, sizeof header);
-
- backtrace_release_view (state, &header_view, error_callback, data);
-
- switch (header.magic)
- {
- case MACH_O_MH_MAGIC_32:
- is_64 = 0;
- hdroffset = offset + sizeof (struct macho_header_32);
- break;
- case MACH_O_MH_MAGIC_64:
- is_64 = 1;
- hdroffset = offset + sizeof (struct macho_header_64);
- break;
- case MACH_O_MH_MAGIC_FAT:
- case MACH_O_MH_MAGIC_FAT_64:
- {
- struct macho_header_fat fat_header;
-
- hdroffset = offset + sizeof (struct macho_header_fat);
- memcpy (&fat_header, &header, sizeof fat_header);
- return macho_add_fat (state, filename, descriptor, 0, hdroffset,
- match_uuid, base_address, skip_symtab,
- fat_header.nfat_arch,
- header.magic == MACH_O_MH_MAGIC_FAT_64,
- error_callback, data, fileline_fn, found_sym);
- }
- case MACH_O_MH_CIGAM_FAT:
- case MACH_O_MH_CIGAM_FAT_64:
- {
- struct macho_header_fat fat_header;
- uint32_t nfat_arch;
-
- hdroffset = offset + sizeof (struct macho_header_fat);
- memcpy (&fat_header, &header, sizeof fat_header);
- nfat_arch = __builtin_bswap32 (fat_header.nfat_arch);
- return macho_add_fat (state, filename, descriptor, 1, hdroffset,
- match_uuid, base_address, skip_symtab,
- nfat_arch,
- header.magic == MACH_O_MH_CIGAM_FAT_64,
- error_callback, data, fileline_fn, found_sym);
- }
- default:
- error_callback (data, "executable file is not in Mach-O format", 0);
- goto fail;
- }
-
- switch (header.filetype)
- {
- case MACH_O_MH_EXECUTE:
- case MACH_O_MH_DYLIB:
- case MACH_O_MH_DSYM:
- break;
- default:
- error_callback (data, "executable file is not an executable", 0);
- goto fail;
- }
-
- if (!backtrace_get_view (state, descriptor, hdroffset, header.sizeofcmds,
- error_callback, data, &cmds_view))
- goto fail;
- cmds_view_valid = 1;
-
- memset (&dwarf_sections, 0, sizeof dwarf_sections);
- have_dwarf = 0;
- memset (&uuid, 0, sizeof uuid);
- have_uuid = 0;
-
- cmdoffset = 0;
- for (i = 0; i < header.ncmds; ++i)
- {
- const char *pcmd;
- struct macho_load_command load_command;
-
- if (cmdoffset + sizeof load_command > header.sizeofcmds)
- break;
-
- pcmd = (const char *) cmds_view.data + cmdoffset;
- memcpy (&load_command, pcmd, sizeof load_command);
-
- switch (load_command.cmd)
- {
- case MACH_O_LC_SEGMENT:
- {
- struct macho_segment_command segcmd;
-
- memcpy (&segcmd, pcmd, sizeof segcmd);
- if (memcmp (segcmd.segname,
- "__DWARF\0\0\0\0\0\0\0\0\0",
- MACH_O_NAMELEN) == 0)
- {
- if (!macho_add_dwarf_segment (state, descriptor, offset,
- load_command.cmd,
- pcmd + sizeof segcmd,
- (load_command.cmdsize
- - sizeof segcmd),
- segcmd.nsects, error_callback,
- data, &dwarf_sections))
- goto fail;
- have_dwarf = 1;
- }
- }
- break;
-
- case MACH_O_LC_SEGMENT_64:
- {
- struct macho_segment_64_command segcmd;
-
- memcpy (&segcmd, pcmd, sizeof segcmd);
- if (memcmp (segcmd.segname,
- "__DWARF\0\0\0\0\0\0\0\0\0",
- MACH_O_NAMELEN) == 0)
- {
- if (!macho_add_dwarf_segment (state, descriptor, offset,
- load_command.cmd,
- pcmd + sizeof segcmd,
- (load_command.cmdsize
- - sizeof segcmd),
- segcmd.nsects, error_callback,
- data, &dwarf_sections))
- goto fail;
- have_dwarf = 1;
- }
- }
- break;
-
- case MACH_O_LC_SYMTAB:
- if (!skip_symtab)
- {
- struct macho_symtab_command symcmd;
-
- memcpy (&symcmd, pcmd, sizeof symcmd);
- if (!macho_add_symtab (state, descriptor, base_address, is_64,
- offset + symcmd.symoff, symcmd.nsyms,
- offset + symcmd.stroff, symcmd.strsize,
- error_callback, data))
- goto fail;
-
- *found_sym = 1;
- }
- break;
-
- case MACH_O_LC_UUID:
- {
- struct macho_uuid_command uuidcmd;
-
- memcpy (&uuidcmd, pcmd, sizeof uuidcmd);
- memcpy (&uuid[0], &uuidcmd.uuid[0], MACH_O_UUID_LEN);
- have_uuid = 1;
- }
- break;
-
- default:
- break;
- }
-
- cmdoffset += load_command.cmdsize;
- }
-
- if (!backtrace_close (descriptor, error_callback, data))
- goto fail;
- descriptor = -1;
-
- backtrace_release_view (state, &cmds_view, error_callback, data);
- cmds_view_valid = 0;
-
- if (match_uuid != NULL)
- {
- /* If we don't have a UUID, or it doesn't match, just ignore
- this file. */
- if (!have_uuid
- || memcmp (match_uuid, &uuid[0], MACH_O_UUID_LEN) != 0)
- return 1;
- }
-
- if (have_dwarf)
- {
- int is_big_endian;
-
- is_big_endian = 0;
-#if defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__)
-#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
- is_big_endian = 1;
-#endif
-#endif
-
- if (!backtrace_dwarf_add (state, base_address, &dwarf_sections,
- is_big_endian, NULL, error_callback, data,
- fileline_fn, NULL))
- goto fail;
- }
-
- if (!have_dwarf && have_uuid)
- {
- if (!macho_add_dsym (state, filename, base_address, &uuid[0],
- error_callback, data, fileline_fn))
- goto fail;
- }
-
- return 1;
-
- fail:
- if (cmds_view_valid)
- backtrace_release_view (state, &cmds_view, error_callback, data);
- if (descriptor != -1)
- backtrace_close (descriptor, error_callback, data);
- return 0;
-}
-
-#ifdef HAVE_MACH_O_DYLD_H
-
-/* Initialize the backtrace data we need from a Mach-O executable
- using the dyld support functions. This closes descriptor. */
-
-int
-backtrace_initialize (struct backtrace_state *state, const char *filename,
- int descriptor, backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn)
-{
- uint32_t c;
- uint32_t i;
- int closed_descriptor;
- int found_sym;
- fileline macho_fileline_fn;
-
- closed_descriptor = 0;
- found_sym = 0;
- macho_fileline_fn = macho_nodebug;
-
- c = _dyld_image_count ();
- for (i = 0; i < c; ++i)
- {
- uintptr_t base_address;
- const char *name;
- int d;
- fileline mff;
- int mfs;
-
- name = _dyld_get_image_name (i);
- if (name == NULL)
- continue;
-
- if (strcmp (name, filename) == 0 && !closed_descriptor)
- {
- d = descriptor;
- closed_descriptor = 1;
- }
- else
- {
- int does_not_exist;
-
- d = backtrace_open (name, error_callback, data, &does_not_exist);
- if (d < 0)
- continue;
- }
-
- base_address = _dyld_get_image_vmaddr_slide (i);
-
- mff = macho_nodebug;
- if (!macho_add (state, name, d, 0, NULL, base_address, 0,
- error_callback, data, &mff, &mfs))
- continue;
-
- if (mff != macho_nodebug)
- macho_fileline_fn = mff;
- if (mfs)
- found_sym = 1;
- }
-
- if (!closed_descriptor)
- backtrace_close (descriptor, error_callback, data);
-
- if (!state->threaded)
- {
- if (found_sym)
- state->syminfo_fn = macho_syminfo;
- else if (state->syminfo_fn == NULL)
- state->syminfo_fn = macho_nosyms;
- }
- else
- {
- if (found_sym)
- backtrace_atomic_store_pointer (&state->syminfo_fn, macho_syminfo);
- else
- (void) __sync_bool_compare_and_swap (&state->syminfo_fn, NULL,
- macho_nosyms);
- }
-
- if (!state->threaded)
- *fileline_fn = state->fileline_fn;
- else
- *fileline_fn = backtrace_atomic_load_pointer (&state->fileline_fn);
-
- if (*fileline_fn == NULL || *fileline_fn == macho_nodebug)
- *fileline_fn = macho_fileline_fn;
-
- return 1;
-}
-
-#else /* !defined (HAVE_MACH_O_DYLD_H) */
-
-/* Initialize the backtrace data we need from a Mach-O executable
- without using the dyld support functions. This closes
- descriptor. */
-
-int
-backtrace_initialize (struct backtrace_state *state, const char *filename,
- int descriptor, backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn)
-{
- fileline macho_fileline_fn;
- int found_sym;
-
- macho_fileline_fn = macho_nodebug;
- if (!macho_add (state, filename, descriptor, 0, NULL, 0, 0,
- error_callback, data, &macho_fileline_fn, &found_sym))
- return 0;
-
- if (!state->threaded)
- {
- if (found_sym)
- state->syminfo_fn = macho_syminfo;
- else if (state->syminfo_fn == NULL)
- state->syminfo_fn = macho_nosyms;
- }
- else
- {
- if (found_sym)
- backtrace_atomic_store_pointer (&state->syminfo_fn, macho_syminfo);
- else
- (void) __sync_bool_compare_and_swap (&state->syminfo_fn, NULL,
- macho_nosyms);
- }
-
- if (!state->threaded)
- *fileline_fn = state->fileline_fn;
- else
- *fileline_fn = backtrace_atomic_load_pointer (&state->fileline_fn);
-
- if (*fileline_fn == NULL || *fileline_fn == macho_nodebug)
- *fileline_fn = macho_fileline_fn;
-
- return 1;
-}
-
-#endif /* !defined (HAVE_MACH_O_DYLD_H) */
diff --git a/fluent-bit/lib/libbacktrace-8602fda/missing b/fluent-bit/lib/libbacktrace-8602fda/missing
deleted file mode 100755
index f62bbae30..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/missing
+++ /dev/null
@@ -1,215 +0,0 @@
-#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
-
-scriptversion=2013-10-28.13; # UTC
-
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
-fi
-
-case $1 in
-
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
-
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
-
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
-
-Send bug reports to <bug-automake@gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Run the given program, remember its exit status.
-"$@"; st=$?
-
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
-
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
-
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'autom4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/mmap.c b/fluent-bit/lib/libbacktrace-8602fda/mmap.c
deleted file mode 100644
index d7313be73..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/mmap.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/* mmap.c -- Memory allocation with mmap.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/mman.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-#ifndef HAVE_DECL_GETPAGESIZE
-extern int getpagesize (void);
-#endif
-
-/* Memory allocation on systems that provide anonymous mmap. This
- permits the backtrace functions to be invoked from a signal
- handler, assuming that mmap is async-signal safe. */
-
-#ifndef MAP_ANONYMOUS
-#define MAP_ANONYMOUS MAP_ANON
-#endif
-
-#ifndef MAP_FAILED
-#define MAP_FAILED ((void *)-1)
-#endif
-
-/* A list of free memory blocks. */
-
-struct backtrace_freelist_struct
-{
- /* Next on list. */
- struct backtrace_freelist_struct *next;
- /* Size of this block, including this structure. */
- size_t size;
-};
-
-/* Free memory allocated by backtrace_alloc. */
-
-static void
-backtrace_free_locked (struct backtrace_state *state, void *addr, size_t size)
-{
- /* Just leak small blocks. We don't have to be perfect. Don't put
- more than 16 entries on the free list, to avoid wasting time
- searching when allocating a block. If we have more than 16
- entries, leak the smallest entry. */
-
- if (size >= sizeof (struct backtrace_freelist_struct))
- {
- size_t c;
- struct backtrace_freelist_struct **ppsmall;
- struct backtrace_freelist_struct **pp;
- struct backtrace_freelist_struct *p;
-
- c = 0;
- ppsmall = NULL;
- for (pp = &state->freelist; *pp != NULL; pp = &(*pp)->next)
- {
- if (ppsmall == NULL || (*pp)->size < (*ppsmall)->size)
- ppsmall = pp;
- ++c;
- }
- if (c >= 16)
- {
- if (size <= (*ppsmall)->size)
- return;
- *ppsmall = (*ppsmall)->next;
- }
-
- p = (struct backtrace_freelist_struct *) addr;
- p->next = state->freelist;
- p->size = size;
- state->freelist = p;
- }
-}
-
-/* Allocate memory like malloc. If ERROR_CALLBACK is NULL, don't
- report an error. */
-
-void *
-backtrace_alloc (struct backtrace_state *state,
- size_t size, backtrace_error_callback error_callback,
- void *data)
-{
- void *ret;
- int locked;
- struct backtrace_freelist_struct **pp;
- size_t pagesize;
- size_t asksize;
- void *page;
-
- ret = NULL;
-
- /* If we can acquire the lock, then see if there is space on the
- free list. If we can't acquire the lock, drop straight into
- using mmap. __sync_lock_test_and_set returns the old state of
- the lock, so we have acquired it if it returns 0. */
-
- if (!state->threaded)
- locked = 1;
- else
- locked = __sync_lock_test_and_set (&state->lock_alloc, 1) == 0;
-
- if (locked)
- {
- for (pp = &state->freelist; *pp != NULL; pp = &(*pp)->next)
- {
- if ((*pp)->size >= size)
- {
- struct backtrace_freelist_struct *p;
-
- p = *pp;
- *pp = p->next;
-
- /* Round for alignment; we assume that no type we care about
- is more than 8 bytes. */
- size = (size + 7) & ~ (size_t) 7;
- if (size < p->size)
- backtrace_free_locked (state, (char *) p + size,
- p->size - size);
-
- ret = (void *) p;
-
- break;
- }
- }
-
- if (state->threaded)
- __sync_lock_release (&state->lock_alloc);
- }
-
- if (ret == NULL)
- {
- /* Allocate a new page. */
-
- pagesize = getpagesize ();
- asksize = (size + pagesize - 1) & ~ (pagesize - 1);
- page = mmap (NULL, asksize, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
- if (page == MAP_FAILED)
- {
- if (error_callback)
- error_callback (data, "mmap", errno);
- }
- else
- {
- size = (size + 7) & ~ (size_t) 7;
- if (size < asksize)
- backtrace_free (state, (char *) page + size, asksize - size,
- error_callback, data);
-
- ret = page;
- }
- }
-
- return ret;
-}
-
-/* Free memory allocated by backtrace_alloc. */
-
-void
-backtrace_free (struct backtrace_state *state, void *addr, size_t size,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data ATTRIBUTE_UNUSED)
-{
- int locked;
-
- /* If we are freeing a large aligned block, just release it back to
- the system. This case arises when growing a vector for a large
- binary with lots of debug info. Calling munmap here may cause us
- to call mmap again if there is also a large shared library; we
- just live with that. */
- if (size >= 16 * 4096)
- {
- size_t pagesize;
-
- pagesize = getpagesize ();
- if (((uintptr_t) addr & (pagesize - 1)) == 0
- && (size & (pagesize - 1)) == 0)
- {
- /* If munmap fails for some reason, just add the block to
- the freelist. */
- if (munmap (addr, size) == 0)
- return;
- }
- }
-
- /* If we can acquire the lock, add the new space to the free list.
- If we can't acquire the lock, just leak the memory.
- __sync_lock_test_and_set returns the old state of the lock, so we
- have acquired it if it returns 0. */
-
- if (!state->threaded)
- locked = 1;
- else
- locked = __sync_lock_test_and_set (&state->lock_alloc, 1) == 0;
-
- if (locked)
- {
- backtrace_free_locked (state, addr, size);
-
- if (state->threaded)
- __sync_lock_release (&state->lock_alloc);
- }
-}
-
-/* Grow VEC by SIZE bytes. */
-
-void *
-backtrace_vector_grow (struct backtrace_state *state,size_t size,
- backtrace_error_callback error_callback,
- void *data, struct backtrace_vector *vec)
-{
- void *ret;
-
- if (size > vec->alc)
- {
- size_t pagesize;
- size_t alc;
- void *base;
-
- pagesize = getpagesize ();
- alc = vec->size + size;
- if (vec->size == 0)
- alc = 16 * size;
- else if (alc < pagesize)
- {
- alc *= 2;
- if (alc > pagesize)
- alc = pagesize;
- }
- else
- {
- alc *= 2;
- alc = (alc + pagesize - 1) & ~ (pagesize - 1);
- }
- base = backtrace_alloc (state, alc, error_callback, data);
- if (base == NULL)
- return NULL;
- if (vec->base != NULL)
- {
- memcpy (base, vec->base, vec->size);
- backtrace_free (state, vec->base, vec->size + vec->alc,
- error_callback, data);
- }
- vec->base = base;
- vec->alc = alc - vec->size;
- }
-
- ret = (char *) vec->base + vec->size;
- vec->size += size;
- vec->alc -= size;
- return ret;
-}
-
-/* Finish the current allocation on VEC. */
-
-void *
-backtrace_vector_finish (
- struct backtrace_state *state ATTRIBUTE_UNUSED,
- struct backtrace_vector *vec,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data ATTRIBUTE_UNUSED)
-{
- void *ret;
-
- ret = vec->base;
- vec->base = (char *) vec->base + vec->size;
- vec->size = 0;
- return ret;
-}
-
-/* Release any extra space allocated for VEC. */
-
-int
-backtrace_vector_release (struct backtrace_state *state,
- struct backtrace_vector *vec,
- backtrace_error_callback error_callback,
- void *data)
-{
- size_t size;
- size_t alc;
- size_t aligned;
-
- /* Make sure that the block that we free is aligned on an 8-byte
- boundary. */
- size = vec->size;
- alc = vec->alc;
- aligned = (size + 7) & ~ (size_t) 7;
- alc -= aligned - size;
-
- backtrace_free (state, (char *) vec->base + aligned, alc,
- error_callback, data);
- vec->alc = 0;
- if (vec->size == 0)
- vec->base = NULL;
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/mmapio.c b/fluent-bit/lib/libbacktrace-8602fda/mmapio.c
deleted file mode 100644
index 7f6fa8d27..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/mmapio.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* mmapio.c -- File views using mmap.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <unistd.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-#ifndef HAVE_DECL_GETPAGESIZE
-extern int getpagesize (void);
-#endif
-
-#ifndef MAP_FAILED
-#define MAP_FAILED ((void *)-1)
-#endif
-
-/* This file implements file views and memory allocation when mmap is
- available. */
-
-/* Create a view of SIZE bytes from DESCRIPTOR at OFFSET. */
-
-int
-backtrace_get_view (struct backtrace_state *state ATTRIBUTE_UNUSED,
- int descriptor, off_t offset, uint64_t size,
- backtrace_error_callback error_callback,
- void *data, struct backtrace_view *view)
-{
- size_t pagesize;
- unsigned int inpage;
- off_t pageoff;
- void *map;
-
- if ((uint64_t) (size_t) size != size)
- {
- error_callback (data, "file size too large", 0);
- return 0;
- }
-
- pagesize = getpagesize ();
- inpage = offset % pagesize;
- pageoff = offset - inpage;
-
- size += inpage;
- size = (size + (pagesize - 1)) & ~ (pagesize - 1);
-
- map = mmap (NULL, size, PROT_READ, MAP_PRIVATE, descriptor, pageoff);
- if (map == MAP_FAILED)
- {
- error_callback (data, "mmap", errno);
- return 0;
- }
-
- view->data = (char *) map + inpage;
- view->base = map;
- view->len = size;
-
- return 1;
-}
-
-/* Release a view read by backtrace_get_view. */
-
-void
-backtrace_release_view (struct backtrace_state *state ATTRIBUTE_UNUSED,
- struct backtrace_view *view,
- backtrace_error_callback error_callback,
- void *data)
-{
- union {
- const void *cv;
- void *v;
- } const_cast;
-
- const_cast.cv = view->base;
- if (munmap (const_cast.v, view->len) < 0)
- error_callback (data, "munmap", errno);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/move-if-change b/fluent-bit/lib/libbacktrace-8602fda/move-if-change
deleted file mode 100755
index 88d957456..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/move-if-change
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-# Like mv $1 $2, but if the files are the same, just delete $1.
-# Status is zero if successful, nonzero otherwise.
-
-VERSION='2012-01-06 07:23'; # UTC
-# The definition above must lie within the first 8 lines in order
-# for the Emacs time-stamp write hook (at end) to update it.
-# If you change this file with Emacs, please let the write hook
-# do its job. Otherwise, update this string manually.
-
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-usage="usage: $0 SOURCE DEST"
-
-help="$usage
- or: $0 OPTION
-If SOURCE is different than DEST, then move it to DEST; else remove SOURCE.
-
- --help display this help and exit
- --version output version information and exit
-
-The variable CMPPROG can be used to specify an alternative to 'cmp'.
-
-Report bugs to <bug-gnulib@gnu.org>."
-
-version=`expr "$VERSION" : '\([^ ]*\)'`
-version="move-if-change (gnulib) $version
-Copyright (C) 2011 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law."
-
-cmpprog=${CMPPROG-cmp}
-
-for arg
-do
- case $arg in
- --help | --hel | --he | --h)
- exec echo "$help" ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v)
- exec echo "$version" ;;
- --)
- shift
- break ;;
- -*)
- echo "$0: invalid option: $arg" >&2
- exit 1 ;;
- *)
- break ;;
- esac
-done
-
-test $# -eq 2 || { echo "$0: $usage" >&2; exit 1; }
-
-if test -r "$2" && $cmpprog -- "$1" "$2" >/dev/null; then
- rm -f -- "$1"
-else
- if mv -f -- "$1" "$2"; then :; else
- # Ignore failure due to a concurrent move-if-change.
- test -r "$2" && $cmpprog -- "$1" "$2" >/dev/null && rm -f -- "$1"
- fi
-fi
-
-## Local Variables:
-## eval: (add-hook 'write-file-hooks 'time-stamp)
-## time-stamp-start: "VERSION='"
-## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
-## time-stamp-time-zone: "UTC"
-## time-stamp-end: "'; # UTC"
-## End:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/mtest.c b/fluent-bit/lib/libbacktrace-8602fda/mtest.c
deleted file mode 100644
index 7e0189a28..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/mtest.c
+++ /dev/null
@@ -1,410 +0,0 @@
-/* mtest.c -- Minidebug test for libbacktrace library
- Copyright (C) 2020-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-/* This program tests using libbacktrace with a program that uses the
- minidebuginfo format in a .gnu_debugdata section. See
- https://sourceware.org/gdb/current/onlinedocs/gdb/MiniDebugInfo.html
- for a bit more information about minidebuginfo. What is relevant
- for libbacktrace is that we have just a symbol table, with no debug
- info, so we should be able to do a function backtrace, but we can't
- do a file/line backtrace. */
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "testlib.h"
-
-static int test1 (void) __attribute__ ((noinline, noclone, unused));
-static int f2 (int) __attribute__ ((noinline, noclone));
-static int f3 (int, int) __attribute__ ((noinline, noclone));
-
-/* Collected PC values. */
-
-static uintptr_t addrs[20];
-
-/* The backtrace callback function. This is like callback_one in
- testlib.c, but it saves the PC also. */
-
-static int
-callback_mtest (void *vdata, uintptr_t pc, const char *filename, int lineno,
- const char *function)
-{
- struct bdata *data = (struct bdata *) vdata;
-
- if (data->index >= sizeof addrs / sizeof addrs[0])
- {
- fprintf (stderr, "callback_mtest: callback called too many times\n");
- data->failed = 1;
- return 1;
- }
-
- addrs[data->index] = pc;
-
- return callback_one (vdata, pc, filename, lineno, function);
-}
-
-/* Test the backtrace function with non-inlined functions. (We don't
- test with inlined functions because they won't work with minidebug
- anyhow.) */
-
-static int
-test1 (void)
-{
- /* Returning a value here and elsewhere avoids a tailcall which
- would mess up the backtrace. */
- return f2 (__LINE__) + 1;
-}
-
-static int
-f2 (int f1line)
-{
- return f3 (f1line, __LINE__) + 2;
-}
-
-static int
-f3 (int f1line __attribute__ ((unused)), int f2line __attribute__ ((unused)))
-{
- struct info all[20];
- struct bdata data;
- int i;
- size_t j;
-
- data.all = &all[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- i = backtrace_full (state, 0, callback_mtest, error_callback_one, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test1: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- if (data.index < 3)
- {
- fprintf (stderr,
- "test1: not enough frames; got %zu, expected at least 3\n",
- data.index);
- data.failed = 1;
- }
-
- /* When using minidebug we don't expect the function name here. */
-
- for (j = 0; j < 3 && j < data.index; j++)
- {
- if (all[j].function == NULL)
- {
- struct symdata symdata;
-
- symdata.name = NULL;
- symdata.val = 0;
- symdata.size = 0;
- symdata.failed = 0;
-
- i = backtrace_syminfo (state, addrs[j], callback_three,
- error_callback_three, &symdata);
- if (i == 0)
- {
- fprintf (stderr,
- ("test1: [%zu], unexpected return value from "
- "backtrace_syminfo %d\n"),
- j, i);
- data.failed = 1;
- }
- else if (symdata.name == NULL)
- {
- fprintf (stderr, "test1: [%zu]: syminfo did not find name\n", j);
- data.failed = 1;
- }
- else
- all[j].function = strdup (symdata.name);
- }
- }
-
- if (data.index > 0)
- {
- if (all[0].function == NULL)
- {
- fprintf (stderr, "test1: [0]: missing function name\n");
- data.failed = 1;
- }
- else if (strcmp (all[0].function, "f3") != 0)
- {
- fprintf (stderr, "test1: [0]: got %s expected %s\n",
- all[0].function, "f3");
- data.failed = 1;
- }
- }
-
- if (data.index > 1)
- {
- if (all[1].function == NULL)
- {
- fprintf (stderr, "test1: [1]: missing function name\n");
- data.failed = 1;
- }
- else if (strcmp (all[1].function, "f2") != 0)
- {
- fprintf (stderr, "test1: [1]: got %s expected %s\n",
- all[0].function, "f2");
- data.failed = 1;
- }
- }
-
- if (data.index > 2)
- {
- if (all[2].function == NULL)
- {
- fprintf (stderr, "test1: [2]: missing function name\n");
- data.failed = 1;
- }
- else if (strcmp (all[2].function, "test1") != 0)
- {
- fprintf (stderr, "test1: [2]: got %s expected %s\n",
- all[0].function, "test1");
- data.failed = 1;
- }
- }
-
- printf ("%s: backtrace_full noinline\n", data.failed ? "FAIL" : "PASS");
-
- if (data.failed)
- ++failures;
-
- return failures;
-}
-
-/* Test the backtrace_simple function with non-inlined functions. */
-
-static int test3 (void) __attribute__ ((noinline, noclone, unused));
-static int f22 (int) __attribute__ ((noinline, noclone));
-static int f23 (int, int) __attribute__ ((noinline, noclone));
-
-static int
-test3 (void)
-{
- return f22 (__LINE__) + 1;
-}
-
-static int
-f22 (int f1line)
-{
- return f23 (f1line, __LINE__) + 2;
-}
-
-static int
-f23 (int f1line __attribute__ ((unused)), int f2line __attribute__ ((unused)))
-{
- uintptr_t addrs[20];
- struct sdata data;
- int i;
-
- data.addrs = &addrs[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- i = backtrace_simple (state, 0, callback_two, error_callback_two, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test3: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- if (!data.failed)
- {
- int j;
-
- for (j = 0; j < 3; ++j)
- {
- struct symdata symdata;
-
- symdata.name = NULL;
- symdata.val = 0;
- symdata.size = 0;
- symdata.failed = 0;
-
- i = backtrace_syminfo (state, addrs[j], callback_three,
- error_callback_three, &symdata);
- if (i == 0)
- {
- fprintf (stderr,
- ("test3: [%d]: unexpected return value "
- "from backtrace_syminfo %d\n"),
- j, i);
- symdata.failed = 1;
- }
-
- if (!symdata.failed)
- {
- const char *expected;
-
- switch (j)
- {
- case 0:
- expected = "f23";
- break;
- case 1:
- expected = "f22";
- break;
- case 2:
- expected = "test3";
- break;
- default:
- assert (0);
- }
-
- if (symdata.name == NULL)
- {
- fprintf (stderr, "test3: [%d]: NULL syminfo name\n", j);
- symdata.failed = 1;
- }
- /* Use strncmp, not strcmp, because GCC might create a
- clone. */
- else if (strncmp (symdata.name, expected, strlen (expected))
- != 0)
- {
- fprintf (stderr,
- ("test3: [%d]: unexpected syminfo name "
- "got %s expected %s\n"),
- j, symdata.name, expected);
- symdata.failed = 1;
- }
- }
-
- if (symdata.failed)
- data.failed = 1;
- }
- }
-
- printf ("%s: backtrace_simple noinline\n", data.failed ? "FAIL" : "PASS");
-
- if (data.failed)
- ++failures;
-
- return failures;
-}
-
-int test5 (void) __attribute__ ((unused));
-
-int global = 1;
-
-int
-test5 (void)
-{
- struct symdata symdata;
- int i;
- uintptr_t addr = (uintptr_t) &global;
-
- if (sizeof (global) > 1)
- addr += 1;
-
- symdata.name = NULL;
- symdata.val = 0;
- symdata.size = 0;
- symdata.failed = 0;
-
- i = backtrace_syminfo (state, addr, callback_three,
- error_callback_three, &symdata);
- if (i == 0)
- {
- fprintf (stderr,
- "test5: unexpected return value from backtrace_syminfo %d\n",
- i);
- symdata.failed = 1;
- }
-
- if (!symdata.failed)
- {
- if (symdata.name == NULL)
- {
- fprintf (stderr, "test5: NULL syminfo name\n");
- symdata.failed = 1;
- }
- else if (!(strncmp (symdata.name, "global", 6) == 0
- && (symdata.name[6] == '\0'|| symdata.name[6] == '.')))
- {
- fprintf (stderr,
- "test5: unexpected syminfo name got %s expected %s\n",
- symdata.name, "global");
- symdata.failed = 1;
- }
- else if (symdata.val != (uintptr_t) &global)
- {
- fprintf (stderr,
- "test5: unexpected syminfo value got %lx expected %lx\n",
- (unsigned long) symdata.val,
- (unsigned long) (uintptr_t) &global);
- symdata.failed = 1;
- }
- else if (symdata.size != sizeof (global))
- {
- fprintf (stderr,
- "test5: unexpected syminfo size got %lx expected %lx\n",
- (unsigned long) symdata.size,
- (unsigned long) sizeof (global));
- symdata.failed = 1;
- }
- }
-
- printf ("%s: backtrace_syminfo variable\n",
- symdata.failed ? "FAIL" : "PASS");
-
- if (symdata.failed)
- ++failures;
-
- return failures;
-}
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
-#if BACKTRACE_SUPPORTED
- test1 ();
- test3 ();
-#if BACKTRACE_SUPPORTS_DATA
- test5 ();
-#endif
-#endif
-
- exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/nounwind.c b/fluent-bit/lib/libbacktrace-8602fda/nounwind.c
deleted file mode 100644
index 0eea7139b..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/nounwind.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* backtrace.c -- Entry point for stack backtrace library.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <sys/types.h>
-
-#include "backtrace.h"
-
-#include "internal.h"
-
-/* This source file is compiled if the unwind library is not
- available. */
-
-int
-backtrace_full (struct backtrace_state *state ATTRIBUTE_UNUSED,
- int skip ATTRIBUTE_UNUSED,
- backtrace_full_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data,
- "no stack trace because unwind library not available",
- 0);
- return 0;
-}
-
-int
-backtrace_simple (struct backtrace_state *state ATTRIBUTE_UNUSED,
- int skip ATTRIBUTE_UNUSED,
- backtrace_simple_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data,
- "no stack trace because unwind library not available",
- 0);
- return 0;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/pecoff.c b/fluent-bit/lib/libbacktrace-8602fda/pecoff.c
deleted file mode 100644
index 720251900..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/pecoff.c
+++ /dev/null
@@ -1,935 +0,0 @@
-/* pecoff.c -- Get debug data from a PE/COFFF file for backtraces.
- Copyright (C) 2015-2021 Free Software Foundation, Inc.
- Adapted from elf.c by Tristan Gingold, AdaCore.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* Coff file header. */
-
-typedef struct {
- uint16_t machine;
- uint16_t number_of_sections;
- uint32_t time_date_stamp;
- uint32_t pointer_to_symbol_table;
- uint32_t number_of_symbols;
- uint16_t size_of_optional_header;
- uint16_t characteristics;
-} b_coff_file_header;
-
-/* Coff optional header. */
-
-typedef struct {
- uint16_t magic;
- uint8_t major_linker_version;
- uint8_t minor_linker_version;
- uint32_t size_of_code;
- uint32_t size_of_initialized_data;
- uint32_t size_of_uninitialized_data;
- uint32_t address_of_entry_point;
- uint32_t base_of_code;
- union {
- struct {
- uint32_t base_of_data;
- uint32_t image_base;
- } pe;
- struct {
- uint64_t image_base;
- } pep;
- } u;
-} b_coff_optional_header;
-
-/* Values of magic in optional header. */
-
-#define PE_MAGIC 0x10b /* PE32 executable. */
-#define PEP_MAGIC 0x20b /* PE32+ executable (for 64bit targets). */
-
-/* Coff section header. */
-
-typedef struct {
- char name[8];
- uint32_t virtual_size;
- uint32_t virtual_address;
- uint32_t size_of_raw_data;
- uint32_t pointer_to_raw_data;
- uint32_t pointer_to_relocations;
- uint32_t pointer_to_line_numbers;
- uint16_t number_of_relocations;
- uint16_t number_of_line_numbers;
- uint32_t characteristics;
-} b_coff_section_header;
-
-/* Coff symbol name. */
-
-typedef union {
- char short_name[8];
- struct {
- unsigned char zeroes[4];
- unsigned char off[4];
- } long_name;
-} b_coff_name;
-
-/* Coff symbol (external representation which is unaligned). */
-
-typedef struct {
- b_coff_name name;
- unsigned char value[4];
- unsigned char section_number[2];
- unsigned char type[2];
- unsigned char storage_class;
- unsigned char number_of_aux_symbols;
-} b_coff_external_symbol;
-
-/* Symbol types. */
-
-#define N_TBSHFT 4 /* Shift for the derived type. */
-#define IMAGE_SYM_DTYPE_FUNCTION 2 /* Function derived type. */
-
-/* Size of a coff symbol. */
-
-#define SYM_SZ 18
-
-/* Coff symbol, internal representation (aligned). */
-
-typedef struct {
- const char *name;
- uint32_t value;
- int16_t sec;
- uint16_t type;
- uint16_t sc;
-} b_coff_internal_symbol;
-
-/* Names of sections, indexed by enum dwarf_section in internal.h. */
-
-static const char * const debug_section_names[DEBUG_MAX] =
-{
- ".debug_info",
- ".debug_line",
- ".debug_abbrev",
- ".debug_ranges",
- ".debug_str",
- ".debug_addr",
- ".debug_str_offsets",
- ".debug_line_str",
- ".debug_rnglists"
-};
-
-/* Information we gather for the sections we care about. */
-
-struct debug_section_info
-{
- /* Section file offset. */
- off_t offset;
- /* Section size. */
- size_t size;
-};
-
-/* Information we keep for an coff symbol. */
-
-struct coff_symbol
-{
- /* The name of the symbol. */
- const char *name;
- /* The address of the symbol. */
- uintptr_t address;
-};
-
-/* Information to pass to coff_syminfo. */
-
-struct coff_syminfo_data
-{
- /* Symbols for the next module. */
- struct coff_syminfo_data *next;
- /* The COFF symbols, sorted by address. */
- struct coff_symbol *symbols;
- /* The number of symbols. */
- size_t count;
-};
-
-/* A dummy callback function used when we can't find any debug info. */
-
-static int
-coff_nodebug (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t pc ATTRIBUTE_UNUSED,
- backtrace_full_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data, "no debug info in PE/COFF executable", -1);
- return 0;
-}
-
-/* A dummy callback function used when we can't find a symbol
- table. */
-
-static void
-coff_nosyms (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t addr ATTRIBUTE_UNUSED,
- backtrace_syminfo_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data, "no symbol table in PE/COFF executable", -1);
-}
-
-/* Read a potentially unaligned 4 byte word at P, using native endianness. */
-
-static uint32_t
-coff_read4 (const unsigned char *p)
-{
- uint32_t res;
-
- memcpy (&res, p, 4);
- return res;
-}
-
-/* Read a potentially unaligned 2 byte word at P, using native endianness.
- All 2 byte word in symbols are always aligned, but for coherency all
- fields are declared as char arrays. */
-
-static uint16_t
-coff_read2 (const unsigned char *p)
-{
- uint16_t res;
-
- memcpy (&res, p, sizeof (res));
- return res;
-}
-
-/* Return the length (without the trailing 0) of a COFF short name. */
-
-static size_t
-coff_short_name_len (const char *name)
-{
- int i;
-
- for (i = 0; i < 8; i++)
- if (name[i] == 0)
- return i;
- return 8;
-}
-
-/* Return true iff COFF short name CNAME is the same as NAME (a NUL-terminated
- string). */
-
-static int
-coff_short_name_eq (const char *name, const char *cname)
-{
- int i;
-
- for (i = 0; i < 8; i++)
- {
- if (name[i] != cname[i])
- return 0;
- if (name[i] == 0)
- return 1;
- }
- return name[8] == 0;
-}
-
-/* Return true iff NAME is the same as string at offset OFF. */
-
-static int
-coff_long_name_eq (const char *name, unsigned int off,
- struct backtrace_view *str_view)
-{
- if (off >= str_view->len)
- return 0;
- return strcmp (name, (const char *)str_view->data + off) == 0;
-}
-
-/* Compare struct coff_symbol for qsort. */
-
-static int
-coff_symbol_compare (const void *v1, const void *v2)
-{
- const struct coff_symbol *e1 = (const struct coff_symbol *) v1;
- const struct coff_symbol *e2 = (const struct coff_symbol *) v2;
-
- if (e1->address < e2->address)
- return -1;
- else if (e1->address > e2->address)
- return 1;
- else
- return 0;
-}
-
-/* Convert SYM to internal (and aligned) format ISYM, using string table
- from STRTAB and STRTAB_SIZE, and number of sections SECTS_NUM.
- Return -1 in case of error (invalid section number or string index). */
-
-static int
-coff_expand_symbol (b_coff_internal_symbol *isym,
- const b_coff_external_symbol *sym,
- uint16_t sects_num,
- const unsigned char *strtab, size_t strtab_size)
-{
- isym->type = coff_read2 (sym->type);
- isym->sec = coff_read2 (sym->section_number);
- isym->sc = sym->storage_class;
-
- if (isym->sec > 0 && (uint16_t) isym->sec > sects_num)
- return -1;
- if (sym->name.short_name[0] != 0)
- isym->name = sym->name.short_name;
- else
- {
- uint32_t off = coff_read4 (sym->name.long_name.off);
-
- if (off >= strtab_size)
- return -1;
- isym->name = (const char *) strtab + off;
- }
- return 0;
-}
-
-/* Return true iff SYM is a defined symbol for a function. Data symbols
- aren't considered because they aren't easily identified (same type as
- section names, presence of symbols defined by the linker script). */
-
-static int
-coff_is_function_symbol (const b_coff_internal_symbol *isym)
-{
- return (isym->type >> N_TBSHFT) == IMAGE_SYM_DTYPE_FUNCTION
- && isym->sec > 0;
-}
-
-/* Initialize the symbol table info for coff_syminfo. */
-
-static int
-coff_initialize_syminfo (struct backtrace_state *state,
- uintptr_t base_address, int is_64,
- const b_coff_section_header *sects, size_t sects_num,
- const b_coff_external_symbol *syms, size_t syms_size,
- const unsigned char *strtab, size_t strtab_size,
- backtrace_error_callback error_callback,
- void *data, struct coff_syminfo_data *sdata)
-{
- size_t syms_count;
- char *coff_symstr;
- size_t coff_symstr_len;
- size_t coff_symbol_count;
- size_t coff_symbol_size;
- struct coff_symbol *coff_symbols;
- struct coff_symbol *coff_sym;
- char *coff_str;
- size_t i;
-
- syms_count = syms_size / SYM_SZ;
-
- /* We only care about function symbols. Count them. Also count size of
- strings for in-symbol names. */
- coff_symbol_count = 0;
- coff_symstr_len = 0;
- for (i = 0; i < syms_count; ++i)
- {
- const b_coff_external_symbol *asym = &syms[i];
- b_coff_internal_symbol isym;
-
- if (coff_expand_symbol (&isym, asym, sects_num, strtab, strtab_size) < 0)
- {
- error_callback (data, "invalid section or offset in coff symbol", 0);
- return 0;
- }
- if (coff_is_function_symbol (&isym))
- {
- ++coff_symbol_count;
- if (asym->name.short_name[0] != 0)
- coff_symstr_len += coff_short_name_len (asym->name.short_name) + 1;
- }
-
- i += asym->number_of_aux_symbols;
- }
-
- coff_symbol_size = (coff_symbol_count + 1) * sizeof (struct coff_symbol);
- coff_symbols = ((struct coff_symbol *)
- backtrace_alloc (state, coff_symbol_size, error_callback,
- data));
- if (coff_symbols == NULL)
- return 0;
-
- /* Allocate memory for symbols strings. */
- if (coff_symstr_len > 0)
- {
- coff_symstr = ((char *)
- backtrace_alloc (state, coff_symstr_len, error_callback,
- data));
- if (coff_symstr == NULL)
- {
- backtrace_free (state, coff_symbols, coff_symbol_size,
- error_callback, data);
- return 0;
- }
- }
- else
- coff_symstr = NULL;
-
- /* Copy symbols. */
- coff_sym = coff_symbols;
- coff_str = coff_symstr;
- for (i = 0; i < syms_count; ++i)
- {
- const b_coff_external_symbol *asym = &syms[i];
- b_coff_internal_symbol isym;
-
- if (coff_expand_symbol (&isym, asym, sects_num, strtab, strtab_size))
- {
- /* Should not fail, as it was already tested in the previous
- loop. */
- abort ();
- }
- if (coff_is_function_symbol (&isym))
- {
- const char *name;
- int16_t secnum;
-
- if (asym->name.short_name[0] != 0)
- {
- size_t len = coff_short_name_len (isym.name);
- name = coff_str;
- memcpy (coff_str, isym.name, len);
- coff_str[len] = 0;
- coff_str += len + 1;
- }
- else
- name = isym.name;
-
- if (!is_64)
- {
- /* Strip leading '_'. */
- if (name[0] == '_')
- name++;
- }
-
- /* Symbol value is section relative, so we need to read the address
- of its section. */
- secnum = coff_read2 (asym->section_number);
-
- coff_sym->name = name;
- coff_sym->address = (coff_read4 (asym->value)
- + sects[secnum - 1].virtual_address
- + base_address);
- coff_sym++;
- }
-
- i += asym->number_of_aux_symbols;
- }
-
- /* End of symbols marker. */
- coff_sym->name = NULL;
- coff_sym->address = -1;
-
- backtrace_qsort (coff_symbols, coff_symbol_count,
- sizeof (struct coff_symbol), coff_symbol_compare);
-
- sdata->next = NULL;
- sdata->symbols = coff_symbols;
- sdata->count = coff_symbol_count;
-
- return 1;
-}
-
-/* Add EDATA to the list in STATE. */
-
-static void
-coff_add_syminfo_data (struct backtrace_state *state,
- struct coff_syminfo_data *sdata)
-{
- if (!state->threaded)
- {
- struct coff_syminfo_data **pp;
-
- for (pp = (struct coff_syminfo_data **) (void *) &state->syminfo_data;
- *pp != NULL;
- pp = &(*pp)->next)
- ;
- *pp = sdata;
- }
- else
- {
- while (1)
- {
- struct coff_syminfo_data **pp;
-
- pp = (struct coff_syminfo_data **) (void *) &state->syminfo_data;
-
- while (1)
- {
- struct coff_syminfo_data *p;
-
- p = backtrace_atomic_load_pointer (pp);
-
- if (p == NULL)
- break;
-
- pp = &p->next;
- }
-
- if (__sync_bool_compare_and_swap (pp, NULL, sdata))
- break;
- }
- }
-}
-
-/* Compare an ADDR against an elf_symbol for bsearch. We allocate one
- extra entry in the array so that this can look safely at the next
- entry. */
-
-static int
-coff_symbol_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct coff_symbol *entry = (const struct coff_symbol *) ventry;
- uintptr_t addr;
-
- addr = *key;
- if (addr < entry->address)
- return -1;
- else if (addr >= entry[1].address)
- return 1;
- else
- return 0;
-}
-
-/* Return the symbol name and value for an ADDR. */
-
-static void
-coff_syminfo (struct backtrace_state *state, uintptr_t addr,
- backtrace_syminfo_callback callback,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data)
-{
- struct coff_syminfo_data *sdata;
- struct coff_symbol *sym = NULL;
-
- if (!state->threaded)
- {
- for (sdata = (struct coff_syminfo_data *) state->syminfo_data;
- sdata != NULL;
- sdata = sdata->next)
- {
- sym = ((struct coff_symbol *)
- bsearch (&addr, sdata->symbols, sdata->count,
- sizeof (struct coff_symbol), coff_symbol_search));
- if (sym != NULL)
- break;
- }
- }
- else
- {
- struct coff_syminfo_data **pp;
-
- pp = (struct coff_syminfo_data **) (void *) &state->syminfo_data;
- while (1)
- {
- sdata = backtrace_atomic_load_pointer (pp);
- if (sdata == NULL)
- break;
-
- sym = ((struct coff_symbol *)
- bsearch (&addr, sdata->symbols, sdata->count,
- sizeof (struct coff_symbol), coff_symbol_search));
- if (sym != NULL)
- break;
-
- pp = &sdata->next;
- }
- }
-
- if (sym == NULL)
- callback (data, addr, NULL, 0, 0);
- else
- callback (data, addr, sym->name, sym->address, 0);
-}
-
-/* Add the backtrace data for one PE/COFF file. Returns 1 on success,
- 0 on failure (in both cases descriptor is closed). */
-
-static int
-coff_add (struct backtrace_state *state, int descriptor,
- backtrace_error_callback error_callback, void *data,
- fileline *fileline_fn, int *found_sym, int *found_dwarf)
-{
- struct backtrace_view fhdr_view;
- off_t fhdr_off;
- int magic_ok;
- b_coff_file_header fhdr;
- off_t opt_sects_off;
- size_t opt_sects_size;
- unsigned int sects_num;
- struct backtrace_view sects_view;
- int sects_view_valid;
- const b_coff_optional_header *opt_hdr;
- const b_coff_section_header *sects;
- struct backtrace_view str_view;
- int str_view_valid;
- size_t str_size;
- off_t str_off;
- struct backtrace_view syms_view;
- off_t syms_off;
- size_t syms_size;
- int syms_view_valid;
- unsigned int syms_num;
- unsigned int i;
- struct debug_section_info sections[DEBUG_MAX];
- off_t min_offset;
- off_t max_offset;
- struct backtrace_view debug_view;
- int debug_view_valid;
- int is_64;
- uintptr_t image_base;
- struct dwarf_sections dwarf_sections;
-
- *found_sym = 0;
- *found_dwarf = 0;
-
- sects_view_valid = 0;
- syms_view_valid = 0;
- str_view_valid = 0;
- debug_view_valid = 0;
-
- /* Map the MS-DOS stub (if any) and extract file header offset. */
- if (!backtrace_get_view (state, descriptor, 0, 0x40, error_callback,
- data, &fhdr_view))
- goto fail;
-
- {
- const unsigned char *vptr = fhdr_view.data;
-
- if (vptr[0] == 'M' && vptr[1] == 'Z')
- fhdr_off = coff_read4 (vptr + 0x3c);
- else
- fhdr_off = 0;
- }
-
- backtrace_release_view (state, &fhdr_view, error_callback, data);
-
- /* Map the coff file header. */
- if (!backtrace_get_view (state, descriptor, fhdr_off,
- sizeof (b_coff_file_header) + 4,
- error_callback, data, &fhdr_view))
- goto fail;
-
- if (fhdr_off != 0)
- {
- const char *magic = (const char *) fhdr_view.data;
- magic_ok = memcmp (magic, "PE\0", 4) == 0;
- fhdr_off += 4;
-
- memcpy (&fhdr, fhdr_view.data + 4, sizeof fhdr);
- }
- else
- {
- memcpy (&fhdr, fhdr_view.data, sizeof fhdr);
- /* TODO: test fhdr.machine for coff but non-PE platforms. */
- magic_ok = 0;
- }
- backtrace_release_view (state, &fhdr_view, error_callback, data);
-
- if (!magic_ok)
- {
- error_callback (data, "executable file is not COFF", 0);
- goto fail;
- }
-
- sects_num = fhdr.number_of_sections;
- syms_num = fhdr.number_of_symbols;
-
- opt_sects_off = fhdr_off + sizeof (fhdr);
- opt_sects_size = (fhdr.size_of_optional_header
- + sects_num * sizeof (b_coff_section_header));
-
- /* To translate PC to file/line when using DWARF, we need to find
- the .debug_info and .debug_line sections. */
-
- /* Read the optional header and the section headers. */
-
- if (!backtrace_get_view (state, descriptor, opt_sects_off, opt_sects_size,
- error_callback, data, &sects_view))
- goto fail;
- sects_view_valid = 1;
- opt_hdr = (const b_coff_optional_header *) sects_view.data;
- sects = (const b_coff_section_header *)
- (sects_view.data + fhdr.size_of_optional_header);
-
- is_64 = 0;
- if (fhdr.size_of_optional_header > sizeof (*opt_hdr))
- {
- if (opt_hdr->magic == PE_MAGIC)
- image_base = opt_hdr->u.pe.image_base;
- else if (opt_hdr->magic == PEP_MAGIC)
- {
- image_base = opt_hdr->u.pep.image_base;
- is_64 = 1;
- }
- else
- {
- error_callback (data, "bad magic in PE optional header", 0);
- goto fail;
- }
- }
- else
- image_base = 0;
-
- /* Read the symbol table and the string table. */
-
- if (fhdr.pointer_to_symbol_table == 0)
- {
- /* No symbol table, no string table. */
- str_off = 0;
- str_size = 0;
- syms_num = 0;
- syms_size = 0;
- }
- else
- {
- /* Symbol table is followed by the string table. The string table
- starts with its length (on 4 bytes).
- Map the symbol table and the length of the string table. */
- syms_off = fhdr.pointer_to_symbol_table;
- syms_size = syms_num * SYM_SZ;
-
- if (!backtrace_get_view (state, descriptor, syms_off, syms_size + 4,
- error_callback, data, &syms_view))
- goto fail;
- syms_view_valid = 1;
-
- str_size = coff_read4 (syms_view.data + syms_size);
-
- str_off = syms_off + syms_size;
-
- if (str_size > 4)
- {
- /* Map string table (including the length word). */
-
- if (!backtrace_get_view (state, descriptor, str_off, str_size,
- error_callback, data, &str_view))
- goto fail;
- str_view_valid = 1;
- }
- }
-
- memset (sections, 0, sizeof sections);
-
- /* Look for the symbol table. */
- for (i = 0; i < sects_num; ++i)
- {
- const b_coff_section_header *s = sects + i;
- unsigned int str_off;
- int j;
-
- if (s->name[0] == '/')
- {
- /* Extended section name. */
- str_off = atoi (s->name + 1);
- }
- else
- str_off = 0;
-
- for (j = 0; j < (int) DEBUG_MAX; ++j)
- {
- const char *dbg_name = debug_section_names[j];
- int match;
-
- if (str_off != 0)
- match = coff_long_name_eq (dbg_name, str_off, &str_view);
- else
- match = coff_short_name_eq (dbg_name, s->name);
- if (match)
- {
- sections[j].offset = s->pointer_to_raw_data;
- sections[j].size = s->virtual_size <= s->size_of_raw_data ?
- s->virtual_size : s->size_of_raw_data;
- break;
- }
- }
- }
-
- if (syms_num != 0)
- {
- struct coff_syminfo_data *sdata;
-
- sdata = ((struct coff_syminfo_data *)
- backtrace_alloc (state, sizeof *sdata, error_callback, data));
- if (sdata == NULL)
- goto fail;
-
- if (!coff_initialize_syminfo (state, image_base, is_64,
- sects, sects_num,
- syms_view.data, syms_size,
- str_view.data, str_size,
- error_callback, data, sdata))
- {
- backtrace_free (state, sdata, sizeof *sdata, error_callback, data);
- goto fail;
- }
-
- *found_sym = 1;
-
- coff_add_syminfo_data (state, sdata);
- }
-
- backtrace_release_view (state, &sects_view, error_callback, data);
- sects_view_valid = 0;
- if (syms_view_valid)
- {
- backtrace_release_view (state, &syms_view, error_callback, data);
- syms_view_valid = 0;
- }
-
- /* Read all the debug sections in a single view, since they are
- probably adjacent in the file. We never release this view. */
-
- min_offset = 0;
- max_offset = 0;
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- off_t end;
-
- if (sections[i].size == 0)
- continue;
- if (min_offset == 0 || sections[i].offset < min_offset)
- min_offset = sections[i].offset;
- end = sections[i].offset + sections[i].size;
- if (end > max_offset)
- max_offset = end;
- }
- if (min_offset == 0 || max_offset == 0)
- {
- if (!backtrace_close (descriptor, error_callback, data))
- goto fail;
- *fileline_fn = coff_nodebug;
- return 1;
- }
-
- if (!backtrace_get_view (state, descriptor, min_offset,
- max_offset - min_offset,
- error_callback, data, &debug_view))
- goto fail;
- debug_view_valid = 1;
-
- /* We've read all we need from the executable. */
- if (!backtrace_close (descriptor, error_callback, data))
- goto fail;
- descriptor = -1;
-
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- size_t size = sections[i].size;
- dwarf_sections.size[i] = size;
- if (size == 0)
- dwarf_sections.data[i] = NULL;
- else
- dwarf_sections.data[i] = ((const unsigned char *) debug_view.data
- + (sections[i].offset - min_offset));
- }
-
- if (!backtrace_dwarf_add (state, /* base_address */ 0, &dwarf_sections,
- 0, /* FIXME: is_bigendian */
- NULL, /* altlink */
- error_callback, data, fileline_fn,
- NULL /* returned fileline_entry */))
- goto fail;
-
- *found_dwarf = 1;
-
- return 1;
-
- fail:
- if (sects_view_valid)
- backtrace_release_view (state, &sects_view, error_callback, data);
- if (str_view_valid)
- backtrace_release_view (state, &str_view, error_callback, data);
- if (syms_view_valid)
- backtrace_release_view (state, &syms_view, error_callback, data);
- if (debug_view_valid)
- backtrace_release_view (state, &debug_view, error_callback, data);
- if (descriptor != -1)
- backtrace_close (descriptor, error_callback, data);
- return 0;
-}
-
-/* Initialize the backtrace data we need from an ELF executable. At
- the ELF level, all we need to do is find the debug info
- sections. */
-
-int
-backtrace_initialize (struct backtrace_state *state,
- const char *filename ATTRIBUTE_UNUSED, int descriptor,
- backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn)
-{
- int ret;
- int found_sym;
- int found_dwarf;
- fileline coff_fileline_fn;
-
- ret = coff_add (state, descriptor, error_callback, data,
- &coff_fileline_fn, &found_sym, &found_dwarf);
- if (!ret)
- return 0;
-
- if (!state->threaded)
- {
- if (found_sym)
- state->syminfo_fn = coff_syminfo;
- else if (state->syminfo_fn == NULL)
- state->syminfo_fn = coff_nosyms;
- }
- else
- {
- if (found_sym)
- backtrace_atomic_store_pointer (&state->syminfo_fn, coff_syminfo);
- else
- (void) __sync_bool_compare_and_swap (&state->syminfo_fn, NULL,
- coff_nosyms);
- }
-
- if (!state->threaded)
- {
- if (state->fileline_fn == NULL || state->fileline_fn == coff_nodebug)
- *fileline_fn = coff_fileline_fn;
- }
- else
- {
- fileline current_fn;
-
- current_fn = backtrace_atomic_load_pointer (&state->fileline_fn);
- if (current_fn == NULL || current_fn == coff_nodebug)
- *fileline_fn = coff_fileline_fn;
- }
-
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/posix.c b/fluent-bit/lib/libbacktrace-8602fda/posix.c
deleted file mode 100644
index 924631d2e..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/posix.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* posix.c -- POSIX file I/O routines for the backtrace library.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#ifndef O_CLOEXEC
-#define O_CLOEXEC 0
-#endif
-
-#ifndef FD_CLOEXEC
-#define FD_CLOEXEC 1
-#endif
-
-/* Open a file for reading. */
-
-int
-backtrace_open (const char *filename, backtrace_error_callback error_callback,
- void *data, int *does_not_exist)
-{
- int descriptor;
-
- if (does_not_exist != NULL)
- *does_not_exist = 0;
-
- descriptor = open (filename, (int) (O_RDONLY | O_BINARY | O_CLOEXEC));
- if (descriptor < 0)
- {
- /* If DOES_NOT_EXIST is not NULL, then don't call ERROR_CALLBACK
- if the file does not exist. We treat lacking permission to
- open the file as the file not existing; this case arises when
- running the libgo syscall package tests as root. */
- if (does_not_exist != NULL && (errno == ENOENT || errno == EACCES))
- *does_not_exist = 1;
- else
- error_callback (data, filename, errno);
- return -1;
- }
-
-#ifdef HAVE_FCNTL
- /* Set FD_CLOEXEC just in case the kernel does not support
- O_CLOEXEC. It doesn't matter if this fails for some reason.
- FIXME: At some point it should be safe to only do this if
- O_CLOEXEC == 0. */
- fcntl (descriptor, F_SETFD, FD_CLOEXEC);
-#endif
-
- return descriptor;
-}
-
-/* Close DESCRIPTOR. */
-
-int
-backtrace_close (int descriptor, backtrace_error_callback error_callback,
- void *data)
-{
- if (close (descriptor) < 0)
- {
- error_callback (data, "close", errno);
- return 0;
- }
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/print.c b/fluent-bit/lib/libbacktrace-8602fda/print.c
deleted file mode 100644
index 93d0d3abb..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/print.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* print.c -- Print the current backtrace.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* Passed to callbacks. */
-
-struct print_data
-{
- struct backtrace_state *state;
- FILE *f;
-};
-
-/* Print one level of a backtrace. */
-
-static int
-print_callback (void *data, uintptr_t pc, const char *filename, int lineno,
- const char *function)
-{
- struct print_data *pdata = (struct print_data *) data;
-
- fprintf (pdata->f, "0x%lx %s\n\t%s:%d\n",
- (unsigned long) pc,
- function == NULL ? "???" : function,
- filename == NULL ? "???" : filename,
- lineno);
- return 0;
-}
-
-/* Print errors to stderr. */
-
-static void
-error_callback (void *data, const char *msg, int errnum)
-{
- struct print_data *pdata = (struct print_data *) data;
-
- if (pdata->state->filename != NULL)
- fprintf (stderr, "%s: ", pdata->state->filename);
- fprintf (stderr, "libbacktrace: %s", msg);
- if (errnum > 0)
- fprintf (stderr, ": %s", strerror (errnum));
- fputc ('\n', stderr);
-}
-
-/* Print a backtrace. */
-
-void __attribute__((noinline))
-backtrace_print (struct backtrace_state *state, int skip, FILE *f)
-{
- struct print_data data;
-
- data.state = state;
- data.f = f;
- backtrace_full (state, skip + 1, print_callback, error_callback,
- (void *) &data);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/read.c b/fluent-bit/lib/libbacktrace-8602fda/read.c
deleted file mode 100644
index 1811c8d2e..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/read.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* read.c -- File views without mmap.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* This file implements file views when mmap is not available. */
-
-/* Create a view of SIZE bytes from DESCRIPTOR at OFFSET. */
-
-int
-backtrace_get_view (struct backtrace_state *state, int descriptor,
- off_t offset, uint64_t size,
- backtrace_error_callback error_callback,
- void *data, struct backtrace_view *view)
-{
- uint64_t got;
- ssize_t r;
-
- if ((uint64_t) (size_t) size != size)
- {
- error_callback (data, "file size too large", 0);
- return 0;
- }
-
- if (lseek (descriptor, offset, SEEK_SET) < 0)
- {
- error_callback (data, "lseek", errno);
- return 0;
- }
-
- view->base = backtrace_alloc (state, size, error_callback, data);
- if (view->base == NULL)
- return 0;
- view->data = view->base;
- view->len = size;
-
- got = 0;
- while (got < size)
- {
- r = read (descriptor, view->base, size - got);
- if (r < 0)
- {
- error_callback (data, "read", errno);
- free (view->base);
- return 0;
- }
- if (r == 0)
- break;
- got += (uint64_t) r;
- }
-
- if (got < size)
- {
- error_callback (data, "file too short", 0);
- free (view->base);
- return 0;
- }
-
- return 1;
-}
-
-/* Release a view read by backtrace_get_view. */
-
-void
-backtrace_release_view (struct backtrace_state *state,
- struct backtrace_view *view,
- backtrace_error_callback error_callback,
- void *data)
-{
- backtrace_free (state, view->base, view->len, error_callback, data);
- view->data = NULL;
- view->base = NULL;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/simple.c b/fluent-bit/lib/libbacktrace-8602fda/simple.c
deleted file mode 100644
index 785e726e6..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/simple.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* simple.c -- The backtrace_simple function.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include "unwind.h"
-#include "backtrace.h"
-
-/* The simple_backtrace routine. */
-
-/* Data passed through _Unwind_Backtrace. */
-
-struct backtrace_simple_data
-{
- /* Number of frames to skip. */
- int skip;
- /* Library state. */
- struct backtrace_state *state;
- /* Callback routine. */
- backtrace_simple_callback callback;
- /* Error callback routine. */
- backtrace_error_callback error_callback;
- /* Data to pass to callback routine. */
- void *data;
- /* Value to return from backtrace. */
- int ret;
-};
-
-/* Unwind library callback routine. This is passed to
- _Unwind_Backtrace. */
-
-static _Unwind_Reason_Code
-simple_unwind (struct _Unwind_Context *context, void *vdata)
-{
- struct backtrace_simple_data *bdata = (struct backtrace_simple_data *) vdata;
- uintptr_t pc;
- int ip_before_insn = 0;
-
-#ifdef HAVE_GETIPINFO
- pc = _Unwind_GetIPInfo (context, &ip_before_insn);
-#else
- pc = _Unwind_GetIP (context);
-#endif
-
- if (bdata->skip > 0)
- {
- --bdata->skip;
- return _URC_NO_REASON;
- }
-
- if (!ip_before_insn)
- --pc;
-
- bdata->ret = bdata->callback (bdata->data, pc);
-
- if (bdata->ret != 0)
- return _URC_END_OF_STACK;
-
- return _URC_NO_REASON;
-}
-
-/* Get a simple stack backtrace. */
-
-int __attribute__((noinline))
-backtrace_simple (struct backtrace_state *state, int skip,
- backtrace_simple_callback callback,
- backtrace_error_callback error_callback, void *data)
-{
- struct backtrace_simple_data bdata;
-
- bdata.skip = skip + 1;
- bdata.state = state;
- bdata.callback = callback;
- bdata.error_callback = error_callback;
- bdata.data = data;
- bdata.ret = 0;
- _Unwind_Backtrace (simple_unwind, &bdata);
- return bdata.ret;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/sort.c b/fluent-bit/lib/libbacktrace-8602fda/sort.c
deleted file mode 100644
index a60a980e6..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/sort.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* sort.c -- Sort without allocating memory
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <stddef.h>
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* The GNU glibc version of qsort allocates memory, which we must not
- do if we are invoked by a signal handler. So provide our own
- sort. */
-
-static void
-swap (char *a, char *b, size_t size)
-{
- size_t i;
-
- for (i = 0; i < size; i++, a++, b++)
- {
- char t;
-
- t = *a;
- *a = *b;
- *b = t;
- }
-}
-
-void
-backtrace_qsort (void *basearg, size_t count, size_t size,
- int (*compar) (const void *, const void *))
-{
- char *base = (char *) basearg;
- size_t i;
- size_t mid;
-
- tail_recurse:
- if (count < 2)
- return;
-
- /* The symbol table and DWARF tables, which is all we use this
- routine for, tend to be roughly sorted. Pick the middle element
- in the array as our pivot point, so that we are more likely to
- cut the array in half for each recursion step. */
- swap (base, base + (count / 2) * size, size);
-
- mid = 0;
- for (i = 1; i < count; i++)
- {
- if ((*compar) (base, base + i * size) > 0)
- {
- ++mid;
- if (i != mid)
- swap (base + mid * size, base + i * size, size);
- }
- }
-
- if (mid > 0)
- swap (base, base + mid * size, size);
-
- /* Recurse with the smaller array, loop with the larger one. That
- ensures that our maximum stack depth is log count. */
- if (2 * mid < count)
- {
- backtrace_qsort (base, mid, size, compar);
- base += (mid + 1) * size;
- count -= mid + 1;
- goto tail_recurse;
- }
- else
- {
- backtrace_qsort (base + (mid + 1) * size, count - (mid + 1),
- size, compar);
- count = mid;
- goto tail_recurse;
- }
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/state.c b/fluent-bit/lib/libbacktrace-8602fda/state.c
deleted file mode 100644
index 0f368a239..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/state.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* state.c -- Create the backtrace state.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <string.h>
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-#include "internal.h"
-
-/* Create the backtrace state. This will then be passed to all the
- other routines. */
-
-struct backtrace_state *
-backtrace_create_state (const char *filename, int threaded,
- backtrace_error_callback error_callback,
- void *data)
-{
- struct backtrace_state init_state;
- struct backtrace_state *state;
-
-#ifndef HAVE_SYNC_FUNCTIONS
- if (threaded)
- {
- error_callback (data, "backtrace library does not support threads", 0);
- return NULL;
- }
-#endif
-
- memset (&init_state, 0, sizeof init_state);
- init_state.filename = filename;
- init_state.threaded = threaded;
-
- state = ((struct backtrace_state *)
- backtrace_alloc (&init_state, sizeof *state, error_callback, data));
- if (state == NULL)
- return NULL;
- *state = init_state;
-
- return state;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/stest.c b/fluent-bit/lib/libbacktrace-8602fda/stest.c
deleted file mode 100644
index 19a204de1..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/stest.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/* stest.c -- Test for libbacktrace internal sort function
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* Test the local qsort implementation. */
-
-#define MAX 10
-
-struct test
-{
- size_t count;
- int input[MAX];
- int output[MAX];
-};
-
-static struct test tests[] =
- {
- {
- 10,
- { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
- { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
- },
- {
- 9,
- { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
- { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
- },
- {
- 10,
- { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
- { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
- },
- {
- 9,
- { 9, 8, 7, 6, 5, 4, 3, 2, 1 },
- { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
- },
- {
- 10,
- { 2, 4, 6, 8, 10, 1, 3, 5, 7, 9 },
- { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
- },
- {
- 5,
- { 4, 5, 3, 1, 2 },
- { 1, 2, 3, 4, 5 },
- },
- {
- 5,
- { 1, 1, 1, 1, 1 },
- { 1, 1, 1, 1, 1 },
- },
- {
- 5,
- { 1, 1, 2, 1, 1 },
- { 1, 1, 1, 1, 2 },
- },
- {
- 5,
- { 2, 1, 1, 1, 1 },
- { 1, 1, 1, 1, 2 },
- },
- };
-
-static int
-compare (const void *a, const void *b)
-{
- const int *ai = (const int *) a;
- const int *bi = (const int *) b;
-
- return *ai - *bi;
-}
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
-{
- int failures;
- size_t i;
- int a[MAX];
-
- failures = 0;
- for (i = 0; i < sizeof tests / sizeof tests[0]; i++)
- {
- memcpy (a, tests[i].input, tests[i].count * sizeof (int));
- backtrace_qsort (a, tests[i].count, sizeof (int), compare);
- if (memcmp (a, tests[i].output, tests[i].count * sizeof (int)) != 0)
- {
- size_t j;
-
- fprintf (stderr, "test %d failed:", (int) i);
- for (j = 0; j < tests[i].count; j++)
- fprintf (stderr, " %d", a[j]);
- fprintf (stderr, "\n");
- ++failures;
- }
- }
-
- exit (failures > 0 ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/test-driver b/fluent-bit/lib/libbacktrace-8602fda/test-driver
deleted file mode 100755
index 0218a01f6..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/test-driver
+++ /dev/null
@@ -1,148 +0,0 @@
-#! /bin/sh
-# test-driver - basic testsuite driver script.
-
-scriptversion=2016-01-11.22; # UTC
-
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-# Make unconditional expansion of undefined variables an error. This
-# helps a lot in preventing typo-related bugs.
-set -u
-
-usage_error ()
-{
- echo "$0: $*" >&2
- print_usage >&2
- exit 2
-}
-
-print_usage ()
-{
- cat <<END
-Usage:
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
- [--enable-hard-errors={yes|no}] [--]
- TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
-The '--test-name', '--log-file' and '--trs-file' options are mandatory.
-END
-}
-
-test_name= # Used for reporting.
-log_file= # Where to save the output of the test script.
-trs_file= # Where to save the metadata of the test run.
-expect_failure=no
-color_tests=no
-enable_hard_errors=yes
-while test $# -gt 0; do
- case $1 in
- --help) print_usage; exit $?;;
- --version) echo "test-driver $scriptversion"; exit $?;;
- --test-name) test_name=$2; shift;;
- --log-file) log_file=$2; shift;;
- --trs-file) trs_file=$2; shift;;
- --color-tests) color_tests=$2; shift;;
- --expect-failure) expect_failure=$2; shift;;
- --enable-hard-errors) enable_hard_errors=$2; shift;;
- --) shift; break;;
- -*) usage_error "invalid option: '$1'";;
- *) break;;
- esac
- shift
-done
-
-missing_opts=
-test x"$test_name" = x && missing_opts="$missing_opts --test-name"
-test x"$log_file" = x && missing_opts="$missing_opts --log-file"
-test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
-if test x"$missing_opts" != x; then
- usage_error "the following mandatory options are missing:$missing_opts"
-fi
-
-if test $# -eq 0; then
- usage_error "missing argument"
-fi
-
-if test $color_tests = yes; then
- # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
- red='' # Red.
- grn='' # Green.
- lgn='' # Light green.
- blu='' # Blue.
- mgn='' # Magenta.
- std='' # No color.
-else
- red= grn= lgn= blu= mgn= std=
-fi
-
-do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
-trap "st=129; $do_exit" 1
-trap "st=130; $do_exit" 2
-trap "st=141; $do_exit" 13
-trap "st=143; $do_exit" 15
-
-# Test script is run here.
-"$@" >$log_file 2>&1
-estatus=$?
-
-if test $enable_hard_errors = no && test $estatus -eq 99; then
- tweaked_estatus=1
-else
- tweaked_estatus=$estatus
-fi
-
-case $tweaked_estatus:$expect_failure in
- 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
- 0:*) col=$grn res=PASS recheck=no gcopy=no;;
- 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
- 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
- *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
- *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
-esac
-
-# Report the test outcome and exit status in the logs, so that one can
-# know whether the test passed or failed simply by looking at the '.log'
-# file, without the need of also peaking into the corresponding '.trs'
-# file (automake bug#11814).
-echo "$res $test_name (exit status: $estatus)" >>$log_file
-
-# Report outcome to console.
-echo "${col}${res}${std}: $test_name"
-
-# Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trs_file
-echo ":global-test-result: $res" >> $trs_file
-echo ":recheck: $recheck" >> $trs_file
-echo ":copy-in-global-log: $gcopy" >> $trs_file
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/fluent-bit/lib/libbacktrace-8602fda/test_format.c b/fluent-bit/lib/libbacktrace-8602fda/test_format.c
deleted file mode 100644
index 9deb6f5b2..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/test_format.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* test_format.c -- Test for libbacktrace library
- Copyright (C) 2018-2021 Free Software Foundation, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-/* This program tests the externally visible interfaces of the
- libbacktrace library. */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "filenames.h"
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "testlib.h"
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
- exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/testlib.c b/fluent-bit/lib/libbacktrace-8602fda/testlib.c
deleted file mode 100644
index 3d24c19e7..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/testlib.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* testlib.c -- test functions for libbacktrace library
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "filenames.h"
-
-#include "backtrace.h"
-
-#include "testlib.h"
-
-/* The backtrace state. */
-
-void *state;
-
-/* The number of failures. */
-
-int failures;
-
-/* Return the base name in a path. */
-
-const char *
-base (const char *p)
-{
- const char *last;
- const char *s;
-
- last = NULL;
- for (s = p; *s != '\0'; ++s)
- {
- if (IS_DIR_SEPARATOR (*s))
- last = s + 1;
- }
- return last != NULL ? last : p;
-}
-
-/* Check an entry in a struct info array. */
-
-void
-check (const char *name, int index, const struct info *all, int want_lineno,
- const char *want_function, const char *want_file, int *failed)
-{
- if (*failed)
- return;
- if (all[index].filename == NULL || all[index].function == NULL)
- {
- fprintf (stderr, "%s: [%d]: missing file name or function name\n",
- name, index);
- *failed = 1;
- return;
- }
- if (strcmp (base (all[index].filename), want_file) != 0)
- {
- fprintf (stderr, "%s: [%d]: got %s expected %s\n", name, index,
- all[index].filename, want_file);
- *failed = 1;
- }
- if (all[index].lineno != want_lineno)
- {
- fprintf (stderr, "%s: [%d]: got %d expected %d\n", name, index,
- all[index].lineno, want_lineno);
- *failed = 1;
- }
- if (strcmp (all[index].function, want_function) != 0)
- {
- fprintf (stderr, "%s: [%d]: got %s expected %s\n", name, index,
- all[index].function, want_function);
- *failed = 1;
- }
-}
-
-/* The backtrace callback function. */
-
-int
-callback_one (void *vdata, uintptr_t pc ATTRIBUTE_UNUSED,
- const char *filename, int lineno, const char *function)
-{
- struct bdata *data = (struct bdata *) vdata;
- struct info *p;
-
- if (data->index >= data->max)
- {
- fprintf (stderr, "callback_one: callback called too many times\n");
- data->failed = 1;
- return 1;
- }
-
- p = &data->all[data->index];
- if (filename == NULL)
- p->filename = NULL;
- else
- {
- p->filename = strdup (filename);
- assert (p->filename != NULL);
- }
- p->lineno = lineno;
- if (function == NULL)
- p->function = NULL;
- else
- {
- p->function = strdup (function);
- assert (p->function != NULL);
- }
- ++data->index;
-
- return 0;
-}
-
-/* An error callback passed to backtrace. */
-
-void
-error_callback_one (void *vdata, const char *msg, int errnum)
-{
- struct bdata *data = (struct bdata *) vdata;
-
- fprintf (stderr, "%s", msg);
- if (errnum > 0)
- fprintf (stderr, ": %s", strerror (errnum));
- fprintf (stderr, "\n");
- data->failed = 1;
-}
-
-/* The backtrace_simple callback function. */
-
-int
-callback_two (void *vdata, uintptr_t pc)
-{
- struct sdata *data = (struct sdata *) vdata;
-
- if (data->index >= data->max)
- {
- fprintf (stderr, "callback_two: callback called too many times\n");
- data->failed = 1;
- return 1;
- }
-
- data->addrs[data->index] = pc;
- ++data->index;
-
- return 0;
-}
-
-/* An error callback passed to backtrace_simple. */
-
-void
-error_callback_two (void *vdata, const char *msg, int errnum)
-{
- struct sdata *data = (struct sdata *) vdata;
-
- fprintf (stderr, "%s", msg);
- if (errnum > 0)
- fprintf (stderr, ": %s", strerror (errnum));
- fprintf (stderr, "\n");
- data->failed = 1;
-}
-
-/* The backtrace_syminfo callback function. */
-
-void
-callback_three (void *vdata, uintptr_t pc ATTRIBUTE_UNUSED,
- const char *symname, uintptr_t symval,
- uintptr_t symsize)
-{
- struct symdata *data = (struct symdata *) vdata;
-
- if (symname == NULL)
- data->name = NULL;
- else
- {
- data->name = strdup (symname);
- assert (data->name != NULL);
- }
- data->val = symval;
- data->size = symsize;
-}
-
-/* The backtrace_syminfo error callback function. */
-
-void
-error_callback_three (void *vdata, const char *msg, int errnum)
-{
- struct symdata *data = (struct symdata *) vdata;
-
- fprintf (stderr, "%s", msg);
- if (errnum > 0)
- fprintf (stderr, ": %s", strerror (errnum));
- fprintf (stderr, "\n");
- data->failed = 1;
-}
-
-/* The backtrace_create_state error callback function. */
-
-void
-error_callback_create (void *data ATTRIBUTE_UNUSED, const char *msg,
- int errnum)
-{
- fprintf (stderr, "%s", msg);
- if (errnum > 0)
- fprintf (stderr, ": %s", strerror (errnum));
- fprintf (stderr, "\n");
- exit (EXIT_FAILURE);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/testlib.h b/fluent-bit/lib/libbacktrace-8602fda/testlib.h
deleted file mode 100644
index 29542a588..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/testlib.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* testlib.h -- Header for test functions for libbacktrace library
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#ifndef LIBBACKTRACE_TESTLIB_H
-#define LIBBACKTRACE_TESTLIB_H
-
-/* Portable attribute syntax. Actually some of these tests probably
- won't work if the attributes are not recognized. */
-
-#ifndef GCC_VERSION
-# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
-#endif
-
-#if (GCC_VERSION < 2007)
-# define __attribute__(x)
-#endif
-
-#ifndef ATTRIBUTE_UNUSED
-# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#endif
-
-/* Used to collect backtrace info. */
-
-struct info
-{
- char *filename;
- int lineno;
- char *function;
-};
-
-/* Passed to backtrace callback function. */
-
-struct bdata
-{
- struct info *all;
- size_t index;
- size_t max;
- int failed;
-};
-
-/* Passed to backtrace_simple callback function. */
-
-struct sdata
-{
- uintptr_t *addrs;
- size_t index;
- size_t max;
- int failed;
-};
-
-/* Passed to backtrace_syminfo callback function. */
-
-struct symdata
-{
- const char *name;
- uintptr_t val, size;
- int failed;
-};
-
-/* The backtrace state. */
-
-extern void *state;
-
-/* The number of failures. */
-
-extern int failures;
-
-extern const char *base (const char *p);
-extern void check (const char *name, int index, const struct info *all,
- int want_lineno, const char *want_function,
- const char *want_file, int *failed);
-extern int callback_one (void *, uintptr_t, const char *, int, const char *);
-extern void error_callback_one (void *, const char *, int);
-extern int callback_two (void *, uintptr_t);
-extern void error_callback_two (void *, const char *, int);
-extern void callback_three (void *, uintptr_t, const char *, uintptr_t,
- uintptr_t);
-extern void error_callback_three (void *, const char *, int);
-extern void error_callback_create (void *, const char *, int);
-
-#endif /* !defined(LIBBACKTRACE_TESTLIB_H) */
diff --git a/fluent-bit/lib/libbacktrace-8602fda/ttest.c b/fluent-bit/lib/libbacktrace-8602fda/ttest.c
deleted file mode 100644
index 3758b33f0..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/ttest.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* ttest.c -- Test for libbacktrace library
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-/* Test using the libbacktrace library from multiple threads. */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <pthread.h>
-
-#include "filenames.h"
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "testlib.h"
-
-static int f2 (int) __attribute__ ((noinline));
-static int f3 (int, int) __attribute__ ((noinline));
-
-/* Test that a simple backtrace works. This is called via
- pthread_create. It returns the number of failures, as void *. */
-
-static void *
-test1_thread (void *arg ATTRIBUTE_UNUSED)
-{
- /* Returning a value here and elsewhere avoids a tailcall which
- would mess up the backtrace. */
- return (void *) (uintptr_t) (f2 (__LINE__) - 2);
-}
-
-static int
-f2 (int f1line)
-{
- return f3 (f1line, __LINE__) + 2;
-}
-
-static int
-f3 (int f1line, int f2line)
-{
- struct info all[20];
- struct bdata data;
- int f3line;
- int i;
-
- data.all = &all[0];
- data.index = 0;
- data.max = 20;
- data.failed = 0;
-
- f3line = __LINE__ + 1;
- i = backtrace_full (state, 0, callback_one, error_callback_one, &data);
-
- if (i != 0)
- {
- fprintf (stderr, "test1: unexpected return value %d\n", i);
- data.failed = 1;
- }
-
- if (data.index < 3)
- {
- fprintf (stderr,
- "test1: not enough frames; got %zu, expected at least 3\n",
- data.index);
- data.failed = 1;
- }
-
- check ("test1", 0, all, f3line, "f3", "ttest.c", &data.failed);
- check ("test1", 1, all, f2line, "f2", "ttest.c", &data.failed);
- check ("test1", 2, all, f1line, "test1_thread", "ttest.c", &data.failed);
-
- return data.failed;
-}
-
-/* Run the test with 10 threads simultaneously. */
-
-#define THREAD_COUNT 10
-
-static void test1 (void) __attribute__ ((unused));
-
-static void
-test1 (void)
-{
- pthread_t atid[THREAD_COUNT];
- int i;
- int errnum;
- int this_fail;
- void *ret;
-
- for (i = 0; i < THREAD_COUNT; i++)
- {
- errnum = pthread_create (&atid[i], NULL, test1_thread, NULL);
- if (errnum != 0)
- {
- fprintf (stderr, "pthread_create %d: %s\n", i, strerror (errnum));
- exit (EXIT_FAILURE);
- }
- }
-
- this_fail = 0;
- for (i = 0; i < THREAD_COUNT; i++)
- {
- errnum = pthread_join (atid[i], &ret);
- if (errnum != 0)
- {
- fprintf (stderr, "pthread_join %d: %s\n", i, strerror (errnum));
- exit (EXIT_FAILURE);
- }
- this_fail += (int) (uintptr_t) ret;
- }
-
- printf ("%s: threaded backtrace_full noinline\n", this_fail > 0 ? "FAIL" : "PASS");
-
- failures += this_fail;
-}
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
-#if BACKTRACE_SUPPORTED
-#if BACKTRACE_SUPPORTS_THREADS
- test1 ();
-#endif
-#endif
-
- exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/unittest.c b/fluent-bit/lib/libbacktrace-8602fda/unittest.c
deleted file mode 100644
index 3c8562304..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/unittest.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* unittest.c -- Test for libbacktrace library
- Copyright (C) 2018-2021 Free Software Foundation, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "filenames.h"
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "testlib.h"
-
-#include "internal.h"
-
-static unsigned count;
-
-static void
-error_callback (void *vdata ATTRIBUTE_UNUSED, const char *msg ATTRIBUTE_UNUSED,
- int errnum ATTRIBUTE_UNUSED)
-{
- ++count;
-}
-
-static int
-test1 (void)
-{
- int res;
- int failed;
-
- struct backtrace_vector vec;
-
- memset (&vec, 0, sizeof vec);
-
- backtrace_vector_grow (state, 100, error_callback, NULL, &vec);
- vec.alc += vec.size;
- vec.size = 0;
-
- count = 0;
- res = backtrace_vector_release (state, &vec, error_callback, NULL);
- failed = res != 1 || count != 0 || vec.base != NULL;
-
- printf ("%s: unittest backtrace_vector_release size == 0\n",
- failed ? "FAIL": "PASS");
-
- if (failed)
- ++failures;
-
- return failures;
-}
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
- test1 ();
-
- exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/unknown.c b/fluent-bit/lib/libbacktrace-8602fda/unknown.c
deleted file mode 100644
index a62cbf11e..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/unknown.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* unknown.c -- used when backtrace configury does not know file format.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <sys/types.h>
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* A trivial routine that always fails to find fileline data. */
-
-static int
-unknown_fileline (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t pc, backtrace_full_callback callback,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data)
-
-{
- return callback (data, pc, NULL, 0, NULL);
-}
-
-/* Initialize the backtrace data when we don't know how to read the
- debug info. */
-
-int
-backtrace_initialize (struct backtrace_state *state ATTRIBUTE_UNUSED,
- const char *filename ATTRIBUTE_UNUSED,
- int descriptor ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data ATTRIBUTE_UNUSED, fileline *fileline_fn)
-{
- state->fileline_data = NULL;
- *fileline_fn = unknown_fileline;
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/xcoff.c b/fluent-bit/lib/libbacktrace-8602fda/xcoff.c
deleted file mode 100644
index 1e65c0055..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/xcoff.c
+++ /dev/null
@@ -1,1606 +0,0 @@
-/* xcoff.c -- Get debug data from an XCOFF file for backtraces.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Adapted from elf.c.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#ifdef HAVE_LOADQUERY
-#include <sys/ldr.h>
-#endif
-
-#include "backtrace.h"
-#include "internal.h"
-
-/* The configure script must tell us whether we are 32-bit or 64-bit
- XCOFF. We could make this code test and support either possibility,
- but there is no point. This code only works for the currently
- running executable, which means that we know the XCOFF mode at
- configure time. */
-
-#if BACKTRACE_XCOFF_SIZE != 32 && BACKTRACE_XCOFF_SIZE != 64
-#error "Unknown BACKTRACE_XCOFF_SIZE"
-#endif
-
-/* XCOFF file header. */
-
-#if BACKTRACE_XCOFF_SIZE == 32
-
-typedef struct {
- uint16_t f_magic;
- uint16_t f_nscns;
- uint32_t f_timdat;
- uint32_t f_symptr;
- uint32_t f_nsyms;
- uint16_t f_opthdr;
- uint16_t f_flags;
-} b_xcoff_filhdr;
-
-#define XCOFF_MAGIC 0737
-
-#else /* BACKTRACE_XCOFF_SIZE != 32 */
-
-typedef struct {
- uint16_t f_magic;
- uint16_t f_nscns;
- uint32_t f_timdat;
- uint64_t f_symptr;
- uint16_t f_opthdr;
- uint16_t f_flags;
- uint32_t f_nsyms;
-} b_xcoff_filhdr;
-
-#define XCOFF_MAGIC 0767
-
-#endif /* BACKTRACE_XCOFF_SIZE != 32 */
-
-#define F_SHROBJ 0x2000 /* File is a shared object. */
-
-/* XCOFF section header. */
-
-#if BACKTRACE_XCOFF_SIZE == 32
-
-typedef struct {
- char s_name[8];
- uint32_t s_paddr;
- uint32_t s_vaddr;
- uint32_t s_size;
- uint32_t s_scnptr;
- uint32_t s_relptr;
- uint32_t s_lnnoptr;
- uint16_t s_nreloc;
- uint16_t s_nlnno;
- uint32_t s_flags;
-} b_xcoff_scnhdr;
-
-#define _OVERFLOW_MARKER 65535
-
-#else /* BACKTRACE_XCOFF_SIZE != 32 */
-
-typedef struct {
- char name[8];
- uint64_t s_paddr;
- uint64_t s_vaddr;
- uint64_t s_size;
- uint64_t s_scnptr;
- uint64_t s_relptr;
- uint64_t s_lnnoptr;
- uint32_t s_nreloc;
- uint32_t s_nlnno;
- uint32_t s_flags;
-} b_xcoff_scnhdr;
-
-#endif /* BACKTRACE_XCOFF_SIZE != 32 */
-
-#define STYP_DWARF 0x10 /* DWARF debugging section. */
-#define STYP_TEXT 0x20 /* Executable text (code) section. */
-#define STYP_OVRFLO 0x8000 /* Line-number field overflow section. */
-
-#define SSUBTYP_DWINFO 0x10000 /* DWARF info section. */
-#define SSUBTYP_DWLINE 0x20000 /* DWARF line-number section. */
-#define SSUBTYP_DWARNGE 0x50000 /* DWARF aranges section. */
-#define SSUBTYP_DWABREV 0x60000 /* DWARF abbreviation section. */
-#define SSUBTYP_DWSTR 0x70000 /* DWARF strings section. */
-
-/* XCOFF symbol. */
-
-#define SYMNMLEN 8
-
-#if BACKTRACE_XCOFF_SIZE == 32
-
-typedef struct {
- union {
- char _name[SYMNMLEN];
- struct {
- uint32_t _zeroes;
- uint32_t _offset;
- } _s;
- } _u;
-#define n_name _u._name
-#define n_zeroes _u._s._zeroes
-#define n_offset_ _u._s._offset
-
- uint32_t n_value;
- int16_t n_scnum;
- uint16_t n_type;
- uint8_t n_sclass;
- uint8_t n_numaux;
-} __attribute__ ((packed)) b_xcoff_syment;
-
-#else /* BACKTRACE_XCOFF_SIZE != 32 */
-
-typedef struct {
- uint64_t n_value;
- uint32_t n_offset_;
- int16_t n_scnum;
- uint16_t n_type;
- uint8_t n_sclass;
- uint8_t n_numaux;
-} __attribute__ ((packed)) b_xcoff_syment;
-
-#endif /* BACKTRACE_XCOFF_SIZE != 32 */
-
-#define SYMESZ 18
-
-#define C_EXT 2 /* External symbol. */
-#define C_FCN 101 /* Beginning or end of function. */
-#define C_FILE 103 /* Source file name. */
-#define C_HIDEXT 107 /* Unnamed external symbol. */
-#define C_BINCL 108 /* Beginning of include file. */
-#define C_EINCL 109 /* End of include file. */
-#define C_WEAKEXT 111 /* Weak external symbol. */
-
-#define ISFCN(x) ((x) & 0x0020)
-
-/* XCOFF AUX entry. */
-
-#define AUXESZ 18
-#define FILNMLEN 14
-
-typedef union {
-#if BACKTRACE_XCOFF_SIZE == 32
- struct {
- uint16_t pad;
- uint16_t x_lnnohi;
- uint16_t x_lnno;
- } x_block;
-#else
- struct {
- uint32_t x_lnno;
- } x_block;
-#endif
- union {
- char x_fname[FILNMLEN];
- struct {
- uint32_t x_zeroes;
- uint32_t x_offset;
- char pad[FILNMLEN-8];
- uint8_t x_ftype;
- } _x;
- } x_file;
-#if BACKTRACE_XCOFF_SIZE == 32
- struct {
- uint32_t x_exptr;
- uint32_t x_fsize;
- uint32_t x_lnnoptr;
- uint32_t x_endndx;
- } x_fcn;
-#else
- struct {
- uint64_t x_lnnoptr;
- uint32_t x_fsize;
- uint32_t x_endndx;
- } x_fcn;
-#endif
- struct {
- uint8_t pad[AUXESZ-1];
- uint8_t x_auxtype;
- } x_auxtype;
-} __attribute__ ((packed)) b_xcoff_auxent;
-
-/* XCOFF line number entry. */
-
-#if BACKTRACE_XCOFF_SIZE == 32
-
-typedef struct {
- union {
- uint32_t l_symndx;
- uint32_t l_paddr;
- } l_addr;
- uint16_t l_lnno;
-} b_xcoff_lineno;
-
-#define LINESZ 6
-
-#else /* BACKTRACE_XCOFF_SIZE != 32 */
-
-typedef struct {
- union {
- uint32_t l_symndx;
- uint64_t l_paddr;
- } l_addr;
- uint32_t l_lnno;
-} b_xcoff_lineno;
-
-#define LINESZ 12
-
-#endif /* BACKTRACE_XCOFF_SIZE != 32 */
-
-#if BACKTRACE_XCOFF_SIZE == 32
-#define XCOFF_AIX_TEXTBASE 0x10000000u
-#else
-#define XCOFF_AIX_TEXTBASE 0x100000000ul
-#endif
-
-/* AIX big archive fixed-length header. */
-
-#define AIAMAGBIG "<bigaf>\n"
-
-typedef struct {
- char fl_magic[8]; /* Archive magic string. */
- char fl_memoff[20]; /* Offset to member table. */
- char fl_gstoff[20]; /* Offset to global symbol table. */
- char fl_gst64off[20]; /* Offset to global symbol table for 64-bit objects. */
- char fl_fstmoff[20]; /* Offset to first archive member. */
- char fl_freeoff[20]; /* Offset to first member on free list. */
-} b_ar_fl_hdr;
-
-/* AIX big archive file member header. */
-
-typedef struct {
- char ar_size[20]; /* File member size - decimal. */
- char ar_nxtmem[20]; /* Next member offset - decimal. */
- char ar_prvmem[20]; /* Previous member offset - decimal. */
- char ar_date[12]; /* File member date - decimal. */
- char ar_uid[12]; /* File member userid - decimal. */
- char ar_gid[12]; /* File member group id - decimal. */
- char ar_mode[12]; /* File member mode - octal. */
- char ar_namlen[4]; /* File member name length - decimal. */
- char ar_name[2]; /* Start of member name. */
-} b_ar_hdr;
-
-
-/* Information we keep for an XCOFF symbol. */
-
-struct xcoff_symbol
-{
- /* The name of the symbol. */
- const char *name;
- /* The address of the symbol. */
- uintptr_t address;
- /* The size of the symbol. */
- size_t size;
-};
-
-/* Information to pass to xcoff_syminfo. */
-
-struct xcoff_syminfo_data
-{
- /* Symbols for the next module. */
- struct xcoff_syminfo_data *next;
- /* The XCOFF symbols, sorted by address. */
- struct xcoff_symbol *symbols;
- /* The number of symbols. */
- size_t count;
-};
-
-/* Information about an include file. */
-
-struct xcoff_incl
-{
- /* File name. */
- const char *filename;
- /* Offset to first line number from the include file. */
- uintptr_t begin;
- /* Offset to last line number from the include file. */
- uintptr_t end;
-};
-
-/* A growable vector of include files information. */
-
-struct xcoff_incl_vector
-{
- /* Memory. This is an array of struct xcoff_incl. */
- struct backtrace_vector vec;
- /* Number of include files. */
- size_t count;
-};
-
-/* A growable vector of functions information. */
-
-struct xcoff_func
-{
- /* PC. */
- uintptr_t pc;
- /* The size of the function. */
- size_t size;
- /* Function name. */
- const char *name;
- /* File name. */
- const char *filename;
- /* Pointer to first lnno entry. */
- uintptr_t lnnoptr;
- /* Base address of containing section. */
- uintptr_t sect_base;
- /* Starting source line number. */
- int lnno;
-};
-
-/* A growable vector of function information. This is used while
- reading the function symbols. */
-
-struct xcoff_func_vector
-{
- /* Memory. This is an array of struct xcoff_func. */
- struct backtrace_vector vec;
- /* Number of valid mappings. */
- size_t count;
-};
-
-/* The information we need to map a PC to a file and line. */
-
-struct xcoff_fileline_data
-{
- /* The data for the next file we know about. */
- struct xcoff_fileline_data *next;
- /* Functions information. */
- struct xcoff_func_vector func_vec;
- /* Include files information. */
- struct xcoff_incl_vector incl_vec;
- /* Line numbers information. */
- const unsigned char *linenos;
- size_t linenos_size;
- uint64_t lnnoptr0;
- /* Loader address. */
- uintptr_t base_address;
-};
-
-/* Information we gather for the DWARF sections we care about. */
-
-struct dwsect_info
-{
- /* Section file offset. */
- off_t offset;
- /* Section size. */
- size_t size;
- /* Section contents, after read from file. */
- const unsigned char *data;
-};
-
-/* A dummy callback function used when we can't find any debug info. */
-
-static int
-xcoff_nodebug (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t pc ATTRIBUTE_UNUSED,
- backtrace_full_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data, "no debug info in XCOFF executable", -1);
- return 0;
-}
-
-/* A dummy callback function used when we can't find a symbol
- table. */
-
-static void
-xcoff_nosyms (struct backtrace_state *state ATTRIBUTE_UNUSED,
- uintptr_t addr ATTRIBUTE_UNUSED,
- backtrace_syminfo_callback callback ATTRIBUTE_UNUSED,
- backtrace_error_callback error_callback, void *data)
-{
- error_callback (data, "no symbol table in XCOFF executable", -1);
-}
-
-/* Compare struct xcoff_symbol for qsort. */
-
-static int
-xcoff_symbol_compare (const void *v1, const void *v2)
-{
- const struct xcoff_symbol *e1 = (const struct xcoff_symbol *) v1;
- const struct xcoff_symbol *e2 = (const struct xcoff_symbol *) v2;
-
- if (e1->address < e2->address)
- return -1;
- else if (e1->address > e2->address)
- return 1;
- else
- return 0;
-}
-
-/* Compare an ADDR against an xcoff_symbol for bsearch. */
-
-static int
-xcoff_symbol_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct xcoff_symbol *entry = (const struct xcoff_symbol *) ventry;
- uintptr_t addr;
-
- addr = *key;
- if (addr < entry->address)
- return -1;
- else if ((entry->size == 0 && addr > entry->address)
- || (entry->size > 0 && addr >= entry->address + entry->size))
- return 1;
- else
- return 0;
-}
-
-/* Add XDATA to the list in STATE. */
-
-static void
-xcoff_add_syminfo_data (struct backtrace_state *state,
- struct xcoff_syminfo_data *xdata)
-{
- if (!state->threaded)
- {
- struct xcoff_syminfo_data **pp;
-
- for (pp = (struct xcoff_syminfo_data **) (void *) &state->syminfo_data;
- *pp != NULL;
- pp = &(*pp)->next)
- ;
- *pp = xdata;
- }
- else
- {
- while (1)
- {
- struct xcoff_syminfo_data **pp;
-
- pp = (struct xcoff_syminfo_data **) (void *) &state->syminfo_data;
-
- while (1)
- {
- struct xcoff_syminfo_data *p;
-
- p = backtrace_atomic_load_pointer (pp);
-
- if (p == NULL)
- break;
-
- pp = &p->next;
- }
-
- if (__sync_bool_compare_and_swap (pp, NULL, xdata))
- break;
- }
- }
-}
-
-/* Return the symbol name and value for an ADDR. */
-
-static void
-xcoff_syminfo (struct backtrace_state *state ATTRIBUTE_UNUSED, uintptr_t addr,
- backtrace_syminfo_callback callback,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data)
-{
- struct xcoff_syminfo_data *edata;
- struct xcoff_symbol *sym = NULL;
- const char *name;
-
- if (!state->threaded)
- {
- for (edata = (struct xcoff_syminfo_data *) state->syminfo_data;
- edata != NULL;
- edata = edata->next)
- {
- sym = ((struct xcoff_symbol *)
- bsearch (&addr, edata->symbols, edata->count,
- sizeof (struct xcoff_symbol), xcoff_symbol_search));
- if (sym != NULL)
- break;
- }
- }
- else
- {
- struct xcoff_syminfo_data **pp;
-
- pp = (struct xcoff_syminfo_data **) (void *) &state->syminfo_data;
- while (1)
- {
- edata = backtrace_atomic_load_pointer (pp);
- if (edata == NULL)
- break;
-
- sym = ((struct xcoff_symbol *)
- bsearch (&addr, edata->symbols, edata->count,
- sizeof (struct xcoff_symbol), xcoff_symbol_search));
- if (sym != NULL)
- break;
-
- pp = &edata->next;
- }
- }
-
- if (sym == NULL)
- callback (data, addr, NULL, 0, 0);
- else
- {
- name = sym->name;
- /* AIX prepends a '.' to function entry points, remove it. */
- if (name && *name == '.')
- ++name;
- callback (data, addr, name, sym->address, sym->size);
- }
-}
-
-/* Return the name of an XCOFF symbol. */
-
-static const char *
-xcoff_symname (const b_xcoff_syment *asym,
- const unsigned char *strtab, size_t strtab_size)
-{
-#if BACKTRACE_XCOFF_SIZE == 32
- if (asym->n_zeroes != 0)
- {
- /* Make a copy as we will release the symtab view. */
- char name[SYMNMLEN+1];
- strncpy (name, asym->n_name, SYMNMLEN);
- name[SYMNMLEN] = '\0';
- return strdup (name);
- }
-#endif
- if (asym->n_sclass & 0x80)
- return NULL; /* .debug */
- if (asym->n_offset_ >= strtab_size)
- return NULL;
- return (const char *) strtab + asym->n_offset_;
-}
-
-/* Initialize the symbol table info for xcoff_syminfo. */
-
-static int
-xcoff_initialize_syminfo (struct backtrace_state *state,
- uintptr_t base_address,
- const b_xcoff_scnhdr *sects,
- const b_xcoff_syment *syms, size_t nsyms,
- const unsigned char *strtab, size_t strtab_size,
- backtrace_error_callback error_callback, void *data,
- struct xcoff_syminfo_data *sdata)
-{
- size_t xcoff_symbol_count;
- size_t xcoff_symbol_size;
- struct xcoff_symbol *xcoff_symbols;
- size_t i;
- unsigned int j;
-
- /* We only care about function symbols. Count them. */
- xcoff_symbol_count = 0;
- for (i = 0; i < nsyms; ++i)
- {
- const b_xcoff_syment *asym = &syms[i];
- if ((asym->n_sclass == C_EXT || asym->n_sclass == C_HIDEXT
- || asym->n_sclass == C_WEAKEXT)
- && ISFCN (asym->n_type) && asym->n_numaux > 0 && asym->n_scnum > 0)
- ++xcoff_symbol_count;
-
- i += asym->n_numaux;
- }
-
- xcoff_symbol_size = xcoff_symbol_count * sizeof (struct xcoff_symbol);
- xcoff_symbols = ((struct xcoff_symbol *)
- backtrace_alloc (state, xcoff_symbol_size, error_callback,
- data));
- if (xcoff_symbols == NULL)
- return 0;
-
- j = 0;
- for (i = 0; i < nsyms; ++i)
- {
- const b_xcoff_syment *asym = &syms[i];
- if ((asym->n_sclass == C_EXT || asym->n_sclass == C_HIDEXT
- || asym->n_sclass == C_WEAKEXT)
- && ISFCN (asym->n_type) && asym->n_numaux > 0 && asym->n_scnum > 0)
- {
- const b_xcoff_auxent *aux = (const b_xcoff_auxent *) (asym + 1);
- xcoff_symbols[j].name = xcoff_symname (asym, strtab, strtab_size);
- xcoff_symbols[j].address = base_address + asym->n_value
- - sects[asym->n_scnum - 1].s_paddr;
- /* x_fsize will be 0 if there is no debug information. */
- xcoff_symbols[j].size = aux->x_fcn.x_fsize;
- ++j;
- }
-
- i += asym->n_numaux;
- }
-
- backtrace_qsort (xcoff_symbols, xcoff_symbol_count,
- sizeof (struct xcoff_symbol), xcoff_symbol_compare);
-
- sdata->next = NULL;
- sdata->symbols = xcoff_symbols;
- sdata->count = xcoff_symbol_count;
-
- return 1;
-}
-
-/* Compare struct xcoff_func for qsort. */
-
-static int
-xcoff_func_compare (const void *v1, const void *v2)
-{
- const struct xcoff_func *fn1 = (const struct xcoff_func *) v1;
- const struct xcoff_func *fn2 = (const struct xcoff_func *) v2;
-
- if (fn1->pc < fn2->pc)
- return -1;
- else if (fn1->pc > fn2->pc)
- return 1;
- else
- return 0;
-}
-
-/* Compare a PC against an xcoff_func for bsearch. */
-
-static int
-xcoff_func_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct xcoff_func *entry = (const struct xcoff_func *) ventry;
- uintptr_t pc;
-
- pc = *key;
- if (pc < entry->pc)
- return -1;
- else if ((entry->size == 0 && pc > entry->pc)
- || (entry->size > 0 && pc >= entry->pc + entry->size))
- return 1;
- else
- return 0;
-}
-
-/* Compare struct xcoff_incl for qsort. */
-
-static int
-xcoff_incl_compare (const void *v1, const void *v2)
-{
- const struct xcoff_incl *in1 = (const struct xcoff_incl *) v1;
- const struct xcoff_incl *in2 = (const struct xcoff_incl *) v2;
-
- if (in1->begin < in2->begin)
- return -1;
- else if (in1->begin > in2->begin)
- return 1;
- else
- return 0;
-}
-
-/* Find a lnnoptr in an include file. */
-
-static int
-xcoff_incl_search (const void *vkey, const void *ventry)
-{
- const uintptr_t *key = (const uintptr_t *) vkey;
- const struct xcoff_incl *entry = (const struct xcoff_incl *) ventry;
- uintptr_t lnno;
-
- lnno = *key;
- if (lnno < entry->begin)
- return -1;
- else if (lnno > entry->end)
- return 1;
- else
- return 0;
-}
-
-/* Look for a PC in the function vector for one module. On success,
- call CALLBACK and return whatever it returns. On error, call
- ERROR_CALLBACK and return 0. Sets *FOUND to 1 if the PC is found,
- 0 if not. */
-
-static int
-xcoff_lookup_pc (struct backtrace_state *state ATTRIBUTE_UNUSED,
- struct xcoff_fileline_data *fdata, uintptr_t pc,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
- void *data, int *found)
-{
- const struct xcoff_incl *incl, *bincl;
- const struct xcoff_func *fn;
- const b_xcoff_lineno *lineno;
- const unsigned char *lineptr;
- const char *function;
- const char *filename;
- uintptr_t lnnoptr, match;
- uint32_t lnno = 0;
-
- *found = 1;
-
- if ((pc & 3) != 0)
- ++pc;
-
- /* Find the function first. */
- fn = ((struct xcoff_func *)
- bsearch (&pc, fdata->func_vec.vec.base, fdata->func_vec.count,
- sizeof (struct xcoff_func), xcoff_func_search));
- if (fn == NULL)
- {
- *found = 0;
- return 0;
- }
-
- filename = fn->filename;
-
- /* Find the line number next. */
-
- /* Skip first entry that points to symtab. */
- lnnoptr = fn->lnnoptr + LINESZ;
- match = lnnoptr;
-
- lineptr = fdata->linenos + (lnnoptr - fdata->lnnoptr0);
- while (lineptr + LINESZ <= fdata->linenos + fdata->linenos_size)
- {
- lineno = (const b_xcoff_lineno *) lineptr;
- if (lineno->l_lnno == 0)
- break;
- if (pc <= fdata->base_address + lineno->l_addr.l_paddr - fn->sect_base)
- break;
- match = lnnoptr;
- lnno = lineno->l_lnno;
-
- lnnoptr += LINESZ;
- lineptr += LINESZ;
- }
-
- /* If part of a function other than the beginning comes from an
- include file, the line numbers are absolute, rather than
- relative to the beginning of the function. */
- incl = ((struct xcoff_incl *)
- bsearch (&match, fdata->incl_vec.vec.base,
- fdata->incl_vec.count, sizeof (struct xcoff_incl),
- xcoff_incl_search));
- if (incl != NULL)
- {
- bincl = ((struct xcoff_incl *)
- bsearch (&fn->lnnoptr, fdata->incl_vec.vec.base,
- fdata->incl_vec.count, sizeof (struct xcoff_incl),
- xcoff_incl_search));
- if (bincl != NULL && strcmp (incl->filename, bincl->filename) == 0)
- {
- lnno += fn->lnno - 1;
- }
- filename = incl->filename;
- }
- else
- {
- lnno += fn->lnno - 1;
- }
-
- function = fn->name;
- /* AIX prepends a '.' to function entry points, remove it. */
- if (function != NULL && *function == '.')
- ++function;
- return callback (data, pc, filename, lnno, function);
-}
-
-/* Return the file/line information for a PC using the XCOFF lineno
- mapping we built earlier. */
-
-static int
-xcoff_fileline (struct backtrace_state *state, uintptr_t pc,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data)
-
-{
- struct xcoff_fileline_data *fdata;
- int found;
- int ret;
-
- if (!state->threaded)
- {
- for (fdata = (struct xcoff_fileline_data *) state->fileline_data;
- fdata != NULL;
- fdata = fdata->next)
- {
- ret = xcoff_lookup_pc (state, fdata, pc, callback, error_callback,
- data, &found);
- if (ret != 0 || found)
- return ret;
- }
- }
- else
- {
- struct xcoff_fileline_data **pp;
-
- pp = (struct xcoff_fileline_data **) (void *) &state->fileline_data;
- while (1)
- {
- fdata = backtrace_atomic_load_pointer (pp);
- if (fdata == NULL)
- break;
-
- ret = xcoff_lookup_pc (state, fdata, pc, callback, error_callback,
- data, &found);
- if (ret != 0 || found)
- return ret;
-
- pp = &fdata->next;
- }
- }
-
- /* FIXME: See if any libraries have been dlopen'ed. */
-
- return callback (data, pc, NULL, 0, NULL);
-}
-
-/* Initialize the function vector info for xcoff_fileline. */
-
-static int
-xcoff_initialize_fileline (struct backtrace_state *state,
- uintptr_t base_address,
- const b_xcoff_scnhdr *sects,
- const b_xcoff_syment *syms, size_t nsyms,
- const unsigned char *strtab, size_t strtab_size,
- const unsigned char *linenos, size_t linenos_size,
- uint64_t lnnoptr0,
- backtrace_error_callback error_callback, void *data)
-{
- struct xcoff_fileline_data *fdata;
- struct xcoff_func *fn;
- const b_xcoff_syment *fsym;
- const b_xcoff_auxent *aux;
- const char *filename;
- const char *name;
- struct xcoff_incl *incl;
- uintptr_t begin, end;
- uintptr_t lnno, lnnoptr;
- uint32_t fsize;
- size_t i;
-
- fdata = ((struct xcoff_fileline_data *)
- backtrace_alloc (state, sizeof (struct xcoff_fileline_data),
- error_callback, data));
- if (fdata == NULL)
- return 0;
- memset (fdata, 0, sizeof *fdata);
- fdata->base_address = base_address;
- fdata->linenos = linenos;
- fdata->linenos_size = linenos_size;
- fdata->lnnoptr0 = lnnoptr0;
-
- begin = 0;
- filename = NULL;
- fsym = NULL;
- lnnoptr = 0;
- fsize = 0;
- for (i = 0; i < nsyms; ++i)
- {
- const b_xcoff_syment *asym = &syms[i];
-
- switch (asym->n_sclass)
- {
- case C_BINCL:
- begin = asym->n_value;
- break;
-
- case C_EINCL:
- if (begin == 0)
- break;
- end = asym->n_value;
- incl = ((struct xcoff_incl *)
- backtrace_vector_grow (state, sizeof (struct xcoff_incl),
- error_callback, data,
- &fdata->incl_vec.vec));
- if (incl != NULL)
- {
- incl->filename = xcoff_symname (asym, strtab, strtab_size);
- incl->begin = begin;
- incl->end = end;
- ++fdata->incl_vec.count;
- }
- begin = 0;
- break;
-
- case C_FILE:
- filename = xcoff_symname (asym, strtab, strtab_size);
- if (filename == NULL)
- break;
-
- /* If the file auxiliary entry is not used, the symbol name is
- the name of the source file. If the file auxiliary entry is
- used, then the symbol name should be .file, and the first
- file auxiliary entry (by convention) contains the source
- file name. */
-
- if (asym->n_numaux > 0 && strcmp (filename, ".file") == 0)
- {
- aux = (const b_xcoff_auxent *) (asym + 1);
- if (aux->x_file._x.x_zeroes != 0)
- {
- /* Make a copy as we will release the symtab view. */
- char name[FILNMLEN+1];
- strncpy (name, aux->x_file.x_fname, FILNMLEN);
- name[FILNMLEN] = '\0';
- filename = strdup (name);
- }
- else if (aux->x_file._x.x_offset < strtab_size)
- filename = (const char *) strtab + aux->x_file._x.x_offset;
- else
- filename = NULL;
- }
- break;
-
- case C_EXT:
- case C_HIDEXT:
- case C_WEAKEXT:
- fsym = NULL;
- lnnoptr = 0;
- fsize = 0;
- if (!ISFCN (asym->n_type) || asym->n_numaux == 0
- || asym->n_scnum <= 0)
- break;
- if (filename == NULL)
- break;
- aux = (const b_xcoff_auxent *) (asym + 1);
- lnnoptr = aux->x_fcn.x_lnnoptr;
- if (lnnoptr < lnnoptr0
- || lnnoptr + LINESZ > lnnoptr0 + linenos_size)
- break;
- /* x_fsize will be 0 if there is no debug information. */
- fsize = aux->x_fcn.x_fsize;
- fsym = asym;
- break;
-
- case C_FCN:
- if (asym->n_numaux == 0)
- break;
- if (fsym == NULL)
- break;
- name = xcoff_symname (asym, strtab, strtab_size);
- if (name == NULL || strcmp (name, ".bf") != 0)
- {
- fsym = NULL;
- break;
- }
- aux = (const b_xcoff_auxent *) (asym + 1);
-#if BACKTRACE_XCOFF_SIZE == 32
- lnno = (uint32_t) aux->x_block.x_lnnohi << 16
- | aux->x_block.x_lnno;
-#else
- lnno = aux->x_block.x_lnno;
-#endif
- fn = ((struct xcoff_func *)
- backtrace_vector_grow (state, sizeof (struct xcoff_func),
- error_callback, data,
- &fdata->func_vec.vec));
- if (fn == NULL)
- break;
- fn->name = xcoff_symname (fsym, strtab, strtab_size);
- fn->filename = filename;
- fn->sect_base = sects[fsym->n_scnum - 1].s_paddr;
- fn->pc = base_address + fsym->n_value - fn->sect_base;
- fn->size = fsize;
- fn->lnno = lnno;
- fn->lnnoptr = lnnoptr;
- ++fdata->func_vec.count;
- break;
- }
-
- i += asym->n_numaux;
- }
-
- if (!backtrace_vector_release (state, &fdata->func_vec.vec, error_callback,
- data))
- goto fail;
- backtrace_qsort (fdata->func_vec.vec.base, fdata->func_vec.count,
- sizeof (struct xcoff_func), xcoff_func_compare);
-
- if (!backtrace_vector_release (state, &fdata->incl_vec.vec, error_callback,
- data))
- goto fail;
- backtrace_qsort (fdata->incl_vec.vec.base, fdata->incl_vec.count,
- sizeof (struct xcoff_incl), xcoff_incl_compare);
-
- if (!state->threaded)
- {
- struct xcoff_fileline_data **pp;
-
- for (pp = (struct xcoff_fileline_data **) (void *) &state->fileline_data;
- *pp != NULL;
- pp = &(*pp)->next)
- ;
- *pp = fdata;
- }
- else
- {
- while (1)
- {
- struct xcoff_fileline_data **pp;
-
- pp = (struct xcoff_fileline_data **) (void *) &state->fileline_data;
-
- while (1)
- {
- struct xcoff_fileline_data *p;
-
- p = backtrace_atomic_load_pointer (pp);
-
- if (p == NULL)
- break;
-
- pp = &p->next;
- }
-
- if (__sync_bool_compare_and_swap (pp, NULL, fdata))
- break;
- }
- }
-
- return 1;
-
-fail:
- return 0;
-}
-
-/* Add the backtrace data for one XCOFF file. Returns 1 on success,
- 0 on failure (in both cases descriptor is closed). */
-
-static int
-xcoff_add (struct backtrace_state *state, int descriptor, off_t offset,
- uintptr_t base_address, backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn, int *found_sym, int exe)
-{
- struct backtrace_view fhdr_view;
- struct backtrace_view sects_view;
- struct backtrace_view linenos_view;
- struct backtrace_view syms_view;
- struct backtrace_view str_view;
- struct backtrace_view dwarf_view;
- b_xcoff_filhdr fhdr;
- const b_xcoff_scnhdr *sects;
- const b_xcoff_scnhdr *stext;
- uint64_t lnnoptr;
- uint32_t nlnno;
- off_t str_off;
- off_t min_offset;
- off_t max_offset;
- struct dwsect_info dwsect[DEBUG_MAX];
- size_t sects_size;
- size_t syms_size;
- int32_t str_size;
- int sects_view_valid;
- int linenos_view_valid;
- int syms_view_valid;
- int str_view_valid;
- int dwarf_view_valid;
- int magic_ok;
- int i;
- struct dwarf_sections dwarf_sections;
-
- *found_sym = 0;
-
- sects_view_valid = 0;
- linenos_view_valid = 0;
- syms_view_valid = 0;
- str_view_valid = 0;
- dwarf_view_valid = 0;
-
- str_size = 0;
-
- /* Map the XCOFF file header. */
- if (!backtrace_get_view (state, descriptor, offset, sizeof (b_xcoff_filhdr),
- error_callback, data, &fhdr_view))
- goto fail;
-
- memcpy (&fhdr, fhdr_view.data, sizeof fhdr);
- magic_ok = (fhdr.f_magic == XCOFF_MAGIC);
-
- backtrace_release_view (state, &fhdr_view, error_callback, data);
-
- if (!magic_ok)
- {
- if (exe)
- error_callback (data, "executable file is not XCOFF", 0);
- goto fail;
- }
-
- /* Verify object is of expected type. */
- if ((exe && (fhdr.f_flags & F_SHROBJ))
- || (!exe && !(fhdr.f_flags & F_SHROBJ)))
- goto fail;
-
- /* Read the section headers. */
-
- sects_size = fhdr.f_nscns * sizeof (b_xcoff_scnhdr);
-
- if (!backtrace_get_view (state, descriptor,
- offset + sizeof (fhdr) + fhdr.f_opthdr,
- sects_size, error_callback, data, &sects_view))
- goto fail;
- sects_view_valid = 1;
- sects = (const b_xcoff_scnhdr *) sects_view.data;
-
- /* FIXME: assumes only one .text section. */
- for (i = 0; i < fhdr.f_nscns; ++i)
- if ((sects[i].s_flags & 0xffff) == STYP_TEXT)
- break;
- if (i == fhdr.f_nscns)
- goto fail;
-
- stext = &sects[i];
-
- /* AIX ldinfo_textorg includes the XCOFF headers. */
- base_address = (exe ? XCOFF_AIX_TEXTBASE : base_address) + stext->s_scnptr;
-
- lnnoptr = stext->s_lnnoptr;
- nlnno = stext->s_nlnno;
-
-#if BACKTRACE_XCOFF_SIZE == 32
- if (nlnno == _OVERFLOW_MARKER)
- {
- int sntext = i + 1;
- /* Find the matching .ovrflo section. */
- for (i = 0; i < fhdr.f_nscns; ++i)
- {
- if (((sects[i].s_flags & 0xffff) == STYP_OVRFLO)
- && sects[i].s_nlnno == sntext)
- {
- nlnno = sects[i].s_vaddr;
- break;
- }
- }
- }
-#endif
-
- /* Read the symbol table and the string table. */
-
- if (fhdr.f_symptr != 0)
- {
- struct xcoff_syminfo_data *sdata;
-
- /* Symbol table is followed by the string table. The string table
- starts with its length (on 4 bytes).
- Map the symbol table and the length of the string table. */
- syms_size = fhdr.f_nsyms * sizeof (b_xcoff_syment);
-
- if (!backtrace_get_view (state, descriptor, offset + fhdr.f_symptr,
- syms_size + 4, error_callback, data,
- &syms_view))
- goto fail;
- syms_view_valid = 1;
-
- memcpy (&str_size, syms_view.data + syms_size, 4);
-
- str_off = fhdr.f_symptr + syms_size;
-
- if (str_size > 4)
- {
- /* Map string table (including the length word). */
-
- if (!backtrace_get_view (state, descriptor, offset + str_off,
- str_size, error_callback, data, &str_view))
- goto fail;
- str_view_valid = 1;
- }
-
- sdata = ((struct xcoff_syminfo_data *)
- backtrace_alloc (state, sizeof *sdata, error_callback, data));
- if (sdata == NULL)
- goto fail;
-
- if (!xcoff_initialize_syminfo (state, base_address, sects,
- syms_view.data, fhdr.f_nsyms,
- str_view.data, str_size,
- error_callback, data, sdata))
- {
- backtrace_free (state, sdata, sizeof *sdata, error_callback, data);
- goto fail;
- }
-
- *found_sym = 1;
-
- xcoff_add_syminfo_data (state, sdata);
- }
-
- /* Read all the DWARF sections in a single view, since they are
- probably adjacent in the file. We never release this view. */
-
- min_offset = 0;
- max_offset = 0;
- memset (dwsect, 0, sizeof dwsect);
- for (i = 0; i < fhdr.f_nscns; ++i)
- {
- off_t end;
- int idx;
-
- if ((sects[i].s_flags & 0xffff) != STYP_DWARF
- || sects[i].s_size == 0)
- continue;
- /* Map DWARF section to array index. */
- switch (sects[i].s_flags & 0xffff0000)
- {
- case SSUBTYP_DWINFO:
- idx = DEBUG_INFO;
- break;
- case SSUBTYP_DWLINE:
- idx = DEBUG_LINE;
- break;
- case SSUBTYP_DWABREV:
- idx = DEBUG_ABBREV;
- break;
- case SSUBTYP_DWARNGE:
- idx = DEBUG_RANGES;
- break;
- case SSUBTYP_DWSTR:
- idx = DEBUG_STR;
- break;
- default:
- continue;
- }
- if (min_offset == 0 || (off_t) sects[i].s_scnptr < min_offset)
- min_offset = sects[i].s_scnptr;
- end = sects[i].s_scnptr + sects[i].s_size;
- if (end > max_offset)
- max_offset = end;
- dwsect[idx].offset = sects[i].s_scnptr;
- dwsect[idx].size = sects[i].s_size;
- }
- if (min_offset != 0 && max_offset != 0)
- {
- if (!backtrace_get_view (state, descriptor, offset + min_offset,
- max_offset - min_offset,
- error_callback, data, &dwarf_view))
- goto fail;
- dwarf_view_valid = 1;
-
- for (i = 0; i < (int) DEBUG_MAX; ++i)
- {
- if (dwsect[i].offset == 0)
- dwsect[i].data = NULL;
- else
- dwsect[i].data = ((const unsigned char *) dwarf_view.data
- + (dwsect[i].offset - min_offset));
- }
-
- memset (&dwarf_sections, 0, sizeof dwarf_sections);
-
- dwarf_sections.data[DEBUG_INFO] = dwsect[DEBUG_INFO].data;
- dwarf_sections.size[DEBUG_INFO] = dwsect[DEBUG_INFO].size;
-#if BACKTRACE_XCOFF_SIZE == 32
- /* XXX workaround for broken lineoff */
- dwarf_sections.data[DEBUG_LINE] = dwsect[DEBUG_LINE].data - 4;
-#else
- /* XXX workaround for broken lineoff */
- dwarf_sections.data[DEBUG_LINE] = dwsect[DEBUG_LINE].data - 12;
-#endif
- dwarf_sections.size[DEBUG_LINE] = dwsect[DEBUG_LINE].size;
- dwarf_sections.data[DEBUG_ABBREV] = dwsect[DEBUG_ABBREV].data;
- dwarf_sections.size[DEBUG_ABBREV] = dwsect[DEBUG_ABBREV].size;
- dwarf_sections.data[DEBUG_RANGES] = dwsect[DEBUG_RANGES].data;
- dwarf_sections.size[DEBUG_RANGES] = dwsect[DEBUG_RANGES].size;
- dwarf_sections.data[DEBUG_STR] = dwsect[DEBUG_STR].data;
- dwarf_sections.size[DEBUG_STR] = dwsect[DEBUG_STR].size;
-
- if (!backtrace_dwarf_add (state, 0, &dwarf_sections,
- 1, /* big endian */
- NULL, /* altlink */
- error_callback, data, fileline_fn,
- NULL /* returned fileline_entry */))
- goto fail;
- }
-
- /* Read the XCOFF line number entries if DWARF sections not found. */
-
- if (!dwarf_view_valid && fhdr.f_symptr != 0 && lnnoptr != 0)
- {
- size_t linenos_size = (size_t) nlnno * LINESZ;
-
- /* We never release this view. */
- if (!backtrace_get_view (state, descriptor, offset + lnnoptr,
- linenos_size,
- error_callback, data, &linenos_view))
- goto fail;
- linenos_view_valid = 1;
-
- if (xcoff_initialize_fileline (state, base_address, sects,
- syms_view.data, fhdr.f_nsyms,
- str_view.data, str_size,
- linenos_view.data, linenos_size,
- lnnoptr, error_callback, data))
- *fileline_fn = xcoff_fileline;
- }
-
- backtrace_release_view (state, &sects_view, error_callback, data);
- sects_view_valid = 0;
- if (syms_view_valid)
- backtrace_release_view (state, &syms_view, error_callback, data);
- syms_view_valid = 0;
-
- /* We've read all we need from the executable. */
- if (!backtrace_close (descriptor, error_callback, data))
- goto fail;
- descriptor = -1;
-
- return 1;
-
- fail:
- if (sects_view_valid)
- backtrace_release_view (state, &sects_view, error_callback, data);
- if (str_view_valid)
- backtrace_release_view (state, &str_view, error_callback, data);
- if (syms_view_valid)
- backtrace_release_view (state, &syms_view, error_callback, data);
- if (linenos_view_valid)
- backtrace_release_view (state, &linenos_view, error_callback, data);
- if (dwarf_view_valid)
- backtrace_release_view (state, &dwarf_view, error_callback, data);
- if (descriptor != -1 && offset == 0)
- backtrace_close (descriptor, error_callback, data);
- return 0;
-}
-
-#ifdef HAVE_LOADQUERY
-
-/* Read an integer value in human-readable format from an AIX
- big archive fixed-length or member header. */
-
-static int
-xcoff_parse_decimal (const char *buf, size_t size, off_t *off)
-{
- char str[32];
- char *end;
-
- if (size >= sizeof str)
- return 0;
- memcpy (str, buf, size);
- str[size] = '\0';
- *off = strtol (str, &end, 10);
- if (*end != '\0' && *end != ' ')
- return 0;
-
- return 1;
-}
-
-/* Add the backtrace data for a member of an AIX big archive.
- Returns 1 on success, 0 on failure. */
-
-static int
-xcoff_armem_add (struct backtrace_state *state, int descriptor,
- uintptr_t base_address, const char *member,
- backtrace_error_callback error_callback, void *data,
- fileline *fileline_fn, int *found_sym)
-{
- struct backtrace_view view;
- b_ar_fl_hdr fl_hdr;
- const b_ar_hdr *ar_hdr;
- off_t off;
- off_t len;
- int memlen;
-
- *found_sym = 0;
-
- /* Map archive fixed-length header. */
-
- if (!backtrace_get_view (state, descriptor, 0, sizeof (b_ar_fl_hdr),
- error_callback, data, &view))
- goto fail;
-
- memcpy (&fl_hdr, view.data, sizeof (b_ar_fl_hdr));
-
- backtrace_release_view (state, &view, error_callback, data);
-
- if (memcmp (fl_hdr.fl_magic, AIAMAGBIG, 8) != 0)
- goto fail;
-
- memlen = strlen (member);
-
- /* Read offset of first archive member. */
- if (!xcoff_parse_decimal (fl_hdr.fl_fstmoff, sizeof fl_hdr.fl_fstmoff, &off))
- goto fail;
- while (off != 0)
- {
- /* Map archive member header and member name. */
-
- if (!backtrace_get_view (state, descriptor, off,
- sizeof (b_ar_hdr) + memlen,
- error_callback, data, &view))
- break;
-
- ar_hdr = (const b_ar_hdr *) view.data;
-
- /* Read archive member name length. */
- if (!xcoff_parse_decimal (ar_hdr->ar_namlen, sizeof ar_hdr->ar_namlen,
- &len))
- {
- backtrace_release_view (state, &view, error_callback, data);
- break;
- }
- if (len == memlen && !memcmp (ar_hdr->ar_name, member, memlen))
- {
- off = (off + sizeof (b_ar_hdr) + memlen + 1) & ~1;
-
- /* The archive can contain several members with the same name
- (e.g. 32-bit and 64-bit), so continue if not ok. */
-
- if (xcoff_add (state, descriptor, off, base_address, error_callback,
- data, fileline_fn, found_sym, 0))
- {
- backtrace_release_view (state, &view, error_callback, data);
- return 1;
- }
- }
-
- /* Read offset of next archive member. */
- if (!xcoff_parse_decimal (ar_hdr->ar_nxtmem, sizeof ar_hdr->ar_nxtmem,
- &off))
- {
- backtrace_release_view (state, &view, error_callback, data);
- break;
- }
- backtrace_release_view (state, &view, error_callback, data);
- }
-
- fail:
- /* No matching member found. */
- backtrace_close (descriptor, error_callback, data);
- return 0;
-}
-
-/* Add the backtrace data for dynamically loaded libraries. */
-
-static void
-xcoff_add_shared_libs (struct backtrace_state *state,
- backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn, int *found_sym)
-{
- const struct ld_info *ldinfo;
- void *buf;
- unsigned int buflen;
- const char *member;
- int descriptor;
- int does_not_exist;
- int lib_found_sym;
- int ret;
-
- /* Retrieve the list of loaded libraries. */
-
- buf = NULL;
- buflen = 512;
- do
- {
- buf = realloc (buf, buflen);
- if (buf == NULL)
- {
- ret = -1;
- break;
- }
- ret = loadquery (L_GETINFO, buf, buflen);
- if (ret == 0)
- break;
- buflen *= 2;
- }
- while (ret == -1 && errno == ENOMEM);
- if (ret != 0)
- {
- free (buf);
- return;
- }
-
- ldinfo = (const struct ld_info *) buf;
- while ((const char *) ldinfo < (const char *) buf + buflen)
- {
- if (*ldinfo->ldinfo_filename != '/')
- goto next;
-
- descriptor = backtrace_open (ldinfo->ldinfo_filename, error_callback,
- data, &does_not_exist);
- if (descriptor < 0)
- goto next;
-
- /* Check if it is an archive (member name not empty). */
-
- member = ldinfo->ldinfo_filename + strlen (ldinfo->ldinfo_filename) + 1;
- if (*member)
- {
- xcoff_armem_add (state, descriptor,
- (uintptr_t) ldinfo->ldinfo_textorg, member,
- error_callback, data, fileline_fn, &lib_found_sym);
- }
- else
- {
- xcoff_add (state, descriptor, 0, (uintptr_t) ldinfo->ldinfo_textorg,
- error_callback, data, fileline_fn, &lib_found_sym, 0);
- }
- if (lib_found_sym)
- *found_sym = 1;
-
- next:
- if (ldinfo->ldinfo_next == 0)
- break;
- ldinfo = (const struct ld_info *) ((const char *) ldinfo
- + ldinfo->ldinfo_next);
- }
-
- free (buf);
-}
-#endif /* HAVE_LOADQUERY */
-
-/* Initialize the backtrace data we need from an XCOFF executable.
- Returns 1 on success, 0 on failure. */
-
-int
-backtrace_initialize (struct backtrace_state *state,
- const char *filename ATTRIBUTE_UNUSED, int descriptor,
- backtrace_error_callback error_callback,
- void *data, fileline *fileline_fn)
-{
- int ret;
- int found_sym;
- fileline xcoff_fileline_fn = xcoff_nodebug;
-
- ret = xcoff_add (state, descriptor, 0, 0, error_callback, data,
- &xcoff_fileline_fn, &found_sym, 1);
- if (!ret)
- return 0;
-
-#ifdef HAVE_LOADQUERY
- xcoff_add_shared_libs (state, error_callback, data, &xcoff_fileline_fn,
- &found_sym);
-#endif
-
- if (!state->threaded)
- {
- if (found_sym)
- state->syminfo_fn = xcoff_syminfo;
- else if (state->syminfo_fn == NULL)
- state->syminfo_fn = xcoff_nosyms;
- }
- else
- {
- if (found_sym)
- backtrace_atomic_store_pointer (&state->syminfo_fn, xcoff_syminfo);
- else
- (void) __sync_bool_compare_and_swap (&state->syminfo_fn, NULL,
- xcoff_nosyms);
- }
-
- if (!state->threaded)
- {
- if (state->fileline_fn == NULL || state->fileline_fn == xcoff_nodebug)
- *fileline_fn = xcoff_fileline_fn;
- }
- else
- {
- fileline current_fn;
-
- current_fn = backtrace_atomic_load_pointer (&state->fileline_fn);
- if (current_fn == NULL || current_fn == xcoff_nodebug)
- *fileline_fn = xcoff_fileline_fn;
- }
-
- return 1;
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/xztest.c b/fluent-bit/lib/libbacktrace-8602fda/xztest.c
deleted file mode 100644
index b2533cb18..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/xztest.c
+++ /dev/null
@@ -1,508 +0,0 @@
-/* xztest.c -- Test for libbacktrace LZMA decoder.
- Copyright (C) 2020-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef HAVE_LIBLZMA
-#include <lzma.h>
-#endif
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "internal.h"
-#include "testlib.h"
-
-#ifndef HAVE_CLOCK_GETTIME
-
-typedef int xclockid_t;
-
-static int
-xclock_gettime (xclockid_t id ATTRIBUTE_UNUSED,
- struct timespec *ts ATTRIBUTE_UNUSED)
-{
- errno = EINVAL;
- return -1;
-}
-
-#define clockid_t xclockid_t
-#define clock_gettime xclock_gettime
-#undef CLOCK_REALTIME
-#define CLOCK_REALTIME 0
-
-#endif /* !defined(HAVE_CLOCK_GETTIME) */
-
-#ifdef CLOCK_PROCESS_CPUTIME_ID
-#define LIBLZMA_CLOCK_GETTIME_ARG CLOCK_PROCESS_CPUTIME_ID
-#else
-#define LIBLZMA_CLOCK_GETTIME_ARG CLOCK_REALTIME
-#endif
-
-/* Some tests for the local lzma inflation code. */
-
-struct lzma_test
-{
- const char *name;
- const char *uncompressed;
- size_t uncompressed_len;
- const char *compressed;
- size_t compressed_len;
-};
-
-/* Error callback. */
-
-static void
-error_callback_compress (void *vdata ATTRIBUTE_UNUSED, const char *msg,
- int errnum)
-{
- fprintf (stderr, "%s", msg);
- if (errnum > 0)
- fprintf (stderr, ": %s", strerror (errnum));
- fprintf (stderr, "\n");
- exit (EXIT_FAILURE);
-}
-
-static const struct lzma_test tests[] =
-{
- {
- "empty",
- "",
- 0,
- ("\xfd\x37\x7a\x58\x5a\x00\x00\x04\xe6\xd6\xb4\x46\x00\x00\x00\x00"
- "\x1c\xdf\x44\x21\x1f\xb6\xf3\x7d\x01\x00\x00\x00\x00\x04\x59\x5a"),
- 32,
- },
- {
- "hello",
- "hello, world\n",
- 0,
- ("\xfd\x37\x7a\x58\x5a\x00\x00\x04\xe6\xd6\xb4\x46\x02\x00\x21\x01"
- "\x16\x00\x00\x00\x74\x2f\xe5\xa3\x01\x00\x0c\x68\x65\x6c\x6c\x6f"
- "\x2c\x20\x77\x6f\x72\x6c\x64\x0a\x00\x00\x00\x00\x7b\x46\x5a\x81"
- "\xc9\x12\xb8\xea\x00\x01\x25\x0d\x71\x19\xc4\xb6\x1f\xb6\xf3\x7d"
- "\x01\x00\x00\x00\x00\x04\x59\x5a"),
- 72,
- },
- {
- "goodbye",
- "goodbye, world",
- 0,
- ("\xfd\x37\x7a\x58\x5a\x00\x00\x04\xe6\xd6\xb4\x46\x02\x00\x21\x01"
- "\x16\x00\x00\x00\x74\x2f\xe5\xa3\x01\x00\x0d\x67\x6f\x6f\x64\x62"
- "\x79\x65\x2c\x20\x77\x6f\x72\x6c\x64\x00\x00\x00\xf6\xf8\xa3\x33"
- "\x8c\x4e\xc9\x68\x00\x01\x26\x0e\x08\x1b\xe0\x04\x1f\xb6\xf3\x7d"
- "\x01\x00\x00\x00\x00\x04\x59\x5a"),
- 72,
- },
-};
-
-/* Test the hand coded samples. */
-
-static void
-test_samples (struct backtrace_state *state)
-{
- size_t i;
-
- for (i = 0; i < sizeof tests / sizeof tests[0]; ++i)
- {
- unsigned char *uncompressed;
- size_t uncompressed_len;
-
- uncompressed = NULL;
- uncompressed_len = 0;
- if (!backtrace_uncompress_lzma (state,
- ((const unsigned char *)
- tests[i].compressed),
- tests[i].compressed_len,
- error_callback_compress, NULL,
- &uncompressed, &uncompressed_len))
- {
- fprintf (stderr, "test %s: uncompress failed\n", tests[i].name);
- ++failures;
- }
- else
- {
- size_t v;
-
- v = tests[i].uncompressed_len;
- if (v == 0)
- v = strlen (tests[i].uncompressed);
- if (uncompressed_len != v)
- {
- fprintf (stderr,
- "test %s: got uncompressed length %zu, want %zu\n",
- tests[i].name, uncompressed_len, v);
- ++failures;
- }
- else if (memcmp (tests[i].uncompressed, uncompressed, v) != 0)
- {
- size_t j;
-
- fprintf (stderr, "test %s: uncompressed data mismatch\n",
- tests[i].name);
- for (j = 0; j < v; ++j)
- if (tests[i].uncompressed[j] != uncompressed[j])
- fprintf (stderr, " %zu: got %#x want %#x\n", j,
- uncompressed[j], tests[i].uncompressed[j]);
- ++failures;
- }
- else
- printf ("PASS: lzma %s\n", tests[i].name);
-
- backtrace_free (state, uncompressed, uncompressed_len,
- error_callback_compress, NULL);
- }
- }
-}
-
-#if HAVE_LIBLZMA
-
-/* Given a set of TRIALS timings, discard the lowest and highest
- values and return the mean average of the rest. */
-
-static size_t
-average_time (const size_t *times, size_t trials)
-{
- size_t imax;
- size_t max;
- size_t imin;
- size_t min;
- size_t i;
- size_t sum;
-
- imin = 0;
- imax = 0;
- min = times[0];
- max = times[0];
- for (i = 1; i < trials; ++i)
- {
- if (times[i] < min)
- {
- imin = i;
- min = times[i];
- }
- if (times[i] > max)
- {
- imax = i;
- max = times[i];
- }
- }
-
- sum = 0;
- for (i = 0; i < trials; ++i)
- {
- if (i != imax && i != imin)
- sum += times[i];
- }
- return sum / (trials - 2);
-}
-
-#endif
-
-/* Test a larger text, if available. */
-
-static void
-test_large (struct backtrace_state *state ATTRIBUTE_UNUSED)
-{
-#if HAVE_LIBLZMA
- unsigned char *orig_buf;
- size_t orig_bufsize;
- size_t i;
- lzma_stream initial_stream = LZMA_STREAM_INIT;
- lzma_stream stream;
- unsigned char *compressed_buf;
- size_t compressed_bufsize;
- unsigned char *uncompressed_buf;
- size_t uncompressed_bufsize;
- unsigned char *spare_buf;
- int r;
- clockid_t cid;
- struct timespec ts1;
- struct timespec ts2;
- size_t ctime;
- size_t ztime;
- const size_t trials = 16;
- size_t ctimes[16];
- size_t ztimes[16];
- static const char * const names[] = {
- "Isaac.Newton-Opticks.txt",
- "../libgo/go/testdata/Isaac.Newton-Opticks.txt",
- };
-
- orig_buf = NULL;
- orig_bufsize = 0;
- uncompressed_buf = NULL;
- compressed_buf = NULL;
-
- for (i = 0; i < sizeof names / sizeof names[0]; ++i)
- {
- size_t len;
- char *namebuf;
- FILE *e;
- struct stat st;
- char *rbuf;
- size_t got;
-
- len = strlen (SRCDIR) + strlen (names[i]) + 2;
- namebuf = malloc (len);
- if (namebuf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
- snprintf (namebuf, len, "%s/%s", SRCDIR, names[i]);
- e = fopen (namebuf, "r");
- free (namebuf);
- if (e == NULL)
- continue;
- if (fstat (fileno (e), &st) < 0)
- {
- perror ("fstat");
- fclose (e);
- continue;
- }
- rbuf = malloc (st.st_size);
- if (rbuf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
- got = fread (rbuf, 1, st.st_size, e);
- fclose (e);
- if (got > 0)
- {
- orig_buf = (unsigned char *) rbuf;
- orig_bufsize = got;
- break;
- }
- free (rbuf);
- }
-
- if (orig_buf == NULL)
- {
- /* We couldn't find an input file. */
- printf ("UNSUPPORTED: lzma large\n");
- return;
- }
-
- stream = initial_stream;
- r = lzma_easy_encoder (&stream, 6, LZMA_CHECK_CRC32);
- if (r != LZMA_OK)
- {
- fprintf (stderr, "lzma_easy_encoder failed: %d\n", r);
- goto fail;
- }
-
- compressed_bufsize = orig_bufsize + 100;
- compressed_buf = malloc (compressed_bufsize);
- if (compressed_buf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
-
- stream.next_in = orig_buf;
- stream.avail_in = orig_bufsize;
- stream.next_out = compressed_buf;
- stream.avail_out = compressed_bufsize;
-
- do
- {
- r = lzma_code (&stream, LZMA_FINISH);
- if (r != LZMA_OK && r != LZMA_STREAM_END)
- {
- fprintf (stderr, "lzma_code failed: %d\n", r);
- goto fail;
- }
- }
- while (r != LZMA_STREAM_END);
-
- compressed_bufsize = stream.total_out;
-
- if (!backtrace_uncompress_lzma (state, (unsigned char *) compressed_buf,
- compressed_bufsize,
- error_callback_compress, NULL,
- &uncompressed_buf, &uncompressed_bufsize))
- {
- fprintf (stderr, "lzma large: backtrace_uncompress_lzma failed\n");
- goto fail;
- }
-
- if (uncompressed_bufsize != orig_bufsize)
- {
- fprintf (stderr,
- "lzma large: got uncompressed length %zu, want %zu\n",
- uncompressed_bufsize, orig_bufsize);
- goto fail;
- }
-
- if (memcmp (uncompressed_buf, orig_buf, uncompressed_bufsize) != 0)
- {
- fprintf (stderr, "lzma large: uncompressed data mismatch\n");
- goto fail;
- }
-
- printf ("PASS: lzma large\n");
-
- spare_buf = malloc (orig_bufsize);
- if (spare_buf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
-
- for (i = 0; i < trials; ++i)
- {
- cid = LIBLZMA_CLOCK_GETTIME_ARG;
- if (clock_gettime (cid, &ts1) < 0)
- {
- if (errno == EINVAL)
- return;
- perror ("clock_gettime");
- return;
- }
-
- if (!backtrace_uncompress_lzma (state,
- (unsigned char *) compressed_buf,
- compressed_bufsize,
- error_callback_compress, NULL,
- &uncompressed_buf,
- &uncompressed_bufsize))
- {
- fprintf (stderr,
- ("lzma large: "
- "benchmark backtrace_uncompress_lzma failed\n"));
- return;
- }
-
- if (clock_gettime (cid, &ts2) < 0)
- {
- perror ("clock_gettime");
- return;
- }
-
- ctime = (ts2.tv_sec - ts1.tv_sec) * 1000000000;
- ctime += ts2.tv_nsec - ts1.tv_nsec;
- ctimes[i] = ctime;
-
- stream = initial_stream;
-
- r = lzma_auto_decoder (&stream, UINT64_MAX, 0);
- if (r != LZMA_OK)
- {
- fprintf (stderr, "lzma_stream_decoder failed: %d\n", r);
- goto fail;
- }
-
- stream.next_in = compressed_buf;
- stream.avail_in = compressed_bufsize;
- stream.next_out = spare_buf;
- stream.avail_out = orig_bufsize;
-
- if (clock_gettime (cid, &ts1) < 0)
- {
- perror("clock_gettime");
- return;
- }
-
- do
- {
- r = lzma_code (&stream, LZMA_FINISH);
- if (r != LZMA_OK && r != LZMA_STREAM_END)
- {
- fprintf (stderr, "lzma_code failed: %d\n", r);
- goto fail;
- }
- }
- while (r != LZMA_STREAM_END);
-
- if (clock_gettime (cid, &ts2) < 0)
- {
- perror ("clock_gettime");
- return;
- }
-
- ztime = (ts2.tv_sec - ts1.tv_sec) * 1000000000;
- ztime += ts2.tv_nsec - ts1.tv_nsec;
- ztimes[i] = ztime;
- }
-
- /* Toss the highest and lowest times and average the rest. */
- ctime = average_time (ctimes, trials);
- ztime = average_time (ztimes, trials);
-
- printf ("backtrace: %zu ns\n", ctime);
- printf ("liblzma : %zu ns\n", ztime);
- printf ("ratio : %g\n", (double) ztime / (double) ctime);
-
- return;
-
- fail:
- printf ("FAIL: lzma large\n");
- ++failures;
-
- if (orig_buf != NULL)
- free (orig_buf);
- if (compressed_buf != NULL)
- free (compressed_buf);
- if (uncompressed_buf != NULL)
- free (uncompressed_buf);
-
-#else /* !HAVE_LIBLZMA */
-
- printf ("UNSUPPORTED: lzma large\n");
-
-#endif /* !HAVE_LIBLZMA */
-}
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
- struct backtrace_state *state;
-
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
- test_samples (state);
- test_large (state);
-
- exit (failures != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
-}
diff --git a/fluent-bit/lib/libbacktrace-8602fda/ztest.c b/fluent-bit/lib/libbacktrace-8602fda/ztest.c
deleted file mode 100644
index 4e79c0951..000000000
--- a/fluent-bit/lib/libbacktrace-8602fda/ztest.c
+++ /dev/null
@@ -1,541 +0,0 @@
-/* ztest.c -- Test for libbacktrace inflate code.
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef HAVE_ZLIB
-#include <zlib.h>
-#endif
-
-#include "backtrace.h"
-#include "backtrace-supported.h"
-
-#include "internal.h"
-#include "testlib.h"
-
-#ifndef HAVE_CLOCK_GETTIME
-
-typedef int xclockid_t;
-
-static int
-xclock_gettime (xclockid_t id ATTRIBUTE_UNUSED,
- struct timespec *ts ATTRIBUTE_UNUSED)
-{
- errno = EINVAL;
- return -1;
-}
-
-#define clockid_t xclockid_t
-#define clock_gettime xclock_gettime
-#undef CLOCK_REALTIME
-#define CLOCK_REALTIME 0
-
-#endif /* !defined(HAVE_CLOCK_GETTIME) */
-
-#ifdef CLOCK_PROCESS_CPUTIME_ID
-#define ZLIB_CLOCK_GETTIME_ARG CLOCK_PROCESS_CPUTIME_ID
-#else
-#define ZLIB_CLOCK_GETTIME_ARG CLOCK_REALTIME
-#endif
-
-/* Some tests for the local zlib inflation code. */
-
-struct zlib_test
-{
- const char *name;
- const char *uncompressed;
- size_t uncompressed_len;
- const char *compressed;
- size_t compressed_len;
-};
-
-/* Error callback. */
-
-static void
-error_callback_compress (void *vdata ATTRIBUTE_UNUSED, const char *msg,
- int errnum)
-{
- fprintf (stderr, "%s", msg);
- if (errnum > 0)
- fprintf (stderr, ": %s", strerror (errnum));
- fprintf (stderr, "\n");
- exit (EXIT_FAILURE);
-}
-
-static const struct zlib_test tests[] =
-{
- {
- "empty",
- "",
- 0,
- "\x78\x9c\x03\x00\x00\x00\x00\x01",
- 8,
- },
- {
- "hello",
- "hello, world\n",
- 0,
- ("\x78\x9c\xca\x48\xcd\xc9\xc9\xd7\x51\x28\xcf"
- "\x2f\xca\x49\xe1\x02\x04\x00\x00\xff\xff\x21\xe7\x04\x93"),
- 25,
- },
- {
- "goodbye",
- "goodbye, world",
- 0,
- ("\x78\x9c\x4b\xcf\xcf\x4f\x49\xaa"
- "\x4c\xd5\x51\x28\xcf\x2f\xca\x49"
- "\x01\x00\x28\xa5\x05\x5e"),
- 22,
- },
- {
- "ranges",
- ("\xcc\x11\x00\x00\x00\x00\x00\x00\xd5\x13\x00\x00\x00\x00\x00\x00"
- "\x1c\x14\x00\x00\x00\x00\x00\x00\x72\x14\x00\x00\x00\x00\x00\x00"
- "\x9d\x14\x00\x00\x00\x00\x00\x00\xd5\x14\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\xfb\x12\x00\x00\x00\x00\x00\x00\x09\x13\x00\x00\x00\x00\x00\x00"
- "\x0c\x13\x00\x00\x00\x00\x00\x00\xcb\x13\x00\x00\x00\x00\x00\x00"
- "\x29\x14\x00\x00\x00\x00\x00\x00\x4e\x14\x00\x00\x00\x00\x00\x00"
- "\x9d\x14\x00\x00\x00\x00\x00\x00\xd5\x14\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\xfb\x12\x00\x00\x00\x00\x00\x00\x09\x13\x00\x00\x00\x00\x00\x00"
- "\x67\x13\x00\x00\x00\x00\x00\x00\xcb\x13\x00\x00\x00\x00\x00\x00"
- "\x9d\x14\x00\x00\x00\x00\x00\x00\xd5\x14\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x5f\x0b\x00\x00\x00\x00\x00\x00\x6c\x0b\x00\x00\x00\x00\x00\x00"
- "\x7d\x0b\x00\x00\x00\x00\x00\x00\x7e\x0c\x00\x00\x00\x00\x00\x00"
- "\x38\x0f\x00\x00\x00\x00\x00\x00\x5c\x0f\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x83\x0c\x00\x00\x00\x00\x00\x00\xfa\x0c\x00\x00\x00\x00\x00\x00"
- "\xfd\x0d\x00\x00\x00\x00\x00\x00\xef\x0e\x00\x00\x00\x00\x00\x00"
- "\x14\x0f\x00\x00\x00\x00\x00\x00\x38\x0f\x00\x00\x00\x00\x00\x00"
- "\x9f\x0f\x00\x00\x00\x00\x00\x00\xac\x0f\x00\x00\x00\x00\x00\x00"
- "\xdb\x0f\x00\x00\x00\x00\x00\x00\xff\x0f\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\xfd\x0d\x00\x00\x00\x00\x00\x00\xd8\x0e\x00\x00\x00\x00\x00\x00"
- "\x9f\x0f\x00\x00\x00\x00\x00\x00\xac\x0f\x00\x00\x00\x00\x00\x00"
- "\xdb\x0f\x00\x00\x00\x00\x00\x00\xff\x0f\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\xfa\x0c\x00\x00\x00\x00\x00\x00\xea\x0d\x00\x00\x00\x00\x00\x00"
- "\xef\x0e\x00\x00\x00\x00\x00\x00\x14\x0f\x00\x00\x00\x00\x00\x00"
- "\x5c\x0f\x00\x00\x00\x00\x00\x00\x9f\x0f\x00\x00\x00\x00\x00\x00"
- "\xac\x0f\x00\x00\x00\x00\x00\x00\xdb\x0f\x00\x00\x00\x00\x00\x00"
- "\xff\x0f\x00\x00\x00\x00\x00\x00\x2c\x10\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x60\x11\x00\x00\x00\x00\x00\x00\xd1\x16\x00\x00\x00\x00\x00\x00"
- "\x40\x0b\x00\x00\x00\x00\x00\x00\x2c\x10\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x7a\x00\x00\x00\x00\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x00\x00"
- "\x9f\x01\x00\x00\x00\x00\x00\x00\xa7\x01\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x7a\x00\x00\x00\x00\x00\x00\x00\xa9\x00\x00\x00\x00\x00\x00\x00"
- "\x9f\x01\x00\x00\x00\x00\x00\x00\xa7\x01\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"),
- 672,
- ("\x78\x9c\x3b\x23\xc8\x00\x06\x57\x85\x21\xb4\x8c\x08\x84\x2e\x82"
- "\xd2\x73\xa1\xf4\x55\x28\x8d\x0e\x7e\x0b\x41\x68\x4e\xa8\x7e\x1e"
- "\x28\x7d\x1a\x4a\x6b\x42\xf5\xf9\x91\x69\x5e\x3a\x9a\x79\x84\xf4"
- "\xc7\x73\x43\xe8\x1c\x28\x5d\x0b\xa5\xeb\x78\x20\xb4\x05\x3f\x84"
- "\x8e\xe1\xc7\xae\xbf\x19\xaa\xee\x17\x94\xfe\xcb\x0b\xa1\xdf\xf3"
- "\x41\x68\x11\x7e\x54\x73\xe6\x43\xe9\x35\x50\xfa\x36\x94\xfe\x8f"
- "\xc3\x7c\x98\x79\x37\xf8\xc8\xd3\x0f\x73\xd7\x2b\x1c\xee\x8a\x21"
- "\xd2\x5d\x3a\x02\xd8\xcd\x4f\x80\xa6\x87\x8b\x62\x10\xda\x81\x1b"
- "\xbf\xfa\x2a\x28\xbd\x0d\x4a\xcf\x67\x84\xd0\xcb\x19\xf1\xab\x5f"
- "\x49\xa4\x7a\x00\x48\x97\x29\xd4"),
- 152,
- }
-};
-
-/* Test the hand coded samples. */
-
-static void
-test_samples (struct backtrace_state *state)
-{
- size_t i;
-
- for (i = 0; i < sizeof tests / sizeof tests[0]; ++i)
- {
- char *p;
- size_t v;
- size_t j;
- unsigned char *uncompressed;
- size_t uncompressed_len;
-
- p = malloc (12 + tests[i].compressed_len);
- memcpy (p, "ZLIB", 4);
- v = tests[i].uncompressed_len;
- if (v == 0)
- v = strlen (tests[i].uncompressed);
- for (j = 0; j < 8; ++j)
- p[j + 4] = (v >> ((7 - j) * 8)) & 0xff;
- memcpy (p + 12, tests[i].compressed, tests[i].compressed_len);
- uncompressed = NULL;
- uncompressed_len = 0;
- if (!backtrace_uncompress_zdebug (state, (unsigned char *) p,
- tests[i].compressed_len + 12,
- error_callback_compress, NULL,
- &uncompressed, &uncompressed_len))
- {
- fprintf (stderr, "test %s: uncompress failed\n", tests[i].name);
- ++failures;
- }
- else
- {
- if (uncompressed_len != v)
- {
- fprintf (stderr,
- "test %s: got uncompressed length %zu, want %zu\n",
- tests[i].name, uncompressed_len, v);
- ++failures;
- }
- else if (memcmp (tests[i].uncompressed, uncompressed, v) != 0)
- {
- size_t j;
-
- fprintf (stderr, "test %s: uncompressed data mismatch\n",
- tests[i].name);
- for (j = 0; j < v; ++j)
- if (tests[i].uncompressed[j] != uncompressed[j])
- fprintf (stderr, " %zu: got %#x want %#x\n", j,
- uncompressed[j], tests[i].uncompressed[j]);
- ++failures;
- }
- else
- printf ("PASS: inflate %s\n", tests[i].name);
-
- backtrace_free (state, uncompressed, uncompressed_len,
- error_callback_compress, NULL);
- }
- }
-}
-
-#ifdef HAVE_ZLIB
-
-/* Given a set of TRIALS timings, discard the lowest and highest
- values and return the mean average of the rest. */
-
-static size_t
-average_time (const size_t *times, size_t trials)
-{
- size_t imax;
- size_t max;
- size_t imin;
- size_t min;
- size_t i;
- size_t sum;
-
- imin = 0;
- imax = 0;
- min = times[0];
- max = times[0];
- for (i = 1; i < trials; ++i)
- {
- if (times[i] < min)
- {
- imin = i;
- min = times[i];
- }
- if (times[i] > max)
- {
- imax = i;
- max = times[i];
- }
- }
-
- sum = 0;
- for (i = 0; i < trials; ++i)
- {
- if (i != imax && i != imin)
- sum += times[i];
- }
- return sum / (trials - 2);
-}
-
-#endif
-
-/* Test a larger text, if available. */
-
-static void
-test_large (struct backtrace_state *state ATTRIBUTE_UNUSED)
-{
-#ifdef HAVE_ZLIB
- unsigned char *orig_buf;
- size_t orig_bufsize;
- size_t i;
- char *compressed_buf;
- size_t compressed_bufsize;
- unsigned long compress_sizearg;
- unsigned char *uncompressed_buf;
- size_t uncompressed_bufsize;
- int r;
- clockid_t cid;
- struct timespec ts1;
- struct timespec ts2;
- size_t ctime;
- size_t ztime;
- const size_t trials = 16;
- size_t ctimes[16];
- size_t ztimes[16];
- static const char * const names[] = {
- "Isaac.Newton-Opticks.txt",
- "../libgo/go/testdata/Isaac.Newton-Opticks.txt",
- };
-
- orig_buf = NULL;
- orig_bufsize = 0;
- uncompressed_buf = NULL;
- compressed_buf = NULL;
-
- for (i = 0; i < sizeof names / sizeof names[0]; ++i)
- {
- size_t len;
- char *namebuf;
- FILE *e;
- struct stat st;
- char *rbuf;
- size_t got;
-
- len = strlen (SRCDIR) + strlen (names[i]) + 2;
- namebuf = malloc (len);
- if (namebuf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
- snprintf (namebuf, len, "%s/%s", SRCDIR, names[i]);
- e = fopen (namebuf, "r");
- free (namebuf);
- if (e == NULL)
- continue;
- if (fstat (fileno (e), &st) < 0)
- {
- perror ("fstat");
- fclose (e);
- continue;
- }
- rbuf = malloc (st.st_size);
- if (rbuf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
- got = fread (rbuf, 1, st.st_size, e);
- fclose (e);
- if (got > 0)
- {
- orig_buf = (unsigned char *) rbuf;
- orig_bufsize = got;
- break;
- }
- free (rbuf);
- }
-
- if (orig_buf == NULL)
- {
- /* We couldn't find an input file. */
- printf ("UNSUPPORTED: inflate large\n");
- return;
- }
-
- compressed_bufsize = compressBound (orig_bufsize) + 12;
- compressed_buf = malloc (compressed_bufsize);
- if (compressed_buf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
-
- compress_sizearg = compressed_bufsize - 12;
- r = compress ((unsigned char *) compressed_buf + 12, &compress_sizearg,
- orig_buf, orig_bufsize);
- if (r != Z_OK)
- {
- fprintf (stderr, "zlib compress failed: %d\n", r);
- goto fail;
- }
-
- compressed_bufsize = compress_sizearg + 12;
-
- /* Prepare the header that our library expects. */
- memcpy (compressed_buf, "ZLIB", 4);
- for (i = 0; i < 8; ++i)
- compressed_buf[i + 4] = (orig_bufsize >> ((7 - i) * 8)) & 0xff;
-
- uncompressed_buf = malloc (orig_bufsize);
- if (uncompressed_buf == NULL)
- {
- perror ("malloc");
- goto fail;
- }
- uncompressed_bufsize = orig_bufsize;
-
- if (!backtrace_uncompress_zdebug (state, (unsigned char *) compressed_buf,
- compressed_bufsize,
- error_callback_compress, NULL,
- &uncompressed_buf, &uncompressed_bufsize))
- {
- fprintf (stderr, "inflate large: backtrace_uncompress_zdebug failed\n");
- goto fail;
- }
-
- if (uncompressed_bufsize != orig_bufsize)
- {
- fprintf (stderr,
- "inflate large: got uncompressed length %zu, want %zu\n",
- uncompressed_bufsize, orig_bufsize);
- goto fail;
- }
-
- if (memcmp (uncompressed_buf, orig_buf, uncompressed_bufsize) != 0)
- {
- fprintf (stderr, "inflate large: uncompressed data mismatch\n");
- goto fail;
- }
-
- printf ("PASS: inflate large\n");
-
- for (i = 0; i < trials; ++i)
- {
- unsigned long uncompress_sizearg;
-
- cid = ZLIB_CLOCK_GETTIME_ARG;
- if (clock_gettime (cid, &ts1) < 0)
- {
- if (errno == EINVAL)
- return;
- perror ("clock_gettime");
- return;
- }
-
- if (!backtrace_uncompress_zdebug (state,
- (unsigned char *) compressed_buf,
- compressed_bufsize,
- error_callback_compress, NULL,
- &uncompressed_buf,
- &uncompressed_bufsize))
- {
- fprintf (stderr,
- ("inflate large: "
- "benchmark backtrace_uncompress_zdebug failed\n"));
- return;
- }
-
- if (clock_gettime (cid, &ts2) < 0)
- {
- perror ("clock_gettime");
- return;
- }
-
- ctime = (ts2.tv_sec - ts1.tv_sec) * 1000000000;
- ctime += ts2.tv_nsec - ts1.tv_nsec;
- ctimes[i] = ctime;
-
- if (clock_gettime (cid, &ts1) < 0)
- {
- perror("clock_gettime");
- return;
- }
-
- uncompress_sizearg = uncompressed_bufsize;
- r = uncompress ((unsigned char *) uncompressed_buf, &uncompress_sizearg,
- (unsigned char *) compressed_buf + 12,
- compressed_bufsize - 12);
-
- if (clock_gettime (cid, &ts2) < 0)
- {
- perror ("clock_gettime");
- return;
- }
-
- if (r != Z_OK)
- {
- fprintf (stderr,
- "inflate large: benchmark zlib uncompress failed: %d\n",
- r);
- return;
- }
-
- ztime = (ts2.tv_sec - ts1.tv_sec) * 1000000000;
- ztime += ts2.tv_nsec - ts1.tv_nsec;
- ztimes[i] = ztime;
- }
-
- /* Toss the highest and lowest times and average the rest. */
- ctime = average_time (ctimes, trials);
- ztime = average_time (ztimes, trials);
-
- printf ("backtrace: %zu ns\n", ctime);
- printf ("zlib : %zu ns\n", ztime);
- printf ("ratio : %g\n", (double) ztime / (double) ctime);
-
- return;
-
- fail:
- printf ("FAIL: inflate large\n");
- ++failures;
-
- if (orig_buf != NULL)
- free (orig_buf);
- if (compressed_buf != NULL)
- free (compressed_buf);
- if (uncompressed_buf != NULL)
- free (uncompressed_buf);
-
-#else /* !HAVE_ZLIB */
-
- printf ("UNSUPPORTED: inflate large\n");
-
-#endif /* !HAVE_ZLIB */
-}
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
- struct backtrace_state *state;
-
- state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
- error_callback_create, NULL);
-
- test_samples (state);
- test_large (state);
-
- exit (failures != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
-}