[Open64-devel] Code review request for changes to support non-shared build [BUILD]
Brought to you by:
ributzka,
suneeljain
From: David C. <dco...@gm...> - 2011-07-28 23:34:03
|
The attached patch adds support for an experimental '--disable-shared' configuration option. This option is useful for avoiding the portability problems introduced by the way Open64 uses shared objects. For example, the use of static initializers to bind pointers to functions (the "weak symbol workaround") in the loading process does not work in Cygwin/Windows environments. In the non-shared build, the executables be, inline, whirl2c, and whirl2f are standalone and do not load any shared objects other than the standard system libraries. Long term, I think building the compiler executables without shared objects might be the way to go for all platforms. The resulting executables are easier to debug and the driver is simplified -- no LD_LIBRARY_PATH. And lots of ugly "weak symbol workaround" code could be deleted. But first ipa_link will need some changes in order to work for the non-shared configuration; in this patch, the --disable-shared option implies --disable-ipa. Mike, your review would be appreciated since NVIDIA seems to have encountered these same issues when porting some Open64 components to Windows. The details of the changes are in the attached msg.txt file. Thanks, -David Coakley / AMD Open Source Compiler Engineering |