]> granicus.if.org Git - strace/commitdiff
2004-08-30 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@redhat.com>
Tue, 31 Aug 2004 06:48:46 +0000 (06:48 +0000)
committerRoland McGrath <roland@redhat.com>
Tue, 31 Aug 2004 06:48:46 +0000 (06:48 +0000)
* system.c (personality_options): Hard-code values here.
Don't #include <linux/personality.h> at all.
Fixes RH#130965.

system.c

index efa6cd861772cbe29f99001b24c48bc8d75ff2fb..2da801cbedeea9091d70d1bce0cabad6383f856f 100644 (file)
--- a/system.c
+++ b/system.c
 
 #include <sys/syscall.h>
 
-#ifdef SYS_personality
-/* Workaround for kernel namespace pollution. */
-#define _LINUX_PTRACE_H
-/* Yuck yuck yuck.  We can't include linux/ptrace.h, but personality.h
-   makes a declaration with struct pt_regs, which is defined there. */
-struct pt_regs;
-#define sys_personality kernel_sys_personality
-#include <linux/personality.h>
-#undef sys_personality
-#endif /* SYS_personality */
-
 #ifdef SYS_capget
 #include <linux/capability.h>
 #endif
@@ -124,34 +113,30 @@ struct tcb *tcp;
        return 0;
 }
 
+/* These are not macros, but enums.  We just copy the values by hand
+   from Linux 2.6.9 here.  */
 static struct xlat personality_options[] = {
-#ifdef PER_LINUX
-       { PER_LINUX,    "PER_LINUX"     },
-#endif
-#ifdef PER_LINUX_32BIT
-       { PER_LINUX_32BIT,      "PER_LINUX"     },
-#endif
-#ifdef PER_SVR4
-       { PER_SVR4,     "PER_SVR4"      },
-#endif
-#ifdef PER_SVR3
-       { PER_SVR3,     "PER_SVR3"      },
-#endif
-#ifdef PER_SCOSVR3
-       { PER_SCOSVR3,  "PER_SCOSVR3"   },
-#endif
-#ifdef PER_WYSEV386
-       { PER_WYSEV386, "PER_WYSEV386"  },
-#endif
-#ifdef PER_ISCR4
-       { PER_ISCR4,    "PER_ISCR4"     },
-#endif
-#ifdef PER_BSD
-       { PER_BSD,      "PER_BSD"       },
-#endif
-#ifdef PER_XENIX
-       { PER_XENIX,    "PER_XENIX"     },
-#endif
+       { 0,            "PER_LINUX"     },
+       { 0x00800000,   "PER_LINUX_32BIT"},
+       { 0x04100001,   "PER_SVR4"      },
+       { 0x05000002,   "PER_SVR3"      },
+       { 0x07000003,   "PER_SCOSVR3"   },
+       { 0x06000003,   "PER_OSR5"      },
+       { 0x05000004,   "PER_WYSEV386"  },
+       { 0x04000005,   "PER_ISCR4"     },
+       { 0x00000006,   "PER_BSD"       },
+       { 0x04000006,   "PER_SUNOS"     },
+       { 0x05000007,   "PER_XENIX"     },
+       { 0x00000008,   "PER_LINUX32"   },
+       { 0x08000008,   "PER_LINUX32_3GB"},
+       { 0x04000009,   "PER_IRIX32"    },
+       { 0x0400000a,   "PER_IRIXN32"   },
+       { 0x0400000b,   "PER_IRIX64"    },
+       { 0x0000000c,   "PER_RISCOS"    },
+       { 0x0400000d,   "PER_SOLARIS"   },
+       { 0x0410000e,   "PER_UW7"       },
+       { 0x0000000f,   "PER_OSF4"      },
+       { 0x00000010,   "PER_HPUX"      },
        { 0,            NULL            },
 };
 
