diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/procfs.c | 79 | ||||
-rw-r--r-- | gdb/procfs.h | 6 | ||||
-rw-r--r-- | gdb/sol-thread.c | 32 |
4 files changed, 10 insertions, 117 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1c2ddce..cba0464 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2020-05-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR build/25981 + * procfs.c [(__i386__ || __x86_64__) && sun] (proc_get_LDT_entry, + procfs_find_LDT_entry): Remove. + * procfs.h [(__i386__ || __x86_64__) && sun] (struct ssd, + procfs_find_LDT_entry): Remove. + * sol-thread.c [(__i386__ || __x86_64__) && sun] (ps_lgetLDT): + Remove. + 2020-05-17 Pedro Alves <palves@redhat.com> Andrew Burgess <andrew.burgess@embecosm.com> Keno Fischer <keno@juliacomputing.com> diff --git a/gdb/procfs.c b/gdb/procfs.c index 09a036f..f6c6b0e 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -1569,85 +1569,6 @@ proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, int len, int wflags) return (write (pi->ctl_fd, &arg, sizeof (arg)) == sizeof (arg)); } -#if (defined(__i386__) || defined(__x86_64__)) && defined (sun) - -#include <sys/sysi86.h> - -/* The KEY is actually the value of the lower 16 bits of the GS - register for the LWP that we're interested in. Returns the - matching ssh struct (LDT entry). */ - -static struct ssd * -proc_get_LDT_entry (procinfo *pi, int key) /* ARI: editCase function */ -{ - static struct ssd *ldt_entry = NULL; - char pathname[MAX_PROC_NAME_SIZE]; - - /* Allocate space for one LDT entry. - This alloc must persist, because we return a pointer to it. */ - if (ldt_entry == NULL) - ldt_entry = XNEW (struct ssd); - - /* Open the file descriptor for the LDT table. */ - xsnprintf (pathname, sizeof (pathname), "/proc/%d/ldt", pi->pid); - scoped_fd fd (open_with_retry (pathname, O_RDONLY)); - if (fd.get () < 0) - { - proc_warn (pi, "proc_get_LDT_entry (open)", __LINE__); - return NULL; - } - - /* Now 'read' thru the table, find a match and return it. */ - while (read (fd.get (), ldt_entry, sizeof (struct ssd)) - == sizeof (struct ssd)) - { - if (ldt_entry->sel == 0 - && ldt_entry->bo == 0 - && ldt_entry->acc1 == 0 - && ldt_entry->acc2 == 0) - break; /* end of table */ - /* If key matches, return this entry. */ - if (ldt_entry->sel == key) - return ldt_entry; - } - /* Loop ended, match not found. */ - return NULL; -} - -/* Returns the pointer to the LDT entry of PTID. */ - -struct ssd * -procfs_find_LDT_entry (ptid_t ptid) /* ARI: editCase function */ -{ - gdb_gregset_t *gregs; - int key; - procinfo *pi; - - /* Find procinfo for the lwp. */ - pi = find_procinfo (ptid.pid (), ptid.lwp ()); - if (pi == NULL) - { - warning (_("procfs_find_LDT_entry: could not find procinfo for %d:%ld."), - ptid.pid (), ptid.lwp ()); - return NULL; - } - /* get its general registers. */ - gregs = proc_get_gregs (pi); - if (gregs == NULL) - { - warning (_("procfs_find_LDT_entry: could not read gregs for %d:%ld."), - ptid.pid (), ptid.lwp ()); - return NULL; - } - /* Now extract the GS register's lower 16 bits. */ - key = (*gregs)[GS] & 0xffff; - - /* Find the matching entry and return it. */ - return proc_get_LDT_entry (pi, key); -} - -#endif - /* =============== END, non-thread part of /proc "MODULE" =============== */ /* =================== Thread "MODULE" =================== */ diff --git a/gdb/procfs.h b/gdb/procfs.h index 5bba467..46835fd 100644 --- a/gdb/procfs.h +++ b/gdb/procfs.h @@ -25,10 +25,4 @@ extern ptid_t procfs_first_available (void); -#if (defined (__i386__) || defined (__x86_64__)) && defined (sun) -struct ssd; - -extern struct ssd *procfs_find_LDT_entry (ptid_t); -#endif - #endif /* PROCFS_H */ diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c index 333fb96..9addf8d 100644 --- a/gdb/sol-thread.c +++ b/gdb/sol-thread.c @@ -969,38 +969,6 @@ ps_pdmodel (struct ps_prochandle *ph, int *data_model) return PS_OK; } - -#if (defined(__i386__) || defined(__x86_64__)) && defined (sun) - -/* Reads the local descriptor table of a LWP. - - This function is necessary on x86-solaris only. Without it, the loading - of libthread_db would fail because of ps_lgetLDT being undefined. */ - -ps_err_e -ps_lgetLDT (struct ps_prochandle *ph, lwpid_t lwpid, struct ssd *pldt) /* ARI: editCase function */ -{ - /* NOTE: only used on Solaris, therefore OK to refer to procfs.c. */ - struct ssd *ret; - - /* FIXME: can't I get the process ID from the prochandle or - something? */ - - if (inferior_ptid.pid () <= 0 || lwpid <= 0) - return PS_BADLID; - - ret = procfs_find_LDT_entry (ptid_t (inferior_ptid.pid (), - lwpid, 0)); - if (ret) - { - memcpy (pldt, ret, sizeof (struct ssd)); - return PS_OK; - } - else - /* LDT not found. */ - return PS_ERR; -} -#endif /* Convert PTID to printable form. */ |