Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: docs/linux_building_debug_gtk.md

Issue 1324603002: [Docs] Another round of stylistic fixes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « docs/linux_build_instructions_prerequisites.md ('k') | docs/linux_cert_management.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Introduction 1 # Linux — Building and Debugging GTK
2 2
3 Sometimes installing the debug packages for gtk and glib isn't quite enough. 3 Sometimes installing the debug packages for gtk and glib isn't quite enough.
4 (For instance, if the artifacts from -O2 are driving you bonkers in gdb, you 4 (For instance, if the artifacts from -O2 are driving you bonkers in gdb, you
5 might want to rebuild with -O0.) 5 might want to rebuild with -O0.)
6 Here's how to build from source and use your local version without installing it . 6 Here's how to build from source and use your local version without installing
7 it.
8
9 [TOC]
7 10
8 ## 32-bit systems 11 ## 32-bit systems
9 12
10 On Ubuntu, to download and build glib and gtk suitable for debugging: 13 On Ubuntu, to download and build glib and gtk suitable for debugging:
11 14
12 1. If you don't have a gpg key yet, generate one with gpg --gen-key. 15 1. If you don't have a gpg key yet, generate one with `gpg --gen-key`.
16 2. Create file `~/.devscripts` containing `DEBSIGN_KEYID=yourkey`, e.g.
17 `DEBSIGN_KEYID=CC91A262` (See
18 http://www.debian.org/doc/maint-guide/ch-build.en.html)
19 3. If you're on a 32 bit system, do:
13 20
14 2. Create file ~/.devscripts containing DEBSIGN\_KEYID=yourkey, e.g. 21 ```shell
15 DEBSIGN\_KEYID=CC91A262 22 #!/bin/sh
16 (See http://www.debian.org/doc/maint-guide/ch-build.en.html 23 set -x
24 set -e
25 # Workaround for "E: Build-dependencies for glib2.0 could not be satisfied"
26 # See also https://bugs.launchpad.net/ubuntu/+source/apt/+bug/245068
27 sudo apt-get install libgamin-dev
28 sudo apt-get build-dep glib2.0 gtk+2.0
29 rm -rf ~/mylibs
30 mkdir ~/mylibs
31 cd ~/mylibs
32 apt-get source glib2.0 gtk+2.0
33 cd glib2.0*
34 DEB_BUILD_OPTIONS="nostrip noopt debug" debuild
35 cd ../gtk+2.0*
36 DEB_BUILD_OPTIONS="nostrip noopt debug" debuild
37 ```
17 38
18 3. If you're on a 32 bit system, do: 39 This should take about an hour. If it gets stuck waiting for a zombie,
19 ```
20 #!/bin/sh
21 set -x
22 set -e
23 # Workaround for "E: Build-dependencies for glib2.0 could not be satisfied"
24 # See also https://bugs.launchpad.net/ubuntu/+source/apt/+bug/245068
25 sudo apt-get install libgamin-dev
26 sudo apt-get build-dep glib2.0 gtk+2.0
27 rm -rf ~/mylibs
28 mkdir ~/mylibs
29 cd ~/mylibs
30 apt-get source glib2.0 gtk+2.0
31 cd glib2.0*
32 DEB_BUILD_OPTIONS="nostrip noopt debug" debuild
33 cd ../gtk+2.0*
34 DEB_BUILD_OPTIONS="nostrip noopt debug" debuild
35 ```
36 This should take about an hour. If it gets stuck waiting for a zombie,
37 you may have to kill its closest parent (the makefile uses subshells, 40 you may have to kill its closest parent (the makefile uses subshells,
38 and bash seems to get confused). When I did this, it continued successfully. 41 and bash seems to get confused). When I did this, it continued successfully.
39 42
40 At the very end, it will prompt you for the passphrase for your gpg key. 43 At the very end, it will prompt you for the passphrase for your gpg key.
41 44
42 Then, to run an app with those libraries, do e.g. 45 Then, to run an app with those libraries, do e.g.
43 ``` 46
44 export LD_LIBRARY_PATH=$HOME/mylibs/gtk+2.0-2.16.1/debian/install/shared/usr/lib :$HOME/mylibs/gtk+2.0-2.20.1/debian/install/shared/usr/lib 47 export LD_LIBRARY_PATH=$HOME/mylibs/gtk+2.0-2.16.1/debian/install/shared/usr /lib:$HOME/mylibs/gtk+2.0-2.20.1/debian/install/shared/usr/lib
45 ```
46 48
47 gdb ignores that variable, so in the debugger, you would have to do something li ke 49 gdb ignores that variable, so in the debugger, you would have to do something li ke
48 ``` 50
49 set solib-search-path $HOME/mylibs/gtk+2.0-2.16.1/debian/install/shared/usr/lib: $HOME/mylibs/gtk+2.0-2.20.1/debian/install/shared/usr/lib 51 set solib-search-path $HOME/mylibs/gtk+2.0-2.16.1/debian/install/shared/usr/ lib:$HOME/mylibs/gtk+2.0-2.20.1/debian/install/shared/usr/lib
50 ```
51 52
52 See also http://sources.redhat.com/gdb/current/onlinedocs/gdb_17.html 53 See also http://sources.redhat.com/gdb/current/onlinedocs/gdb_17.html
53 54
54 ## 64-bit systems 55 ## 64-bit systems
55 56
56 If you're on a 64 bit systems, you can do the above on a 32 57 If you're on a 64 bit system, you can do the above on a 32
57 bit system, and copy the result. Or try one of the following: 58 bit system, and copy the result. Or try one of the following:
58 59
59 ### Building your own GTK 60 ### Building your own GTK
60 61
61 ``` 62 ```shell
62 apt-get source glib-2.0 gtk+-2.0 63 apt-get source glib-2.0 gtk+-2.0
63 64
64 export CFLAGS='-m32 -g' 65 export CFLAGS='-m32 -g'
65 export LDFLAGS=-L/usr/lib32 66 export LDFLAGS=-L/usr/lib32
66 export LD_LIBRARY_PATH=/work/32/lib 67 export LD_LIBRARY_PATH=/work/32/lib
67 export PKG_CONFIG_PATH=/work/32/lib/pkgconfig 68 export PKG_CONFIG_PATH=/work/32/lib/pkgconfig
68 69
69 # glib 70 # glib
70 setarch i386 ./configure --prefix=/work/32 --enable-debug=yes 71 setarch i386 ./configure --prefix=/work/32 --enable-debug=yes
71 72
72 # gtk 73 # gtk
73 setarch i386 ./configure --prefix=/work/32 --enable-debug=yes --without-libtiff 74 setarch i386 ./configure --prefix=/work/32 --enable-debug=yes --without-libtiff
74 ``` 75 ```
75 76
77 ### ia32-libs
76 78
77 ### ia32-libs
78 _Note: Evan tried this and didn't get any debug libs at the end._ 79 _Note: Evan tried this and didn't get any debug libs at the end._
79 80
80 Or you could try this instead: 81 Or you could try this instead:
82
81 ``` 83 ```
82 #!/bin/sh 84 #!/bin/sh
83 set -x 85 set -x
84 set -e 86 set -e
85 sudo apt-get build-dep ia32-libs 87 sudo apt-get build-dep ia32-libs
86 rm -rf ~/mylibs 88 rm -rf ~/mylibs
87 mkdir ~/mylibs 89 mkdir ~/mylibs
88 cd ~/mylibs 90 cd ~/mylibs
89 apt-get source ia32-libs 91 apt-get source ia32-libs
90 cd ia32-libs* 92 cd ia32-libs*
91 DEB_BUILD_OPTIONS="nostrip noopt debug" debuild 93 DEB_BUILD_OPTIONS="nostrip noopt debug" debuild
92 ``` 94 ```
93 95
94 By default, this just grabs and unpacks prebuilt libraries; see 96 By default, this just grabs and unpacks prebuilt libraries; see
95 ia32-libs-2.7ubuntu6/fetch-and-build which documents a BUILD 97 ia32-libs-2.7ubuntu6/fetch-and-build which documents a BUILD variable which
96 variable which would force actual building. 98 would force actual building. This would take way longer, since it builds dozens
97 This would take way longer, since it builds dozens of libraries. 99 of libraries. I haven't tried it yet.
98 I haven't tried it yet.
99 100
100 #### Possible Issues 101 #### Possible Issues
101 102
102 debuild may fail with 103 debuild may fail with
104
103 ``` 105 ```
104 gpg: [stdin]: clearsign failed: secret key not available 106 gpg: [stdin]: clearsign failed: secret key not available
105 debsign: gpg error occurred! Aborting.... 107 debsign: gpg error occurred! Aborting....
106 ``` 108 ```
107 if you forget to create ~/.devscripts with the right contents.
108 109
109 The build may fail with a "FAIL: abicheck.sh" if gold is your system 110 if you forget to create `~/.devscripts` with the right contents.
110 linker. Use ld instead. 111
112 The build may fail with a `FAIL: abicheck.sh` if gold is your system linker. Use
113 ld instead.
OLDNEW
« no previous file with comments | « docs/linux_build_instructions_prerequisites.md ('k') | docs/linux_cert_management.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698