00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef __IPA_OPTION_H__
00037 #define __IPA_OPTION_H__
00038
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 typedef enum{
00053 LD_IPA_SHARABLE,
00054 LD_IPA_DEMANGLE,
00055 LD_IPA_SHOW,
00056 LD_IPA_HIDES,
00057 LD_IPA_TARGOS,
00058 LD_IPA_VERBOSE,
00059 LD_IPA_KEEP_TEMPS,
00060 LD_IPA_ISA,
00061 LD_IPA_XXXX,
00062 #ifdef TARG_SL
00063 LD_IPA_IPISR,
00064 #endif
00065 MAX_LD_IPA
00066 }ld_ipa_option_enum;
00067
00068 typedef struct ld_ipa_option {
00069 ld_ipa_option_enum opt_ndx;
00070 unsigned flag : 4;
00071 unsigned set : 4;
00072 } LD_IPA_OPTION;
00073
00074 extern LD_IPA_OPTION ld_ipa_opt[MAX_LD_IPA];
00075
00076 #define HS_DEFAULT 0
00077 #define HS_HIDES 1
00078 #define HS_EXPORTS 2
00079 #define HS_IGNORE 3
00080
00081
00082
00083
00084
00085
00086 typedef struct {
00087 char **sym;
00088 int num;
00089 int max;
00090 } OPTION_SYM;
00091
00092
00093
00094 #define F_RELOCATABLE 1
00095 #define F_NON_SHARED 2
00096 #define F_CALL_SHARED 4
00097 #define F_MAKE_SHARABLE 8
00098 #define F_STATIC (F_NON_SHARED | F_RELOCATABLE)
00099 #define F_DYNAMIC (~(F_STATIC))
00100 #define F_MAIN (F_NON_SHARED | F_CALL_SHARED)
00101 #define F_EXEC (~F_RELOCATABLE)
00102 #define F_ALL (F_STATIC | F_DYNAMIC)
00103 #define F_CALL_SHARED_RELOC (F_RELOCATABLE | F_CALL_SHARED)
00104
00105 typedef enum {
00106 TOS_MIPS_O32,
00107
00108 #if 1
00109 TOS_MIPS_R32,
00110 #endif
00111 TOS_MIPS_N32,
00112 TOS_MIPS_64,
00113 TOS_IA64_64,
00114 TOS_IA64_32,
00115 TOS_MAX
00116 }targos_enum;
00117
00118 extern string tos_string[TOS_MAX];
00119
00120 #ifdef _SUPPORT_IPA
00121 #define verboseflag ld_ipa_opt[LD_IPA_VERBOSE].flag
00122 #define keep ld_ipa_opt[LD_IPA_KEEP_TEMPS].flag
00123 #endif
00124
00125 extern char *outfilename;
00126 extern string ipacom_flags;
00127 extern string WB_flags;
00128 extern string Y_flags;
00129 extern int ipa_argc;
00130 extern string *ipa_argv;
00131 extern int ipa_use_intrinsic;
00132
00133 extern void ld_to_ipa_option_update(void);
00134 extern void ipa_to_ld_option_update(void);
00135
00136 #ifdef __cplusplus
00137 }
00138 #endif
00139
00140 #endif