blob: ec2a4851c3555c8a67a7bb626eda0be517f8ff2d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
An overview of steps required to switch to a new GCC version.
1. Get the MinGW build of this GCC version and get configuration
flags (gcc -v). The idea is to build both the cross-compiler
and the native compiler (with linked-in ODB plugin) as close
to the MinGW configuration as possible.
2. Build the cross-compiler:
1. Backup old cross/mingw to cross/mingw-X.Y.Z.
2. Cleanup old GCC files from cross/mingw.
3. Unpack GCC, rename to gcc-cross, create or clean gcc-cross-build.
4. Adapt older gcc-X.Y.Z-mingw-cross.patch (--dry-run) and apply.
5. Adapt gcc-cross-configure.
6. Build & install:
cd gcc-cross-build
../gcc-cross-configure
make -j 16
make install
7. Clean up .so & .la files from cross/mingw/lib/gcc/i686-mingw/X.Y.Z
(we still seem to have to build with --enable-shared for exceptions
to work).
8. Check that the compiler works. Compile and run sizeof_funds.cxx and
throw.cxx. There should be no auto-importing (see step 7).
3. Build the native compiler:
1. Unpack GCC, rename to gcc, create or clean gcc-build.
2. Adapt older gcc-X.Y.Z-mingw.patch (--dry-run) and apply.
3. Adapt older gcc-X.Y.Z-static-plugin.patch (--dry-run) and apply.
This step will probably require careful review of changes in the
plugin code (plugin.h and plugin.c).
4. Regenerate configure script in gcc/gcc/. Use the same autoconf
version as in the original (see ~/build/autocond-X.Y). For example:
sudo make -C ~/build/autoconf-2.64 install
autoconf --version
cd gcc
autoconf
sudo make -C ~/build/autoconf-2.64 uninstall
4. Adapt gcc-configure.
5. Configure and make GCC manually:
export PATH=`pwd`/cross/mingw/bin:$PATH
cd gcc-build
../gcc-configure
make -j 16
This step will fail due to lack of libplugin-stub.a. That's
ok. Copy .h and .def files from gcc-build/gcc/ to gcc-headers/
(backup old ones).
4. Run the build-dist script with -rebuild
1. If GCC build fails, then it can be re-configured or re-made
directly from the gcc-build directory provided you don't
clean it up (if you do so, you can manually copy libplugin-stub.a
to gcc-build/gcc/).
2. Check the package for any stray directories/files.
3. On Windows, check that:
- Compiler, including exceptions, work. Compile and run sizeof_funds.cxx
and throw.cxx.
- Make sure ODB runs, including throwing exceptions (run on object
with private data members).
5. Copy updates/patches to odb/etc/.
|