@@ -883,247 +868,247 @@ static struct xlat syssgi_options[] = {
 #ifdef SGI_GET_FP_PRECISE
        { SGI_GET_FP_PRECISE,   "SGI_GET_FP_PRECISE"    },
 #endif
-#ifdef SGI_GET_CONFIG_SMM      
+#ifdef SGI_GET_CONFIG_SMM
        { SGI_GET_CONFIG_SMM,   "SGI_GET_CONFIG_SMM"    },
 #endif
-#ifdef SGI_FP_IMPRECISE_SUPP   
+#ifdef SGI_FP_IMPRECISE_SUPP
        { SGI_FP_IMPRECISE_SUPP,"SGI_FP_IMPRECISE_SUPP" },
 #endif
-#ifdef SGI_CONFIG_NSMM_SUPP    
+#ifdef SGI_CONFIG_NSMM_SUPP
        { SGI_CONFIG_NSMM_SUPP, "SGI_CONFIG_NSMM_SUPP"  },
 #endif
-#ifdef SGI_RT_TSTAMP_CREATE    
+#ifdef SGI_RT_TSTAMP_CREATE
        { SGI_RT_TSTAMP_CREATE, "SGI_RT_TSTAMP_CREATE"  },
 #endif
-#ifdef SGI_RT_TSTAMP_DELETE    
+#ifdef SGI_RT_TSTAMP_DELETE
        { SGI_RT_TSTAMP_DELETE, "SGI_RT_TSTAMP_DELETE"  },
 #endif
-#ifdef SGI_RT_TSTAMP_START     
+#ifdef SGI_RT_TSTAMP_START
        { SGI_RT_TSTAMP_START,  "SGI_RT_TSTAMP_START"   },
 #endif
-#ifdef SGI_RT_TSTAMP_STOP      
+#ifdef SGI_RT_TSTAMP_STOP
        { SGI_RT_TSTAMP_STOP,   "SGI_RT_TSTAMP_STOP"    },
 #endif
-#ifdef SGI_RT_TSTAMP_ADDR      
+#ifdef SGI_RT_TSTAMP_ADDR
        { SGI_RT_TSTAMP_ADDR,   "SGI_RT_TSTAMP_ADDR"    },
 #endif
-#ifdef SGI_RT_TSTAMP_MASK      
+#ifdef SGI_RT_TSTAMP_MASK
        { SGI_RT_TSTAMP_MASK,   "SGI_RT_TSTAMP_MASK"    },
 #endif
-#ifdef SGI_RT_TSTAMP_EOB_MODE  
+#ifdef SGI_RT_TSTAMP_EOB_MODE
        { SGI_RT_TSTAMP_EOB_MODE,"SGI_RT_TSTAMP_EOB_MODE"},
 #endif
-#ifdef SGI_USE_FP_BCOPY        
+#ifdef SGI_USE_FP_BCOPY
        { SGI_USE_FP_BCOPY,     "SGI_USE_FP_BCOPY"      },
 #endif
-#ifdef SGI_GET_UST             
+#ifdef SGI_GET_UST
        { SGI_GET_UST,          "SGI_GET_UST"           },
 #endif
-#ifdef SGI_SPECULATIVE_EXEC    
+#ifdef SGI_SPECULATIVE_EXEC
        { SGI_SPECULATIVE_EXEC, "SGI_SPECULATIVE_EXEC"  },
 #endif
-#ifdef SGI_XLV_NEXT_RQST       
+#ifdef SGI_XLV_NEXT_RQST
        { SGI_XLV_NEXT_RQST,    "SGI_XLV_NEXT_RQST"     },
 #endif
-#ifdef SGI_XLV_ATTR_CURSOR     
+#ifdef SGI_XLV_ATTR_CURSOR
        { SGI_XLV_ATTR_CURSOR,  "SGI_XLV_ATTR_CURSOR"   },
 #endif
-#ifdef SGI_XLV_ATTR_GET        
+#ifdef SGI_XLV_ATTR_GET
        { SGI_XLV_ATTR_GET,     "SGI_XLV_ATTR_GET"      },
 #endif
-#ifdef SGI_XLV_ATTR_SET        
+#ifdef SGI_XLV_ATTR_SET
        { SGI_XLV_ATTR_SET,     "SGI_XLV_ATTR_SET"      },
 #endif
 #ifdef SGI_BTOOLSIZE
        { SGI_BTOOLSIZE,        "SGI_BTOOLSIZE"         },
 #endif
-#ifdef SGI_BTOOLGET            
+#ifdef SGI_BTOOLGET
        { SGI_BTOOLGET,         "SGI_BTOOLGET"          },
 #endif
-#ifdef SGI_BTOOLREINIT         
+#ifdef SGI_BTOOLREINIT
        { SGI_BTOOLREINIT,      "SGI_BTOOLREINIT"       },
 #endif
-#ifdef SGI_CREATE_UUID         
+#ifdef SGI_CREATE_UUID
        { SGI_CREATE_UUID,      "SGI_CREATE_UUID"       },
 #endif
-#ifdef SGI_NOFPE               
+#ifdef SGI_NOFPE
        { SGI_NOFPE,            "SGI_NOFPE"             },
 #endif
-#ifdef SGI_OLD_SOFTFP          
+#ifdef SGI_OLD_SOFTFP
        { SGI_OLD_SOFTFP,       "SGI_OLD_SOFTFP"        },
 #endif
-#ifdef SGI_FS_INUMBERS         
+#ifdef SGI_FS_INUMBERS
        { SGI_FS_INUMBERS,      "SGI_FS_INUMBERS"       },
 #endif
-#ifdef SGI_FS_BULKSTAT         
+#ifdef SGI_FS_BULKSTAT
        { SGI_FS_BULKSTAT,      "SGI_FS_BULKSTAT"       },
 #endif
-#ifdef SGI_RT_TSTAMP_WAIT      
+#ifdef SGI_RT_TSTAMP_WAIT
        { SGI_RT_TSTAMP_WAIT,   "SGI_RT_TSTAMP_WAIT"    },
 #endif
-#ifdef SGI_RT_TSTAMP_UPDATE    
+#ifdef SGI_RT_TSTAMP_UPDATE
        { SGI_RT_TSTAMP_UPDATE, "SGI_RT_TSTAMP_UPDATE"  },
 #endif
-#ifdef SGI_PATH_TO_HANDLE      
+#ifdef SGI_PATH_TO_HANDLE
        { SGI_PATH_TO_HANDLE,   "SGI_PATH_TO_HANDLE"    },
 #endif
-#ifdef SGI_PATH_TO_FSHANDLE    
+#ifdef SGI_PATH_TO_FSHANDLE
        { SGI_PATH_TO_FSHANDLE, "SGI_PATH_TO_FSHANDLE"  },
 #endif
-#ifdef SGI_FD_TO_HANDLE        
+#ifdef SGI_FD_TO_HANDLE
        { SGI_FD_TO_HANDLE,     "SGI_FD_TO_HANDLE"      },
 #endif
-#ifdef SGI_OPEN_BY_HANDLE      
+#ifdef SGI_OPEN_BY_HANDLE
        { SGI_OPEN_BY_HANDLE,   "SGI_OPEN_BY_HANDLE"    },
 #endif
-#ifdef SGI_READLINK_BY_HANDLE  
+#ifdef SGI_READLINK_BY_HANDLE
        { SGI_READLINK_BY_HANDLE,"SGI_READLINK_BY_HANDLE"},
 #endif
-#ifdef SGI_READ_DANGID         
+#ifdef SGI_READ_DANGID
        { SGI_READ_DANGID,      "SGI_READ_DANGID"       },
 #endif
-#ifdef SGI_CONST               
+#ifdef SGI_CONST
        { SGI_CONST,            "SGI_CONST"             },
 #endif
-#ifdef SGI_XFS_FSOPERATIONS    
+#ifdef SGI_XFS_FSOPERATIONS
        { SGI_XFS_FSOPERATIONS, "SGI_XFS_FSOPERATIONS"  },
 #endif
-#ifdef SGI_SETASH              
+#ifdef SGI_SETASH
        { SGI_SETASH,           "SGI_SETASH"            },
 #endif
-#ifdef SGI_GETASH              
+#ifdef SGI_GETASH
        { SGI_GETASH,           "SGI_GETASH"            },
 #endif
-#ifdef SGI_SETPRID             
+#ifdef SGI_SETPRID
        { SGI_SETPRID,          "SGI_SETPRID"           },
 #endif
-#ifdef SGI_GETPRID             
+#ifdef SGI_GETPRID
        { SGI_GETPRID,          "SGI_GETPRID"           },
 #endif
-#ifdef SGI_SETSPINFO           
+#ifdef SGI_SETSPINFO
        { SGI_SETSPINFO,        "SGI_SETSPINFO"         },
 #endif
-#ifdef SGI_GETSPINFO           
+#ifdef SGI_GETSPINFO
        { SGI_GETSPINFO,        "SGI_GETSPINFO"         },
 #endif
-#ifdef SGI_SHAREII             
+#ifdef SGI_SHAREII
        { SGI_SHAREII,          "SGI_SHAREII"           },
 #endif
-#ifdef SGI_NEWARRAYSESS        
+#ifdef SGI_NEWARRAYSESS
        { SGI_NEWARRAYSESS,     "SGI_NEWARRAYSESS"      },
 #endif
-#ifdef SGI_GETDFLTPRID         
+#ifdef SGI_GETDFLTPRID
        { SGI_GETDFLTPRID,      "SGI_GETDFLTPRID"       },
 #endif
-#ifdef SGI_SET_DISMISSED_EXC_CNT 
+#ifdef SGI_SET_DISMISSED_EXC_CNT
        { SGI_SET_DISMISSED_EXC_CNT,"SGI_SET_DISMISSED_EXC_CNT" },
 #endif
-#ifdef SGI_GET_DISMISSED_EXC_CNT 
+#ifdef SGI_GET_DISMISSED_EXC_CNT
        { SGI_GET_DISMISSED_EXC_CNT,"SGI_GET_DISMISSED_EXC_CNT" },
 #endif
-#ifdef SGI_CYCLECNTR_SIZE      
+#ifdef SGI_CYCLECNTR_SIZE
        { SGI_CYCLECNTR_SIZE,   "SGI_CYCLECNTR_SIZE"    },
 #endif
-#ifdef SGI_QUERY_FASTTIMER     
+#ifdef SGI_QUERY_FASTTIMER
        { SGI_QUERY_FASTTIMER,  "SGI_QUERY_FASTTIMER"   },
 #endif
-#ifdef SGI_PIDSINASH           
+#ifdef SGI_PIDSINASH
        { SGI_PIDSINASH,        "SGI_PIDSINASH"         },
 #endif
-#ifdef SGI_ULI                 
+#ifdef SGI_ULI
        { SGI_ULI,              "SGI_ULI"               },
 #endif
-#ifdef SGI_LPG_SHMGET          
+#ifdef SGI_LPG_SHMGET
        { SGI_LPG_SHMGET,       "SGI_LPG_SHMGET"        },
 #endif
-#ifdef SGI_LPG_MAP             
+#ifdef SGI_LPG_MAP
        { SGI_LPG_MAP,          "SGI_LPG_MAP"           },
 #endif
-#ifdef SGI_CACHEFS_SYS         
+#ifdef SGI_CACHEFS_SYS
        { SGI_CACHEFS_SYS,      "SGI_CACHEFS_SYS"       },
 #endif
-#ifdef SGI_NFSNOTIFY           
+#ifdef SGI_NFSNOTIFY
        { SGI_NFSNOTIFY,        "SGI_NFSNOTIFY"         },
 #endif
-#ifdef SGI_LOCKDSYS            
+#ifdef SGI_LOCKDSYS
        { SGI_LOCKDSYS,         "SGI_LOCKDSYS"          },
 #endif
-#ifdef SGI_EVENTCTR            
+#ifdef SGI_EVENTCTR
        { SGI_EVENTCTR,         "SGI_EVENTCTR"          },
 #endif
-#ifdef SGI_GETPRUSAGE          
+#ifdef SGI_GETPRUSAGE
        { SGI_GETPRUSAGE,       "SGI_GETPRUSAGE"        },
 #endif
-#ifdef SGI_PROCMASK_LOCATION   
+#ifdef SGI_PROCMASK_LOCATION
        { SGI_PROCMASK_LOCATION,"SGI_PROCMASK_LOCATION" },
 #endif
-#ifdef SGI_UNUSED              
+#ifdef SGI_UNUSED
        { SGI_UNUSED,           "SGI_UNUSED"            },
 #endif
-#ifdef SGI_CKPT_SYS            
+#ifdef SGI_CKPT_SYS
        { SGI_CKPT_SYS,         "SGI_CKPT_SYS"          },
 #endif
-#ifdef SGI_CKPT_SYS            
+#ifdef SGI_CKPT_SYS
        { SGI_CKPT_SYS,         "SGI_CKPT_SYS"          },
 #endif
-#ifdef SGI_GETGRPPID           
+#ifdef SGI_GETGRPPID
        { SGI_GETGRPPID,        "SGI_GETGRPPID"         },
 #endif
-#ifdef SGI_GETSESPID           
+#ifdef SGI_GETSESPID
        { SGI_GETSESPID,        "SGI_GETSESPID"         },
 #endif
-#ifdef SGI_ENUMASHS            
+#ifdef SGI_ENUMASHS
        { SGI_ENUMASHS,         "SGI_ENUMASHS"          },
 #endif
-#ifdef SGI_SETASMACHID         
+#ifdef SGI_SETASMACHID
        { SGI_SETASMACHID,      "SGI_SETASMACHID"       },
 #endif
-#ifdef SGI_GETASMACHID         
+#ifdef SGI_GETASMACHID
        { SGI_GETASMACHID,      "SGI_GETASMACHID"       },
 #endif
-#ifdef SGI_GETARSESS           
+#ifdef SGI_GETARSESS
        { SGI_GETARSESS,        "SGI_GETARSESS"         },
 #endif
-#ifdef SGI_JOINARRAYSESS       
+#ifdef SGI_JOINARRAYSESS
        { SGI_JOINARRAYSESS,    "SGI_JOINARRAYSESS"     },
 #endif
-#ifdef SGI_SPROC_KILL          
+#ifdef SGI_SPROC_KILL
        { SGI_SPROC_KILL,       "SGI_SPROC_KILL"        },
 #endif
-#ifdef SGI_DBA_CONFIG          
+#ifdef SGI_DBA_CONFIG
        { SGI_DBA_CONFIG,       "SGI_DBA_CONFIG"        },
 #endif
-#ifdef SGI_RELEASE_NAME        
+#ifdef SGI_RELEASE_NAME
        { SGI_RELEASE_NAME,     "SGI_RELEASE_NAME"      },
 #endif
-#ifdef SGI_SYNCH_CACHE_HANDLER 
+#ifdef SGI_SYNCH_CACHE_HANDLER
        { SGI_SYNCH_CACHE_HANDLER,"SGI_SYNCH_CACHE_HANDLER"},
 #endif
-#ifdef SGI_SWASH_INIT          
+#ifdef SGI_SWASH_INIT
        { SGI_SWASH_INIT,       "SGI_SWASH_INIT"        },
 #endif
-#ifdef SGI_NUMA_MIGR_PAGE      
+#ifdef SGI_NUMA_MIGR_PAGE
        { SGI_NUMA_MIGR_PAGE,   "SGI_NUMA_MIGR_PAGE"    },
 #endif
-#ifdef SGI_NUMA_MIGR_PAGE_ALT  
+#ifdef SGI_NUMA_MIGR_PAGE_ALT
        { SGI_NUMA_MIGR_PAGE_ALT,"SGI_NUMA_MIGR_PAGE_ALT"},
 #endif
-#ifdef SGI_KAIO_USERINIT       
+#ifdef SGI_KAIO_USERINIT
        { SGI_KAIO_USERINIT,    "SGI_KAIO_USERINIT"     },
 #endif
-#ifdef SGI_KAIO_READ           
+#ifdef SGI_KAIO_READ
        { SGI_KAIO_READ,        "SGI_KAIO_READ"         },
 #endif
-#ifdef SGI_KAIO_WRITE          
+#ifdef SGI_KAIO_WRITE
        { SGI_KAIO_WRITE,       "SGI_KAIO_WRITE"        },
 #endif
-#ifdef SGI_KAIO_SUSPEND        
+#ifdef SGI_KAIO_SUSPEND
        { SGI_KAIO_SUSPEND,     "SGI_KAIO_SUSPEND"      },
 #endif
-#ifdef SGI_KAIO_STATS          
+#ifdef SGI_KAIO_STATS
        { SGI_KAIO_STATS,       "SGI_KAIO_STATS"        },
 #endif
-#ifdef SGI_INITIAL_PT_SPROC    
+#ifdef SGI_INITIAL_PT_SPROC
        { SGI_INITIAL_PT_SPROC, "SGI_INITIAL_PT_SPROC"  },
 #endif
        { 0,                    NULL                    },
@@ -1353,7 +1338,7 @@ struct tcb *tcp;
                                        if (args.mflags & VX_MS_SNAPSHOT) {
                                                tprintf (", snapof=");
                                                printstr (tcp,
-                                                         (long) args.primaryspec, 
+                                                         (long) args.primaryspec,
                                                          -1);
                                                if (args.snapsize > 0)
                                                        tprintf (", snapsize=%ld", args.snapsize);
@@ -1498,7 +1483,7 @@ struct tcb *tcp;
                        tprintf(", ");
                        printflags(capabilities, arg1->inheritable);
                        tprintf("}");
-               } 
+               }
        }
        return 0;
 }
