summaryrefslogtreecommitdiffstats
path: root/gcc/config/pa
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1996-10-02 17:21:48 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1996-10-02 17:21:48 +0000
commitd23b64134254a34683022265cd3dad374efa3d4e (patch)
treea5b656988e28b374fca4ebcc6bd263a55530ae83 /gcc/config/pa
parent6cd9df1e1a34182f004472100a58556ad41be976 (diff)
downloadppe42-gcc-d23b64134254a34683022265cd3dad374efa3d4e.tar.gz
ppe42-gcc-d23b64134254a34683022265cd3dad374efa3d4e.zip
* pa/pa.h (PARSE_LDD_OUTPUT): Handle output from hpux10.20 "chatr".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12887 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/pa')
-rw-r--r--gcc/config/pa/pa.h33
1 files changed, 30 insertions, 3 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index f76468eef29..f9a3d938b8f 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -270,16 +270,43 @@ extern int target_flags;
linked executables and shared libraries. */
#define LDD_SUFFIX "chatr"
/* Look for lines like "dynamic /usr/lib/X11R5/libX11.sl"
- or "static /usr/lib/X11R5/libX11.sl". */
+ or "static /usr/lib/X11R5/libX11.sl".
+
+ HPUX 10.20 also has lines like "static branch prediction ..."
+ so we filter that out explcitly.
+
+ We also try to bound our search for libraries with marker
+ lines. What a pain. */
#define PARSE_LDD_OUTPUT(PTR) \
do { \
+ static int in_shlib_list = 0; \
while (*PTR == ' ') PTR++; \
- if (strncmp (PTR, "dynamic", sizeof ("dynamic") - 1) == 0) \
+ if (strncmp (PTR, "shared library list:", \
+ sizeof ("shared library list:") - 1) == 0) \
+ { \
+ PTR = 0; \
+ in_shlib_list = 1; \
+ } \
+ else if (strncmp (PTR, "shared library binding:", \
+ sizeof ("shared library binding:") - 1) == 0)\
+ { \
+ PTR = 0; \
+ in_shlib_list = 0; \
+ } \
+ else if (strncmp (PTR, "static branch prediction disabled", \
+ sizeof ("static branch prediction disabled") - 1) == 0)\
+ { \
+ PTR = 0; \
+ in_shlib_list = 0; \
+ } \
+ else if (in_shlib_list \
+ && strncmp (PTR, "dynamic", sizeof ("dynamic") - 1) == 0) \
{ \
PTR += sizeof ("dynamic") - 1; \
while (*p == ' ') PTR++; \
} \
- else if (strncmp (PTR, "static", sizeof ("static") - 1) == 0) \
+ else if (in_shlib_list \
+ && strncmp (PTR, "static", sizeof ("static") - 1) == 0) \
{ \
PTR += sizeof ("static") - 1; \
while (*p == ' ') PTR++; \
OpenPOWER on IntegriCloud