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