-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
non-cmake builds fail #31
Comments
On 02/21/14 00:33:16, Nenad Vukicevic wrote:
To date, we build Clang UPC only with cmake. Apart from getting the compiler to build with configure and make, |
OK, I can live with that, but prior to release (delivery) I think that it should be fixed or very clearly documented that cmake is required. |
On 02/21/14 10:25:18, Paul H. Hargrove wrote:
It is useful to have this issue to track the lack of In any event, documenting the current discrepancy |
Do we have an idea of how much work would be required to get configure-based (non-cmake) builds working? There are now multiple platforms where I've initially given up on trying clang-upc because cmake is missing or too old. At least on Solaris-11/x86-64 the up-to-date cmake doesn't build w/o changes (that were a hack unsuited to send upstream). -Paul |
On 03/05/14 17:41:49, Paul H. Hargrove wrote:
No time estimate at the moment for configure and make. An intermediate approach might be to add a configure/make This might be sufficient to run clang-upc2c as the translator Or ... the makefile could first download cmake source and |
That might work, but only addresses the user's expectation that if a configure script exists at the top level then it is supposed to work. It does not eliminate the need for the external cmake tool. It would be simpler to just remove the configure script instead of making it a wrapper around cmake. It would solve exactly the same user-expects-existing-configure-script-to-work problem.
You forgot "and patch cmake on Solaris" ;-) |
It is probably possible to build only clang-upc/clang-upc2c without the library. You can do the following:
The above will make sure that file llvm/tools/clang/include/clang/Config/config.h.in gets the right values for few UPC defines required by the front-end. I see that I don't have default values above. I'll try more on this in the morning. |
With this commit I added a Makefile for upc2c tool that is necessary for configure/make to work. And this commit will allow for make to recurse into upc2c directory. |
Also, added -fupc-pre-include option to clang-upc. It might be useful to invoke the clang-upc without having to provide a header file (when libupc is missing). For upc2c translator we can always enforce this option, thus removing the need for empty clang-upc.h and clang-upc-lib.h in UPCR structure. |
With this commit to LLVM_UPC clangupc/llvm-upc@91d4f58 , plus couple of others mentioned on this thread, we should be able to build clang-upc and clang-upc2c with configure/Makefile structure without building the libupc. In essence, this is just a partial fix. After looking at the LLVM configure it seems that they expect all the configure to happen in one place (autoconf/configure.ac) for all the components (in our case llvm, clang, and clang tools). At the moment there is no link for doing libupc configure/make through this kind of build. I have to see some other clang tools and figure out what would make "make" descent into the libupc and configure/make. |
Nenad, Thanks. I will try on x86-64 and it that works as expected I'll give x86-32 a try. -Paul |
Nenad, One oddity I see is an un-expanded version number:
This is breaking the driver's regex for version reporting. |
Fixed the version string with 0218bdc I was surprised to see that my version string contained repository name strings. And it looks like it happens only if we use configure/Makefile build option. |
Nenad, I can now get a build of clang-upc via configure (instead of cmake). However, the resulting build doesn't work because of something bogus in the generated linker script:
Line 248 (and context) in the linker script looks like:
suggesting to me that something went seriously wrong in its generation. This is Linux/x86-64, using gcc-4.7.0 and binutils "2.17.50.0.6-14.el5 20061020" |
Hmm I'll take a look. Linux x86-64 is our main development platform and I also tested on PPC64. Note that with the configure build you only get one flavor of the libupc (packed by default). To duplicate what cmake On 6/11/14 5:25 PM, Paul H. Hargrove wrote:
|
What configure options do you use? |
Nenad asks
|
Nenad, This is on carver.nersc.gov where you should have an account. If you do try to reproduce on Carver, you will need to -Paul |
The commands to build upc.ld seem to differ depending on cmake vs configure. In
And in
The precise placement of the bogus "undefined reference to `main'" message seems to be irreproducable, and looks to be the result of inter mixing stderr and stdout. |
I've been using CMake exclusively since I couldn't get my first configure-based build to work. I've come back to look again and think this is a bug (as opposed to pilot error on my part).
The "make" runs for a faily long time before failing:
The text was updated successfully, but these errors were encountered: