endif()
endif()
-string(REGEX MATCH "gcc" GCC "${CMAKE_C_COMPILER}")
-if(GCC)
+if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
exec_program("${CMAKE_C_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_C_VERSION")
exec_program("${CMAKE_CXX_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_CXX_VERSION")
string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_C_VERSION "${COMPILER_C_VERSION}")
include_directories(${INCLUDES})
-### Determine the assembly flavor that we need today
-include(CMakeDetermineSystem)
-set(PROCESSOR_${CMAKE_SYSTEM_PROCESSOR} 1)
-
### Setup Options
include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Option.cmake)
# x86
# i.86
+### Determine the assembly flavor that we need today
+include(CMakeDetermineSystem)
IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86")
IF(${ARCH_32_BITS})
+ message(STATUS "System processor: i686 (${CMAKE_SYSTEM_PROCESSOR}, 32 bits)")
set(PROCESSOR_i686 1)
- set(SIMGRID_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
- message(STATUS "System processor: ${CMAKE_SYSTEM_PROCESSOR}")
ELSE()
- message(STATUS "System processor: amd64")
- set(SIMGRID_SYSTEM_PROCESSOR "amd64")
+ message(STATUS "System processor: x86_64 (${CMAKE_SYSTEM_PROCESSOR}, 64 bits)")
set(PROCESSOR_x86_64 1)
- set(PROCESSOR_i686 0)
ENDIF()
set(HAVE_RAWCTX 1)
ENDIF()
+if(ARCH_32_BITS)
+ set(MPI_ADDRESS_SIZE 4)
+else()
+ set(MPI_ADDRESS_SIZE 8)
+endif()
+
message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}")
include(CheckFunctionExists)
set(libdir ${exec_prefix}/lib)
set(CMAKE_SMPI_COMMAND "export LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${GTNETS_LIB_PATH}:${HAVE_NS3_LIB}:$LD_LIBRARY_PATH")
+configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/mpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/mpif.h @ONLY)
configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/smpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/smpif.h @ONLY)
configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_BINARY_DIR}/bin/smpicc @ONLY)
configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif2c.in ${CMAKE_BINARY_DIR}/bin/smpif2c @ONLY)
endif()
set(generated_headers_to_install
+ ${CMAKE_CURRENT_BINARY_DIR}/include/smpi/mpif.h
${CMAKE_CURRENT_BINARY_DIR}/include/smpi/smpif.h
${CMAKE_CURRENT_BINARY_DIR}/include/simgrid_config.h
)
include/simgrid/platf_generator.h
include/simgrid/simix.h
include/smpi/mpi.h
- include/smpi/mpif.h
include/smpi/smpi.h
include/smpi/smpi_cocci.h
include/smpi/smpi_main.h
)
set(source_of_generated_headers
include/simgrid_config.h.in
+ include/smpi/mpif.h.in
include/smpi/smpif.h.in
src/context_sysv_config.h.in)
if(NOT __VISUALC__ AND NOT __BORLANDC__)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-g3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-g3")
+ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}/Zi")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}/Zi")
string(REPLACE "-Wclobbered " "" warnCFLAGS "${warnCFLAGS}")
endif()
- set(CMAKE_Fortran_FLAGS "-Wall") # FIXME: Q&D hack
+ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall") # FIXME: Q&D hack
set(CMAKE_JAVA_COMPILE_FLAGS "-Xlint")
endif()
if(NSIS_PATH)
ADD_CUSTOM_TARGET(nsis
COMMENT "Generating the SimGrid installor for Windows..."
- DEPENDS simgrid simgrid graphicator tesh simgrid-colorizer simgrid_update_xml
+ DEPENDS simgrid simgrid graphicator simgrid-colorizer simgrid_update_xml
COMMAND ${NSIS_PATH}/makensis.exe simgrid.nsi
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/
)
-endif()
\ No newline at end of file
+endif()
message(STATUS "pexports: ${PEXPORTS_PATH}")
if(PEXPORTS_PATH)
add_custom_command(TARGET SG_java POST_BUILD
- COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/SG_java.dll > ${CMAKE_BINARY_DIR}/SG_java.def)
+ COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/lib/SG_java.dll > ${CMAKE_BINARY_DIR}/lib/SG_java.def)
endif(PEXPORTS_PATH)
endif()
### Make Libs
#>gcc c:\simgrid-trunk\examples\msg\icomms\peer.c -static -Lc:\simgrid-trunk\lib -lsimgrid -Ic:\simgrid-trunk\include -lwsock32
+if(enable_java)
+ include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeJava.cmake)
+endif()
add_library(simgrid SHARED ${simgrid_sources})
message(" Mallocators .........: ${enable_mallocators}")
message("")
message(" Simgrid dependencies : ${SIMGRID_DEP}")
-message(" Smpi dependencies ...: ${SMPI_DEP}")
message("")
message(" INSTALL_PREFIX ......: ${CMAKE_INSTALL_PREFIX}")
B<tesh> [I<options>] I<tesh_file>
=cut
-my($bindir);
-my($srcdir);
+my($bindir)=".";
+my($srcdir)=".";
my $path = $0;
+my $OS;
$path =~ s|[^/]*$||;
push @INC,$path;
use Term::ANSIColor;
use IPC::Open3;
-my($OS)=`echo %OS%`;
-if($OS eq "%OS%"){
+if($^O eq "linux"){
$OS = "UNIX";
}
else{
$OS = "WIN";
}
+
+sub trim($)
+{
+ my $string = shift;
+ $string =~ s/^\s+//;
+ $string =~ s/\s+$//;
+ return $string;
+}
+
print "OS: ".$OS."\n";
# make sure we received a tesh file
}
sub setenv_cmd {
- if ($_[1] =~ /^(.*)=(.*)$/) {
- my($var,$ctn)=($1,$2);
+ my($var,$ctn);
+ if ($_[0] =~ /^(.*)=(.*)$/) {
+ ($var,$ctn)=($1,$2);
+ }elsif ($_[1] =~ /^(.*)=(.*)$/) {
+ ($var,$ctn)=($1,$2);
+ } else {
+ die "[Tesh/CRITICAL] Malformed argument to setenv: expected 'name=value' but got '$_[1]'\n";
+ }
if($var =~ /bindir/){
print "[Tesh/INFO] setenv $var=$ctn\n";
print "[Tesh/INFO] setenv $var=$ctn\n";
}
}
- } else {
- die "[Tesh/CRITICAL] Malformed argument to setenv: expected 'name=value' but got '$_[1]'\n";
- }
}
# Main option parsing sub
my @got;
while(defined(my $got=<OUT>)) {
$got =~ s/\r//g;
- #$got =~ s/^( )*//g;
+ $got =~ s/^( )*//g;
chomp $got;
- push @got, "$got";
+ $got=trim($got);
+ if( $got ne ""){
+ push @got, "$got";
+ }
}
close OUT;
-
+
+ if ($sort){
+ sub mysort{
+ $a cmp $b
+ }
+ use sort qw(defaults _quicksort); # force quicksort
+ @got = sort mysort @got;
+ #also resort the other one, as perl sort is not the same as the C one used to generate teshes
+ @{$cmd{'out'}}=sort mysort @{$cmd{'out'}};
+ }
+
# Cleanup the executing child, and kill the timeouter brother on need
$cmd{'return'} = 0 unless defined($cmd{'return'});
my $wantret = "returned code ".(defined($cmd{'return'})? $cmd{'return'} : 0);
if ($cmd =~ /^#/) { #comment
} elsif ($cmd eq '> '){ #expected result line
print "[TESH/debug] push expected result\n" if $opts{'debug'};
- push @{$cmd{'out'}}, $arg;
+ $arg=trim($arg);
+ if($arg ne ""){
+ push @{$cmd{'out'}}, $arg;
+ }
} elsif ($cmd eq '< ') { # provided input
print "[TESH/debug] push provided input\n" if $opts{'debug'};
$cmd{'cmd'} = $arg;
}
elsif($line =~ /^! output sort/){ #output sort
+ $sort=1;
$cmd{'sort'} = 1;
}
elsif($line =~ /^! output ignore/){ #output ignore
setOutPath $INSTDIR\include\smpi\r
file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi.h\r
file @CMAKE_HOME_DIRECTORY@\include\smpi\mpi.h\r
- file @CMAKE_HOME_DIRECTORY@\include\smpi\mpif.h\r
file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi_cocci.h\r
file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi_main.h\r
+ file include\smpi\mpif.h\r
file include\smpi\smpif.h\r
\r
CreateDirectory $INSTDIR\examples\smpi\r
referring to it.
\li <b>power (mandatory)</b>:the peak number FLOPS the CPU can manage.
Expressed in flop/s.
-\li <b>core</b>: The number of core of this host. If set, the power
- gives the power of one core. The specified computing power will be
+\li <b>core</b>: The number of core of this host (by default, 1). If
+ you specify the amount of cores, the 'power' parameter is the power
+ of each core.
+ For example, if you specify that your host has 6 cores, it will be
available to up to 6 sequential tasks without sharing. If more
tasks are placed on this host, the resource will be shared
- accordingly. For example, if you schedule 12 tasks on the host,
- each will get half of the computing power. Please note that
- although sound, this model were never scientifically assessed.
+ accordingly. For example, if you schedule 12 tasks on that host,
+ each will get half of the specified computing power. Please note
+ that although sound, this model were never scientifically assessed.
Please keep this fact in mind when using it.
-
\li <b>availability</b>: specify if the percentage of power available.
\li <b>availability_file</b>: Allow you to use a file as input. This
file will contain availability traces for this computer. The
parameter(MPI_BXOR=11)
INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
- PARAMETER (MPI_ADDRESS_KIND=8)
- PARAMETER (MPI_OFFSET_KIND=8)
+ PARAMETER (MPI_ADDRESS_KIND=@MPI_ADDRESS_SIZE@)
+ PARAMETER (MPI_OFFSET_KIND=@MPI_ADDRESS_SIZE@)
INTEGER MPI_MODE_NOPRECEDE
PARAMETER (MPI_MODE_NOPRECEDE=8192)
/* stack size of contexts in Ko */
xbt_cfg_register(&_sg_cfg_set, "contexts/stack_size",
- "Stack size of contexts in Kib (ucontext or raw only)",
+ "Stack size of contexts in Kib",
xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_stack_size, NULL);
xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/stack_size", 128);
rawctx_entry_point_t entry_point, void* arg);
extern void raw_swapcontext(raw_stack_t* old, raw_stack_t new);
-#ifdef PROCESSOR_x86_64
+#if PROCESSOR_x86_64
__asm__ (
#if defined(APPLE)
".text\n"
static int verbose = 0;
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int hindexed_zerotype_test(void);
int hindexed_sparsetype_test(void);
#define BUF_SIZE 16384
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int main(int argc, char *argv[])
*/
static int verbose = 1;
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int lots_of_types_test(void);
static int verbose = 0;
int a[100][100][100], e[9][9][9];
-int main(int argc, char *argv[]);
/* helper functions */
static int parse_args(int argc, char **argv);
static int verbose = 0;
int a[100][100][100], e[9][9][9];
-int main(int argc, char *argv[]);
/* helper functions */
static int parse_args(int argc, char **argv);
static int verbose = 0;
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int single_struct_test(void);
static int verbose = 0;
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int single_struct_test(void);
int array_of_structs_test(void);
static int verbose = 0;
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int main(int argc, char *argv[])
#include "mpi.h"
#include "mpitest.h"
-int main(int argc, char *argv[]);
-
/* helper functions */
int parse_args(int argc, char **argv);
*/
static int verbose = 1;
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int struct_negdisp_test(void);
int vector_negstride_test(void);
//#define HAVE_FORTRAN_BINDING 0
/* Define to 1 if you have the `getrusage' function. */
+#ifndef WIN32
#define HAVE_GETRUSAGE 1
-
+#endif
/* Define if struct hostent contains h_addr_list */
#define HAVE_H_ADDR_LIST 1
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/resource.h> header file. */
+#ifndef WIN32
#define HAVE_SYS_RESOURCE_H 1
-
+#endif
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
static int verbose = 0;
-int main(int argc, char *argv[]);
int parse_args(int argc, char **argv);
int main(int argc, char *argv[])
# | }
# `----
{
- Memory leak in libcgraph (1/3)
+ Memory leak in libcgraph (1/2)
Memcheck:Leak
fun:malloc
+ ...
obj:/usr/lib/libcgraph.so*
fun:aaglex
fun:aagparse
fun:agconcat
}
{
- Memory leak in libcgraph (2/3)
+ Memory leak in libcgraph (2/2)
Memcheck:Leak
fun:malloc
- obj:/usr/lib/libcgraph.so*
- fun:agalloc
- obj:/usr/lib/libcgraph.so*
+ ...
fun:agnode
obj:/usr/lib/libcgraph.so*
fun:aagparse
fun:agconcat
}
-{
- Memory leak in libcgraph (3/3)
- Memcheck:Leak
- fun:malloc
- fun:dtopen
- fun:agdtopen
- obj:/usr/lib/libcgraph.so*
- fun:agstrdup
- fun:aaglex
- fun:aagparse
- fun:agconcat
-}
cmake_minimum_required(VERSION 2.6)
if(WIN32)
- #add_custom_target(tesh ALL
- # DEPENDS ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl
- # COMMENT "Install ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl"
- # COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl ${CMAKE_BINARY_DIR}/bin/tesh
- # )
+# add_custom_target(tesh ALL
+# DEPENDS ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl
+# COMMENT "Install ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl"
+# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl ${CMAKE_BINARY_DIR}/bin/tesh
+# )
file(COPY ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl
DESTINATION ${CMAKE_BINARY_DIR}/bin/
FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ)
+ file(COPY ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/Diff.pm
+ DESTINATION ${CMAKE_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ)
file(RENAME ${CMAKE_BINARY_DIR}/bin/tesh.pl ${CMAKE_BINARY_DIR}/bin/tesh)
else()
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")