Semih,
Thank you for contributing your patch for building STAF using the
Sun/Studio C/C++ compiler on Solaris. Please follow the process for
contributing documented at http://staf.sourceforge.net/contributions.php.
We need you to submit a patch and include a Statement of Origin along with
attaching your changes to the patch. We'll then look at adding it to the
STAF project. Thanks!
--------------------------------------------------------------
Sharon Lucas
IBM Austin, [EMAIL PROTECTED]
(512) 838-8347 or Tieline 678-8347
Semih Cemiloglu <[EMAIL PROTECTED]>
11/18/2008 10:37 PM
Please respond to
[EMAIL PROTECTED]
To
staf-users@lists.sourceforge.net
cc
Subject
[staf-users] Compiling STAF 3.3.1 with Sun Studio on Solaris 10
Dear list members,
Followings are the steps and changes to compile and install STAF with
Sun Studio C/C++ compilers on Solaris operating system. I'm posting them
to the list since they might be useful to others. I hope to see Sun's
C++ compiler-Solaris10 combination is added to STAF's supported
platforms as Sun CC has excellent code generation characteristics and
comes with extensive suite of development tools.
1) I have used following servers and tools during compilation
a) OpenSolaris 2008.5 (Solaris x86) edition with Sun Studio 2008.11
Express edition
giant$ uname -a
SunOS giant 5.11 snv_86 i86pc i386 i86pc
giant$ CC -V
CC: Sun Ceres C++ 5.10 SunOS_i386 2008/10/22
b) Solaris 10 running on sparc host with Sun Studio 11
miranda$ uname -a
SunOS miranda 5.10 Generic_120011-14 sun4u sparc SUNW,Sun-Fire-880
miranda$ CC -V
CC: Sun C++ 5.8 Patch 121017-06 2006/10/18
2) I have compiled only STAF Core by opting out Open-SSL
giant$ export CC_NAME=suncc
giant$ export OS_NAME=solaris
giant$ export BUILD_TYPE=retail
giant$ export STAF_USE_SSL=
giant$ export PROJECTS="staf connprov*"
3) STAF did require source level changes even though they were trivial.
All changes were guarded by conditional compilation to avoid breaking
other platforms. Also, specialized makefile has been added to discern
Sun's CC (suncc) from gcc. The patches are attached tho this message as
a text file as well as listed below.
4) I used gnu-make to build
giant$ gmake -v
GNU Make 3.81
...
giant$ gmake 2>&1 |tee make.log
5) Installation required some manual tasks to overcome a symbolic link
error:
giant$ pwd
/export/home/semihc/Packages/staf-3.3.1/rel/solaris/staf/retail/lib
giant$ mkdir IPv4
giant$ cp -p libSTAF.so IPv4/.
giant$ cp -p libSTAFTCP.so IPv4/.
giant$ cd ..
giant$ ./STAFInst -target /usr/local/staf-3.3.1 -verbose
6) Correctness test:
a)
giant$ ./STAFProc &
[1] 11260
giant$
Machine : giant
Machine nickname : giant
Startup time : 20081119-15:17:42
STAFProc version 3.3.1 initialized
giant$ STAF local ping ping
Response
--------
PONG
b)
miranda$ STAFProc &
[1] 9424
miranda$
Machine : miranda
Machine nickname : miranda
Startup time : 20081119-15:23:21
STAFProc version 3.3.1 initialized
miranda$ STAF local ping ping
Response
--------
PONG
I take this opportunity to thank all of STAF team and contributers for
their excellent work. Thank you.
Kind regards,
Semih Cemiloglu
---- Solaris 10 / Sun CC patch ----
diff -bwNr src/staf/build/makefile.suncc src.org/staf/build/makefile.suncc
1,68d0
<
#############################################################################
< # Software Testing Automation Framework
(STAF) #
< # (C) Copyright IBM Corp.
2001 #
<
#
#
< # This software is licensed under the Eclipse Public License (EPL)
V1.0. #
<
#############################################################################
<
< #########################
< # Setup C/C++ variables #
< #########################
<
< CC_CC := CC
< CC_C := cc
< CC_MK_SHARED_LIB := CC -G
<
< ifeq ($(BUILD_TYPE),retail)
< CC_BUILD_TYPE_FLAGS = $(CC_OPTIMIZE) -DNDEBUG
< else
< CC_BUILD_TYPE_FLAGS = $(CC_DEBUG)
< endif
<
< CC_DEBUG := -g0
< CC_OPTIMIZE := -xO2
< CC_FPIC := -Kpic
< CC_STL_PTHREADS := -D_PTHREADS
< CC_SHAREDLIBNAMEFLAGS = -DSTAF_SHARED_LIB_PREFIX=$(OS_SHARED_LIB_PREFIX)
\
< -DSTAF_SHARED_LIB_SUFFIX=$(OS_SHARED_LIB_SUFFIX)
<
< ifeq ($(OS_NAME),solaris)
< ifeq ($(BUILD_ARCH),SPARC64)
< CC_ARCHFLAGS = -m64
< endif
< ifeq ($(BUILD_ARCH),x64-64)
< CC_ARCHFLAGS = -m64
< endif
< endif
<
< CC_COMMONFLAGS = $(OS_COMMONFLAGS) $(COMMONFLAGS) $(CC_FPIC)\
< $(CC_BUILD_TYPE_FLAGS) $(CC_SHAREDLIBNAMEFLAGS)\
< $(CC_STL_PTHREADS) -DSTAF_NATIVE_COMPILER\
< $(CC_ARCHFLAGS)
<
< CC_CFLAGS = $(CC_COMMONFLAGS) $(CFLAGS)
<
< CC_LINKFLAGS = $(CC_COMMONFLAGS) $(LINKFLAGS)
< CC_SHARED_LIB_LINKFLAGS = $(CC_COMMONFLAGS) $(LINKFLAGS)
<
<
< ##########################################
< # Set commands needed by master makefile #
< ##########################################
<
< CC_DEPEND_IT = cd $(@D); $(CC_CC) -xM1 $(CC_CFLAGS)
$(ALL_INCLUDEDIR_LIST) \
< $< | sed -e '[EMAIL PROTECTED](.*\)\.o:@$(@D)/\1.o
$(@D)/\1.d:@'
>$@
<
< CC_DEPEND_IT_C = cd $(@D); $(CC_C) -xM1 $(CC_CFLAGS)
$(ALL_INCLUDEDIR_LIST) \
< $< | sed -e '[EMAIL PROTECTED](.*\)\.o:@$(@D)/\1.o
$(@D)/\1.d:@'
>$@
<
< CC_COMPILE_IT = $(CC_CC) -c -o $@ $(CC_CFLAGS)
$(ALL_INCLUDEDIR_LIST) $<
<
< CC_COMPILE_IT_C = $(CC_C) -c -o $@ $(CC_CFLAGS) $(ALL_INCLUDEDIR_LIST)
$<
<
< CC_LINK_IT = $(CC_CC) -o $@ $(CC_LINKFLAGS)
$(ALL_INCLUDEDIR_LIST)\
< $(ALL_LIBDIR_LIST) $(ALL_LIB_LIST) $(OBJS)
<
< CC_SHARED_LIB_IT = $(CC_MK_SHARED_LIB) -o $@ $(CC_SHARED_LIB_LINKFLAGS)
\
< $(ALL_INCLUDEDIR_LIST) $(ALL_LIBDIR_LIST)
$(ALL_LIB_LIST) \
< $(OBJS)
diff -bwNr src/staf/makefile src.org/staf/makefile
604c604
< $(COPY) $< $@
---
> @$(COPY) $< $@
610c610
< PATH=$(REXX_IMAGE_DIR):$$PATH RXPPPATH='$(subst
$(SPACE),$(OS_PS),$(strip $(RXPP_PATH)))' $(RXPP) '$(OS_<)' '$(OS_@)'
---
> @PATH=$(REXX_IMAGE_DIR):$$PATH RXPPPATH='$(subst
$(SPACE),$(OS_PS),$(strip $(RXPP_PATH)))' $(RXPP) '$(OS_<)' '$(OS_@)'
615c615
< $(STRIP) $@
---
> @$(STRIP) $@
621c621
< $(CC_DEPEND_IT)
---
> @$(CC_DEPEND_IT)
627c627
< $(CC_DEPEND_IT_C)
---
> @$(CC_DEPEND_IT_C)
633c633
< $(CC_COMPILE_IT)
---
> @$(CC_COMPILE_IT)
639c639
< $(CC_COMPILE_IT_C)
---
> @$(CC_COMPILE_IT_C)
645c645
< $(CC_LINK_IT)
---
> @$(CC_LINK_IT)
651,652c651,652
< $(CC_SHARED_LIB_IT)
< $(MOVE_SIDE_DECK)
---
> @$(CC_SHARED_LIB_IT)
> @$(MOVE_SIDE_DECK)
diff -bwNr src/staf/stafif/STAFCommandParser.cpp
src.org/staf/stafif/STAFCommandParser.cpp
856,858c856
< #if defined(STAF_OS_NAME_HPUX)
< std::distance(iterPair.first, iterPair.second,
*numTimes);
< #elif defined(STAF_OS_NAME_SOLARIS) && defined(__SUNPRO_CC)
---
> #ifdef STAF_OS_NAME_HPUX
diff -bwNr src/staf/stafif/STAFTrace.h src.org/staf/stafif/STAFTrace.h
56a57,67
> #ifdef __cplusplus
>
> inline STAFTracePoint_t operator|(const STAFTracePoint_t lhs,
> const STAFTracePoint_t rhs)
> {
> return static_cast<STAFTracePoint_t>(static_cast<unsigned int>(lhs)
|
> static_cast<unsigned
int>(rhs));
> }
>
> #endif
>
193,199d203
< inline STAFTracePoint_t operator|(const STAFTracePoint_t lhs,
< const STAFTracePoint_t rhs)
< {
< return static_cast<STAFTracePoint_t>(static_cast<unsigned int>(lhs)
|
< static_cast<unsigned
int>(rhs));
< }
<
diff -bwNr src/staf/test/testrwsem.cpp src.org/staf/test/testrwsem.cpp
58,61d57
< #if defined(STAF_OS_NAME_SOLARIS) && defined(__SUNPRO_CC)
< return 0;
< #endif
<
diff -bwNr src/staf/build/makefile.suncc src.org/staf/build/makefile.suncc
1,68d0
<
#############################################################################
< # Software Testing Automation Framework (STAF) #
< # (C) Copyright IBM Corp. 2001 #
< # #
< # This software is licensed under the Eclipse Public License (EPL) V1.0.
#
<
#############################################################################
<
< #########################
< # Setup C/C++ variables #
< #########################
<
< CC_CC := CC
< CC_C := cc
< CC_MK_SHARED_LIB := CC -G
<
< ifeq ($(BUILD_TYPE),retail)
< CC_BUILD_TYPE_FLAGS = $(CC_OPTIMIZE) -DNDEBUG
< else
< CC_BUILD_TYPE_FLAGS = $(CC_DEBUG)
< endif
<
< CC_DEBUG := -g0
< CC_OPTIMIZE := -xO2
< CC_FPIC := -Kpic
< CC_STL_PTHREADS := -D_PTHREADS
< CC_SHAREDLIBNAMEFLAGS = -DSTAF_SHARED_LIB_PREFIX=$(OS_SHARED_LIB_PREFIX)
\
< -DSTAF_SHARED_LIB_SUFFIX=$(OS_SHARED_LIB_SUFFIX)
<
< ifeq ($(OS_NAME),solaris)
< ifeq ($(BUILD_ARCH),SPARC64)
< CC_ARCHFLAGS = -m64
< endif
< ifeq ($(BUILD_ARCH),x64-64)
< CC_ARCHFLAGS = -m64
< endif
< endif
<
< CC_COMMONFLAGS = $(OS_COMMONFLAGS) $(COMMONFLAGS) $(CC_FPIC)\
< $(CC_BUILD_TYPE_FLAGS) $(CC_SHAREDLIBNAMEFLAGS)\
< $(CC_STL_PTHREADS) -DSTAF_NATIVE_COMPILER\
< $(CC_ARCHFLAGS)
<
< CC_CFLAGS = $(CC_COMMONFLAGS) $(CFLAGS)
<
< CC_LINKFLAGS = $(CC_COMMONFLAGS) $(LINKFLAGS)
< CC_SHARED_LIB_LINKFLAGS = $(CC_COMMONFLAGS) $(LINKFLAGS)
<
<
< ##########################################
< # Set commands needed by master makefile #
< ##########################################
<
< CC_DEPEND_IT = cd $(@D); $(CC_CC) -xM1 $(CC_CFLAGS)
$(ALL_INCLUDEDIR_LIST) \
< $< | sed -e '[EMAIL PROTECTED](.*\)\.o:@$(@D)/\1.o
$(@D)/\1.d:@'
>$@
<
< CC_DEPEND_IT_C = cd $(@D); $(CC_C) -xM1 $(CC_CFLAGS)
$(ALL_INCLUDEDIR_LIST) \
< $< | sed -e '[EMAIL PROTECTED](.*\)\.o:@$(@D)/\1.o
$(@D)/\1.d:@'
>$@
<
< CC_COMPILE_IT = $(CC_CC) -c -o $@ $(CC_CFLAGS) $(ALL_INCLUDEDIR_LIST)
$<
<
< CC_COMPILE_IT_C = $(CC_C) -c -o $@ $(CC_CFLAGS) $(ALL_INCLUDEDIR_LIST)
$<
<
< CC_LINK_IT = $(CC_CC) -o $@ $(CC_LINKFLAGS)
$(ALL_INCLUDEDIR_LIST)\
< $(ALL_LIBDIR_LIST) $(ALL_LIB_LIST) $(OBJS)
<
< CC_SHARED_LIB_IT = $(CC_MK_SHARED_LIB) -o $@ $(CC_SHARED_LIB_LINKFLAGS)
\
< $(ALL_INCLUDEDIR_LIST) $(ALL_LIBDIR_LIST)
$(ALL_LIB_LIST) \
< $(OBJS)
diff -bwNr src/staf/makefile src.org/staf/makefile
604c604
< $(COPY) $< $@
---
> @$(COPY) $< $@
610c610
< PATH=$(REXX_IMAGE_DIR):$$PATH RXPPPATH='$(subst
$(SPACE),$(OS_PS),$(strip $(RXPP_PATH)))' $(RXPP) '$(OS_<)' '$(OS_@)'
---
> @PATH=$(REXX_IMAGE_DIR):$$PATH RXPPPATH='$(subst
$(SPACE),$(OS_PS),$(strip $(RXPP_PATH)))' $(RXPP) '$(OS_<)' '$(OS_@)'
615c615
< $(STRIP) $@
---
> @$(STRIP) $@
621c621
< $(CC_DEPEND_IT)
---
> @$(CC_DEPEND_IT)
627c627
< $(CC_DEPEND_IT_C)
---
> @$(CC_DEPEND_IT_C)
633c633
< $(CC_COMPILE_IT)
---
> @$(CC_COMPILE_IT)
639c639
< $(CC_COMPILE_IT_C)
---
> @$(CC_COMPILE_IT_C)
645c645
< $(CC_LINK_IT)
---
> @$(CC_LINK_IT)
651,652c651,652
< $(CC_SHARED_LIB_IT)
< $(MOVE_SIDE_DECK)
---
> @$(CC_SHARED_LIB_IT)
> @$(MOVE_SIDE_DECK)
diff -bwNr src/staf/stafif/STAFCommandParser.cpp
src.org/staf/stafif/STAFCommandParser.cpp
856,858c856
< #if defined(STAF_OS_NAME_HPUX)
< std::distance(iterPair.first, iterPair.second,
*numTimes);
< #elif defined(STAF_OS_NAME_SOLARIS) && defined(__SUNPRO_CC)
---
> #ifdef STAF_OS_NAME_HPUX
diff -bwNr src/staf/stafif/STAFTrace.h src.org/staf/stafif/STAFTrace.h
56a57,67
> #ifdef __cplusplus
>
> inline STAFTracePoint_t operator|(const STAFTracePoint_t lhs,
> const STAFTracePoint_t rhs)
> {
> return static_cast<STAFTracePoint_t>(static_cast<unsigned int>(lhs)
|
> static_cast<unsigned
int>(rhs));
> }
>
> #endif
>
193,199d203
< inline STAFTracePoint_t operator|(const STAFTracePoint_t lhs,
< const STAFTracePoint_t rhs)
< {
< return static_cast<STAFTracePoint_t>(static_cast<unsigned int>(lhs)
|
< static_cast<unsigned
int>(rhs));
< }
<
diff -bwNr src/staf/test/testrwsem.cpp src.org/staf/test/testrwsem.cpp
58,61d57
< #if defined(STAF_OS_NAME_SOLARIS) && defined(__SUNPRO_CC)
< return 0;
< #endif
<
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
Build the coolest Linux based applications with Moblin SDK & win great
prizes
Grand prize is a trip for two to an Open Source event anywhere in the
world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
staf-users mailing list
staf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/staf-users
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
staf-users mailing list
staf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/staf-users