diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-10-02 17:21:48 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-10-02 17:21:48 +0000 |
commit | d23b64134254a34683022265cd3dad374efa3d4e (patch) | |
tree | a5b656988e28b374fca4ebcc6bd263a55530ae83 /gcc/config/pa | |
parent | 6cd9df1e1a34182f004472100a58556ad41be976 (diff) | |
download | ppe42-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.h | 33 |
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++; \ |