]>
Commit | Line | Data |
---|---|---|
4195a6bc DE |
1 | AIX 4.3 archive libraries |
2 | ||
3 | AIX 4.3 utilizes a new "large format" archive to support both 32-bit and | |
4 | 64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1 | |
5 | to parse archive libraries did not handle the new format correctly. These | |
6 | routines are used by GCC and result in error messages during linking such | |
7 | as "not a COFF file". The version of the routines shipped with AIX 4.3.1 | |
8 | should work for a 32-bit environment. The "-g" option of the archive | |
9 | command may be used to create archives of 32-bit objects using the | |
10 | original "small format". A correct version of the routines is shipped | |
11 | with AIX 4.3.2. | |
12 | ||
13 | ||
90a79256 DE |
14 | AIX 4.3.2 binder |
15 | ||
16 | The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core | |
17 | with a segmentation fault when invoked by any version of GCC. A fix for | |
18 | APAR IX87327 will be available from IBM Customer Support. | |
19 | ||
20 | ||
21 | AIX 4.3.0 assembler | |
2ac999c3 | 22 | |
e4b0d7b3 DE |
23 | The AIX 4.3.0.0 assembler generates incorrect object files if the ".bs" |
24 | pseudo-op references symbols in certain sections. If GCC is invoked with | |
25 | the -g debugging option (including during bootstrapping), incorrect object | |
26 | files will be produced and the AIX linker will fail with a severe error. | |
27 | A fix for APAR IX74254 (64BIT DISASSEMBLED OUPUT FROM COMPILER FAILS TO | |
f6258172 | 28 | ASSEMBLE/BIND) is available from IBM Customer Support and from its |
b608647a | 29 | service.boulder.ibm.com website as PTF U453956. |
2ac999c3 | 30 | |
2ac999c3 | 31 | |
e4b0d7b3 | 32 | AIX 4.1 binder |
2ac999c3 | 33 | |
f6258172 DE |
34 | Some versions of the AIX binder (linker) can fail with a relocation |
35 | overflow severe error when the -bbigtoc option is used to link | |
36 | GCC-produced object files into an executable that overflows the TOC. | |
37 | Linking f771, the GNU Fortran backend, will fail in this manner. A fix | |
38 | for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is | |
39 | available from IBM Customer Support and from its website as PTF U455193. | |
40 | ||
e4b0d7b3 DE |
41 | Due to changes in the way that GCC invokes the binder (linker) for AIX 4.1, |
42 | the link step now may produce warnings of duplicate symbols which were not | |
43 | reported before. The assembly files generated by GCC for AIX always have | |
44 | included multiple symbol definitions for certain global variable and | |
45 | function declarations in the original program. The warnings should not | |
46 | prevent the linker from producing a correct library or runnable executable. | |
2ac999c3 RK |
47 | |
48 | ||
e4b0d7b3 | 49 | AIX NLS problems |
2ac999c3 RK |
50 | |
51 | AIX on the RS/6000 provides support (NLS) for environments outside of | |
52 | the United States. Compilers and assemblers use NLS to support | |
53 | locale-specific representations of various objects including | |
54 | floating-point numbers ("." vs "," for separating decimal fractions). | |
55 | There have been problems reported where the library linked with GCC does | |
56 | not produce the same floating-point formats that the assembler accepts. | |
57 | If you have this problem, set the LANG environment variable to "C" or | |
58 | "En_US". | |
59 | ||
e4b0d7b3 | 60 | |
2ac999c3 RK |
61 | AIX 3.2.5 XLC-1.3 problems |
62 | ||
63 | XLC version 1.3.0.0 distributed with AIX 3.2.5 will miscompile jump.c when | |
64 | building the stage1 compiler during the bootstrap process. This will cause | |
65 | GCC to crash and the bootstrap to fail later while compiling libgcc2.c. XLC | |
66 | version 1.3.0.1 or later fixes this problem. XLC-1.3.0.19 also cannot | |
67 | bootstrap GCC so please avoid that release as well. You can obtain | |
68 | XLC-1.3.0.24 by requesting PTF 432238 from IBM, or just ask for the latest | |
69 | release of XLC-1.3. | |
70 | ||
71 | There also have been reports of problems bootstrapping GCC with some older | |
72 | releases of xlc-1.2.1, including xlc-1.2.1.8. Newer releases of xlc-1.2.1 | |
73 | do not exhibit this problem: xlc-1.2.1.28 is known to bootstrap properly. | |
74 | ||
75 | ||
e4b0d7b3 | 76 | AIX 3.2 common-mode support |
2ac999c3 RK |
77 | |
78 | AIX common-mode providing transparent support of both the POWER and PowerPC | |
79 | architectures is usable in AIX 3.2.3 and above but an export file and | |
80 | support for hidden export via libc.a will not exist until AIX 4.1. libgcc.a | |
81 | also must be compiled in common-mode. Note that executables generated for | |
82 | the POWER (RIOS1 and RSC) architecture will run directly on systems using | |
83 | the MPC601 chip. Common-mode only improves the performance of a single | |
84 | executable run on both POWER and PowerPC architecture platforms by not using | |
85 | POWER- or PowerPC-specific instructions and eliminating the need to trap to | |
86 | emulation (for POWER instructions run on PowerPC). | |
87 | ||
88 | To link a common-mode application prior to AIX 4.1 and run it on a system at | |
89 | AIX level 3.2.3 or above, use the text between the "<>" as an export file | |
90 | (e.g. milli.exp) | |
91 | ||
92 | <><><><><><><><><><><> | |
93 | #! | |
94 | __mulh 0x3100 | |
95 | __mull 0x3180 | |
96 | __divss 0x3200 | |
97 | __divus 0x3280 | |
98 | __quoss 0x3300 | |
99 | __quous 0x3380 | |
100 | <><><><><><><><><><><> | |
101 | ||
102 | and then link with -Wl,-bI:milli.exp. | |
103 | ||
104 | ||
e4b0d7b3 DE |
105 | AIX 3.1 and 3.2 assembler problems |
106 | ||
107 | Specifying the -g flag to GCC on the RS/6000 requires upgrading the | |
108 | standard AIX assembler distributed with AIX 3.1 and versions of AIX | |
109 | 3.2 earlier than 3.2.4 with a replacement that is available from IBM. | |
110 | Note that Makefile.in specifies the -g when compiling libgcc2.c. | |
111 | ||
112 | You can test for the presence of a fixed assembler by entering the following: | |
113 | % as -u < /dev/null | |
114 | If the command exits normally, the assembler fix already is installed. | |
115 | If the assembler complains that "-u" is an unknown flag, you need to order | |
116 | the fix. | |
117 | ||
118 | If you are running AIX 3.1 (lslpp -h bos.obj output reports | |
119 | 03.01.0005.XXXX where the 0005 can be any higher number and the XXXX | |
120 | can be any value), call IBM Support at 800-237-5511 and ask for | |
121 | shipment of AIX/6000 fix PTF U403044 for APAR IX22829 (.extern foo | |
122 | conflicts with defining foo). | |
123 | ||
124 | If you are running AIX 3.2 but not 3.2.4 or later (lslpp -h bos.obj | |
125 | output reports 03.02.0000.0000), a newer update to the assembler fix | |
126 | is available. Ask for shipment of AIX/6000 fix PTF U416277 for | |
127 | IX32992 (.global prevents detection of duplicate symbol). | |
128 | ||
129 | If you are running AIX 3.2.4 or later, you already have the new | |
130 | assembler. | |
131 | ||
132 | Any customer can order and get the replacement assembler, and install it on | |
133 | one or more machines. It is available on diskette from IBM Customer Support | |
f6258172 | 134 | and from its website. |
e4b0d7b3 DE |
135 | |
136 | If you contact IBM Customer Support, they may also ask you for your customer | |
137 | number. If you do not know it, you will still be able to get the fix, but | |
138 | you will have to be persistent. IBM has corresponding support organizations | |
139 | outside of North America. Call your IBM branch office and ask them to put | |
140 | you in touch with the department that handles fixes for AIX/6000. If that | |
141 | doesn't work, ask for the department that handles software defect support | |
142 | for AIX/6000 and ask for the APAR fix. | |
143 | ||
144 | If you use the GNU assembler instead of the system supplied assembler, you need | |
145 | an assembler modified after October 16th, 1995 in order to build the GNU C | |
146 | compiler. This is because the GNU C compiler wants to build a variant of its | |
147 | library, libgcc.a with the -mcpu=common switch to support building programs | |
148 | that can run on either the Power or PowerPC machines. |