Declare malloc, free, and atexit if inhibit_libc is defined.
[official-gcc.git] / gcc / README.RS6000
blob24cc8ba8e725ec087cc8cd625fd1fae938bf3b8a
1                         AIX 4.3 archive libraries
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.
14                              AIX 4.3.2 binder
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.
21                            AIX 4.3.0 assembler
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
28 ASSEMBLE/BIND) is available from IBM Customer Support and from its
29 service.boulder.ibm.com website as PTF U453956.
32                               AIX 4.1 binder
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.
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.
49                              AIX NLS problems
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".
60                                      
61                          AIX 3.2.5 XLC-1.3 problems
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.
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.
76                        AIX 3.2 common-mode support
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).
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)
92 <><><><><><><><><><><>
94 __mulh          0x3100
95 __mull          0x3180
96 __divss         0x3200
97 __divus         0x3280
98 __quoss         0x3300
99 __quous         0x3380
100 <><><><><><><><><><><>
102 and then link with -Wl,-bI:milli.exp.
105                      AIX 3.1 and 3.2 assembler problems
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.
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.
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).
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).
129 If you are running AIX 3.2.4 or later, you already have the new
130 assembler.
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
134 and from its website.
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.
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.