@@ -1550,7 +1535,7 @@ struct tcb *tcp;
                        tprintf(", ");
                        printflags(capabilities, arg1->inheritable);
                        tprintf("}");
-               } 
+               }
        }
        return 0;
 }
@@ -1965,7 +1950,7 @@ struct tcb *tcp;
        char ctl[1024];
        size_t len;
        int i, numeric;
-       
+
        if (entering(tcp)) {
                if (tcp->u_arg[1] < 0 || tcp->u_arg[1] > CTL_MAXNAME ||
                    (umoven(tcp, tcp->u_arg[0], tcp->u_arg[1] * sizeof(int),
@@ -1996,7 +1981,7 @@ struct tcb *tcp;
                if (!syserror(tcp) && (umove(tcp, tcp->u_arg[3], &len) >= 0)) {
                        printstr(tcp, tcp->u_arg[2], len);
                        tprintf(", [%u], ", len);
-               } else 
+               } else
                        tprintf("%#lx, %#lx, ", tcp->u_arg[2], tcp->u_arg[3]);
                printstr(tcp, tcp->u_arg[4], tcp->u_arg[5]);
                tprintf(", %lu", tcp->u_arg[5]);
@@ -2011,9 +1996,9 @@ struct tcb *tcp;
 #include <sys/elf.h>
 
 static struct xlat ksym_flags[] = {
-       { STT_NOTYPE,   "STT_NOTYPE"    },      
-       { STT_FUNC,     "STT_FUNC"      },      
-       { STT_OBJECT,   "STT_OBJECT"    },      
+       { STT_NOTYPE,   "STT_NOTYPE"    },
+       { STT_FUNC,     "STT_FUNC"      },
+       { STT_OBJECT,   "STT_OBJECT"    },
        { 0,            NULL            },
 };
 
@@ -2150,7 +2135,7 @@ struct tcb *tcp;
                        if (iov.tio_udatainlen != sizeof cni ||
                            umove (tcp, (long) iov.tio_udatain, &cni) < 0)
                                goto bad_out;
-                       if (cni.info_len != sizeof info || 
+                       if (cni.info_len != sizeof info ||
                            iov.tio_udataoutlen != sizeof &info ||
                            umove (tcp, (long) iov.tio_udataout, &info) < 0)
                                goto bad_out;
@@ -2158,7 +2143,7 @@ struct tcb *tcp;
                                 info.node_num, info.node_totalcpus,
                                 info.node_onlinecpus);
                        break;
-                       
+
                    default:
                    bad_out:
                        if (iov.tio_udataoutlen) {