Skip to content

Commit

Permalink
Merge pull request eclipse-omr#4733 from fjeremic/jitbuilder-call
Browse files Browse the repository at this point in the history
Fix and enable a large subset of tests on the z/OS OMR CI
  • Loading branch information
mstoodle authored Jan 24, 2020
2 parents 535f118 + 830e76d commit 9d16f0d
Show file tree
Hide file tree
Showing 29 changed files with 426 additions and 262 deletions.
4 changes: 2 additions & 2 deletions buildenv/jenkins/jobs/builds/Build-zos_390-64
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def setBuildStatus(String message, String state, String sha) {
pipeline {
agent{label 'zOS && 390'}
environment {
LIBPATH=".:$LIBPATH"
LIBPATH="/openzdk/jenkins/workspace/Build-zos_390-64/build:$LIBPATH"
}
stages {
stage('Get Sources') {
Expand Down Expand Up @@ -42,7 +42,7 @@ pipeline {
timestamps {
dir('build') {
echo "Sanity Test..."
sh'''./omralgotest -avltest:fvtest/algotest/avltest.lst && ./omrvmtest && ./omrutiltest && ./omrsigtest && ./omrrastest && ./omrsubscribertest && ./omrtraceoptiontest'''
sh'''ctest -V'''
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions buildenv/jenkins/jobs/pull-requests/PullRequest-zos_390-64
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pipeline {
agent{label 'zOS && 390'}
environment {
LIBPATH=".:$LIBPATH"
LIBPATH="/openzdk/jenkins/workspace/PullRequest-zos_390-64/build:$LIBPATH"
}
stages {
stage('Get Sources') {
Expand All @@ -28,7 +28,7 @@ pipeline {
timestamps {
dir('build') {
echo "Sanity Test..."
sh'''./omralgotest -avltest:fvtest/algotest/avltest.lst && ./omrvmtest && ./omrutiltest && ./omrsigtest && ./omrrastest && ./omrsubscribertest && ./omrtraceoptiontest'''
sh'''ctest -V'''
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion compiler/compile/OMRCompilation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
#include "infra/Stack.hpp"
#include "infra/CfgEdge.hpp"
#include "infra/Timer.hpp"
#include "infra/ThreadLocal.h"
#include "infra/ThreadLocal.hpp"
#include "optimizer/DebuggingCounters.hpp"
#include "optimizer/Optimizations.hpp"
#include "optimizer/Optimizer.hpp"
Expand Down
4 changes: 2 additions & 2 deletions compiler/compile/OMRCompilation.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2000, 2019 IBM Corp. and others
* Copyright (c) 2000, 2020 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -63,7 +63,7 @@ namespace OMR { typedef OMR::Compilation CompilationConnector; }
#include "infra/Link.hpp"
#include "infra/List.hpp"
#include "infra/Stack.hpp"
#include "infra/ThreadLocal.h"
#include "infra/ThreadLocal.hpp"
#include "optimizer/Optimizations.hpp"
#include "ras/Debug.hpp"
#include "ras/DebugCounter.hpp"
Expand Down
4 changes: 2 additions & 2 deletions compiler/compile/TLSCompilationManager.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2000, 2019 IBM Corp. and others
* Copyright (c) 2000, 2020 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand All @@ -20,8 +20,8 @@
*******************************************************************************/

#include "compile/TLSCompilationManager.hpp"
#include "infra/ThreadLocal.h"
#include "compile/Compilation.hpp"
#include "infra/ThreadLocal.hpp"

TR::TLSCompilationManager::TLSCompilationManager(TR::Compilation &comp)
{
Expand Down
4 changes: 2 additions & 2 deletions compiler/control/CompilationController.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2000, 2019 IBM Corp. and others
* Copyright (c) 2000, 2020 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -33,7 +33,7 @@
#include "control/Recompilation.hpp"
#include "env/TRMemory.hpp"
#include "infra/Monitor.hpp"
#include "infra/ThreadLocal.h"
#include "infra/ThreadLocal.hpp"

namespace TR { class CompilationInfo; }

Expand Down
4 changes: 2 additions & 2 deletions compiler/env/FEBase_t.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2000, 2019 IBM Corp. and others
* Copyright (c) 2000, 2020 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -71,7 +71,7 @@ FEBase<Derived>::allocateRelocationData(TR::Compilation* comp, uint32_t size)
// ought to be using the port library to allocate such memory. This was the quickest "workaround" I could think
// of to just get us off the ground.
return reinterpret_cast<uint8_t *>(
malloc(size));
__malloc31(size));
#else
return reinterpret_cast<uint8_t *>(
mmap(0,
Expand Down
2 changes: 1 addition & 1 deletion compiler/ilgen/OMRMethodBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,7 @@ OMR::MethodBuilder::getParameterTypes()
if (_cachedParameterTypes)
return _cachedParameterTypes;

TR_ASSERT_FATAL(_numParameters < 10, "too many parameters for parameter types array");
TR_ASSERT_FATAL(_numParameters < 18, "Too many parameters (%d) for parameter types array", _numParameters);
TR::IlType **paramTypesArray = _cachedParameterTypesArray;
for (int32_t p=0;p < _numParameters;p++)
{
Expand Down
2 changes: 1 addition & 1 deletion compiler/ilgen/OMRMethodBuilder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ class MethodBuilder : public TR::IlBuilder
TR::IlType ** _cachedParameterTypes;
const char * _definingFile;
char _definingLine[MAX_LINE_NUM_LEN];
TR::IlType * _cachedParameterTypesArray[10];
TR::IlType * _cachedParameterTypesArray[18];

bool _newSymbolsAreTemps;
int32_t _nextValueID;
Expand Down
78 changes: 0 additions & 78 deletions compiler/infra/ThreadLocal.h

This file was deleted.

134 changes: 134 additions & 0 deletions compiler/infra/ThreadLocal.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/*******************************************************************************
* Copyright (c) 2000, 2020 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
* distribution and is available at http://eclipse.org/legal/epl-2.0
* or the Apache License, Version 2.0 which accompanies this distribution
* and is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License, v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
*******************************************************************************/

#ifndef THREADLOCAL_INCL
#define THREADLOCAL_INCL

#include <errno.h>
#include "infra/Assert.hpp"

#if defined(OMRZTPF) && !defined(SUPPORTS_THREAD_LOCAL)
/*
* For this include file, ThreadLocal.hpp, and the z/TPF OS platform,
* say that tls is supported. The z/TPF platform should use
* pthread _key_t variables and pthread functions for
* the tls* functions that are defined here.
*/
#define SUPPORTS_THREAD_LOCAL
#endif

#if defined(SUPPORTS_THREAD_LOCAL)
#if defined(OMR_OS_WINDOWS)
#include "windows.h"

#define tlsDeclare(type, variable) \
extern DWORD variable

#define tlsDefine(type, variable) \
DWORD variable = TLS_OUT_OF_INDEXES

#define tlsAlloc(variable) \
{ \
(variable) = TlsAlloc(); \
TR_ASSERT_FATAL((variable) != TLS_OUT_OF_INDEXES, "TlsAlloc failed with GetLastError = %d", GetLastError()); \
}

#define tlsFree(variable) \
{ \
DWORD rc = TlsFree(variable); \
TR_ASSERT_FATAL(rc != 0, "TlsFree failed with GetLastError = %d", GetLastError()); \
}

#define tlsSet(variable, value) \
{ \
BOOL rc = TlsSetValue((variable), value); \
TR_ASSERT_FATAL(rc != 0, "TlsSetValue failed with GetLastError = %d", GetLastError()); \
}

#define tlsGet(variable, type) \
((type)TlsGetValue(variable))
#elif (defined(LINUX) && !defined(OMRZTPF)) || defined(OSX) || defined(AIXPPC)
#define tlsDeclare(type, variable) \
extern __thread type variable

#define tlsDefine(type, variable) \
__thread type variable = NULL

#define tlsAlloc(variable)
#define tlsFree(variable)

#define tlsSet(variable, value) \
variable = value

#define tlsGet(variable, type) \
(variable)
#elif defined(OMRZTPF) || defined(J9ZOS390)
#include <pthread.h>

#define tlsDeclare(type, variable) \
extern pthread_key_t variable

#define tlsDefine(type, variable) \
pthread_key_t variable

#define tlsAlloc(variable) \
{ \
int rc = pthread_key_create(&variable, NULL); \
TR_ASSERT_FATAL(rc == 0, "pthread_key_create failed with rc = %d, errorno = %d, message = %s", rc, errno, strerror(errno)); \
}

#define tlsFree(variable) \
{ \
int rc = pthread_key_delete(variable); \
TR_ASSERT_FATAL(rc == 0, "pthread_key_delete failed with rc = %d, errorno = %d, message = %s", rc, errno, strerror(errno)); \
}

#define tlsSet(variable, value) \
{ \
int rc = pthread_setspecific(variable, value); \
TR_ASSERT_FATAL(rc == 0, "pthread_setspecific failed with rc = %d, errorno = %d, message = %s", rc, errno, strerror(errno)); \
}

#if defined(J9ZOS390)
#define tlsGet(variable, type) \
((type) pthread_getspecific_d8_np(variable))
#else
#define tlsGet(variable, type) \
((type) pthread_getspecific(variable))
#endif
#endif
#else /* !defined(SUPPORTS_THREAD_LOCAL) */
#define tlsDeclare(type, variable) \
extern type variable

#define tlsDefine(type, variable) \
type variable = NULL

#define tlsAlloc(variable)
#define tlsFree(variable)

#define tlsSet(variable, value) \
variable = value

#define tlsGet(variable, type) \
(variable)
#endif
#endif /* THREADLOCAL_INCL */
Loading

0 comments on commit 9d16f0d

Please sign in to comment.