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