From 9f92937bdca6dcddba0fc2de5a5218e01881b0a7 Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Sat, 18 Jun 2016 17:49:58 +0000 Subject: [PATCH] fptr.c (__canonicalize_funcptr_for_compare): Don't set least-significant bit in function pointer for fixup. * config/pa/fptr.c (__canonicalize_funcptr_for_compare): Don't set least-significant bit in function pointer for fixup. From-SVN: r237574 --- libgcc/ChangeLog | 5 +++++ libgcc/config/pa/fptr.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 19d60115bc8..7c86f8c6313 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2016-06-18 John David Anglin + + * config/pa/fptr.c (__canonicalize_funcptr_for_compare): Don't set + least-significant bit in function pointer for fixup. + 2016-06-05 Aaron Conole Nathan Sidwell diff --git a/libgcc/config/pa/fptr.c b/libgcc/config/pa/fptr.c index 3febc9062db..7a5ea7b00f5 100644 --- a/libgcc/config/pa/fptr.c +++ b/libgcc/config/pa/fptr.c @@ -113,7 +113,7 @@ __canonicalize_funcptr_for_compare (fptr_t fptr) /* Build a plabel for an indirect call to _dl_fixup. */ fixup_plabel[0] = (unsigned int) iptr + 8; /* address of fixup */ fixup_plabel[1] = got[-1]; /* ltp for fixup */ - fixup = (fixup_t) ((int) fixup_plabel | 3); + fixup = (fixup_t) ((int) fixup_plabel | 2); /* Call fixup to resolve the function address. got[1] contains the link_map pointer and plabel[1] the relocation offset. */ -- 2.30.2