forked from rose-compiler/rose
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.OSX
211 lines (136 loc) · 8.7 KB
/
README.OSX
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
As of the more recent Subversion based versions of ROSE and Mac OS X 10.4 for Intel,
ROSE runs out of the box on Mac. ROSE is however not supported on any non-x86
platform (this will change in the future).
Required (or helpful) external software (as per our own OSX test configuration):
boost_1_35_0.tar.gz:
All installations of ROSE (any platform) require boost.
doxygen-1.5.6.src.tar.gz:
Doxegen is required to build the documentation which is both distributed with ROSE
and make available via the ROSE web site.
ghostscript-8.62.tar.gz:
Not clear that this is really required by ROSE.
latex2html-2002-2-1.tar.gz:
Likely required by LaTeX (not required by ROSE as far as I know).
texlive2007-live-20070212.iso.zip (LaTeX):
Reqired to build the latex documentation (ROSE Manual and ROSE Tutorial).
fontconfig-2.6.0.tar.gz:
Not clear that this is really required by ROSE.
graphviz-2.20.1.tar.gz:
Required to generate graphs for the LaTex documentation in ROSE.
libtool-2.2.4.tar.bz2:
Required to build ROSE (used in ROSE configuration).
Need to run: "/Users/dquinlan/local/libtool-install/bin/libtoolize --force --copy --ltdl --automake"
the first time installed on OSX (ninjai specific detail).
Crontab used for OSX tests:
#24 21 * * 2-7 cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX-scidac.sh --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct
#48 16 * * * cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX.sh --enable-edg_union_struct_debugging --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct
#17 10 * * * cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX.sh --enable-edg_union_struct_debugging --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct --without-java
#33 15 * * * cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX.sh --enable-edg_union_struct_debugging --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct --without-java
********************************************************************************
The following notes are old, and might give hints about running ROSE on PowerPC:
ROSE is developed on Linux I86 architectures. We have not worked much on portablity
to other platforms. I few users have been using ROSE on Apple's OS X and here are their
notes. At some point (likely when we get access to OS X and start using it) we will
make sure the ROSE builds their more easily.
****************************************************************************************
BUILDING ROSE ON OTHER ARCHITECTURES
****************************************************************************************
************************ Notes contributed by Markus Schordan (4/25/2005) *************************
PORTABILITY: ROSE 0.7.9c
MS: 09/17/04: Apple Powerbook G4 15" (Herbert Blaha)
Tested on:
Apple Powerbook G4 15"
Debian Linux PPC (Kernelversion: 2.6.3)
g++ (GCC) 3.3.4 (Debian 1:3.3.4-11)
GNU Make 3.80
automake (GNU automake) 1.7.9
autoconf (GNU Autoconf) 2.59
ROSE Version 0.7.9c
WORKAROUND: The following two changes are required to use the
distribution version ROSE-0.9.7c.tar.gz on an Apple PowerPC
1.) in file:
ROSE-0.7.9c/src/frontend/EDG/EDG_3.3/src/defines.h
in line 76:
#define HOST_ALIGNMENT_REQUIRED 4
FIX: replace '4' by '8'
2.) in file:
ROSE-0.7.9c/src/frontend/EDG/EDG_3.3/src/float_pt.c
in line 143:
check_assertion_str(LDBL_MAX_EXP == 16384, /*lint !e506*/
"long_double_is_finite: unsupported exponent size");
FIX: change 16384 to 1024 (that's because LDBL_MAX_EXP on PPC is set to 1024)
make check does not fully succeed because of a problem in one of the
Makefiles:
CFGTest -I../../../../ROSE-0.7.9c/tests/roseTests/programAnalysisTests
../../../../ROSE-0.7.9c/tests/roseTests/programA
nalysisTests/testfile1.c
CFGTest: error while loading shared libraries: librose.so: cannot open shared
object file: No such file or directory
gmake[5]: *** [FORCE_TEST_CODES_TO_RUN] Error 255
(all tests before this test succeed)
However, we are using ROSE without problems on the PowerPC.
************************ Notes contributed by Boyana Norris (4/24/2005) *************************
Mac porting notes:
Environment:
setenv MACOS_DEPLOYMENT_TARGET 10.3
made symbolic link: ln -s /usr/bin/gnumake /usr/bin/gmake
=============================================================================
Configured with:
CXX=g++ CFLAGS='-fno-common -Wno-long-double -fPIC' CXXFLAGS='-fno-common -Wno-long-double -fPIC' GXX_MAJOR=3 GXX_MINOR=3
--prefix=/Users/norris/rose --with-cxx_shared_lib_update='g++ -dynamic -dynamiclib -multiply_defined warning -undefined define_a_way -weak_reference_mismatches weak -install_name $(shell pwd)/$@ -o '
OR
--prefix=/Users/norris/rose --with-cxx_shared_lib_update='g++ -dynamic -dynamiclib -multiply_defined warning -undefined define_a_way -weak_reference_mismatches weak -install_name $(libdir)/$@ -o '
=============================================================================
Code changes:
-----------------------------------------------------------------------------
"src/frontend/SageIII/Cxx_Grammar.C" line 10277 of 63799 --16%-- col 56
added cast to int to remove ambiguous call:
returnString += string("p_structureTagProcessingList.size() = ") +
StringUtility::numberToString((int)p_structureTagProcessingList.size()) + string("\n");
-----------------------------------------------------------------------------
in src/frontend/EDG/EDG_3.3/src/float_pt.c -- added a section for prototypes for Mac, before (and similar to) the sun settings (see version in patches/):
#endif /* ifdef __MWERKS__ */
#else /* !EDG_WIN32 */
#ifdef __POWERPC__
EXTERN_C int isnan(double x);
#define is_NaN(x) (isnan((double)(x)))
EXTERN_C int finite(double x);
#define is_finite(x) (finite(x))
#else
#ifdef sun
/* SunOS, Solaris, including Solaris on Intel X86. */
....
#endif /* ifdef sun */
#endif /* ifdef __POWERPC__ */
#endif /* EDG_WIN32 */
-----------------------------------------------------------------------------
_T is apparently a macro defined as some hex constant on a mac, so it can't
be used as a variable name. Problem files:
"DepInfoUpdate.h" line 11 of 87 --12%-- col 1
Changed
UpdateDepInfo( Update _T) : T(_T) {}
to
UpdateDepInfo( Update _xTxT) : T(_xTxT) {}
Also in: src/util/graphs/GraphUpdate.h
src/midend/loopProcessing/depGraph/DepGraphTransform.C
----------------------------------------------------------------
In file included from ../../../../../../src/02-20-05/src/midend/loopProcessing/driver/TransformComputation.C:3:
/usr/include/sys/timeb.h:72: error: 'time_t' is used as a type, but is not
defined as a type.
../../../../../../src/02-20-05/src/midend/loopProcessing/driver/TransformComputation.C: In
function `void ReportTime(int, const char*)':
../../../../../../src/02-20-05/src/midend/loopProcessing/driver/TransformComputation.C:50: error: `
ftime' undeclared (first use this function)
BRN ----> time_t defined in /usr/include/sys/types.h
ftime is deprecated and can be found in /usr/include/sys/timeb.h
Commented out the ftime call since it's deprecated-- need to update in a portable way.
----------------------
In PDFLibrary -- added fink include path /sw/include to makefile,
also deactivated all ifdef MAC segments since they don't work for
OSX 10.3 (with fink) in file p_basic.c
========
Instead of making everything, make only librose and its prerequisites (in utils, 3rdPartyLibraries)
src/Makefile.adic has some stuff removed, it's also easy to do make -k install.
Final link line:
g++ -dynamic -dynamiclib -undefined define_a_way -weak_reference_mismatches weak -install_name /Users/norris/rose/lib/librose.so -o librose.so ../src/util/support/*.o ../src/util/graphs/*.o ../src/util/stringSupport/*.o ../src/util/commandlineProcessing/*.o ../src/3rdPartyLibraries/MSTL/*.o ../src/frontend/SageIII/*.o ../src/midend/astUtil/astInterface/*.o ../src/midend/astUtil/astSupport/*.o ../src/midend/astUtil/symbolicVal/*.o ../src/midend/astUtil/annotation/*.o ../src/midend/astInlining/*.o ../src/midend/astQuery/*.o ../src/midend/astDiagnostics/*.o ../src/midend/astProcessing/*.o ../src/midend/astRewriteMechanism/*.o ../src/midend/programAnalysis/OAWrap/*.o ../src/midend/programAnalysis/CFG/*.o ../src/midend/programAnalysis/dataflowAnalysis/*.o ../src/midend/programAnalysis/valuePropagation/*.o ../src/backend/unparser/*.o ../src/roseSupport/*.o