Update mclinker to 96e60abf286338c8e231b7c990c30c7c4651be0e.
Change-Id: I29a840d11cecc1ed133768b79222f8bae5f4db2d
diff --git a/unittests/ELFReaderTest.cpp b/unittests/ELFReaderTest.cpp
index fe7dd39..ddbc6d5 100644
--- a/unittests/ELFReaderTest.cpp
+++ b/unittests/ELFReaderTest.cpp
@@ -32,10 +32,11 @@
m_pConfig->targets().setBitClass( 64 );
Relocation::SetUp( *m_pConfig );
+ m_pScript = new LinkerScript();
m_pInfo = new X86_64GNUInfo( m_pConfig->targets().triple() );
m_pLDBackend = new X86_64GNULDBackend( *m_pConfig, m_pInfo );
m_pELFReader = new ELFReader<64, true>( *m_pLDBackend );
- m_pModule = new Module();
+ m_pModule = new Module(*m_pScript);
m_pIRBuilder = new IRBuilder( *m_pModule, *m_pConfig);
m_pELFObjReader = new ELFObjectReader(*m_pLDBackend,
*m_pIRBuilder,
@@ -48,6 +49,7 @@
delete m_pConfig;
delete m_pLDBackend;
delete m_pELFReader;
+ delete m_pScript;
delete m_pModule;
delete m_pIRBuilder;
delete m_pELFObjReader;
diff --git a/unittests/ELFReaderTest.h b/unittests/ELFReaderTest.h
index c977cfb..58ec470 100644
--- a/unittests/ELFReaderTest.h
+++ b/unittests/ELFReaderTest.h
@@ -11,6 +11,7 @@
#include <gtest.h>
#include <mcld/LinkerConfig.h>
+#include <mcld/LinkerScript.h>
#include <mcld/LD/ELFReaderIf.h>
#include <mcld/LD/ELFReader.h>
#include <mcld/LD/ELFObjectReader.h>
@@ -40,14 +41,15 @@
virtual void TearDown();
protected:
- mcld::Input *m_pInput;
- mcld::LinkerConfig *m_pConfig;
- mcld::GNUInfo *m_pInfo;
- mcld::GNULDBackend *m_pLDBackend;
- mcld::ELFReaderIF *m_pELFReader;
- mcld::Module *m_pModule;
- mcld::IRBuilder *m_pIRBuilder;
- mcld::ELFObjectReader *m_pELFObjReader;
+ mcld::Input* m_pInput;
+ mcld::LinkerConfig* m_pConfig;
+ mcld::LinkerScript* m_pScript;
+ mcld::GNUInfo* m_pInfo;
+ mcld::GNULDBackend* m_pLDBackend;
+ mcld::ELFReaderIF* m_pELFReader;
+ mcld::Module* m_pModule;
+ mcld::IRBuilder* m_pIRBuilder;
+ mcld::ELFObjectReader* m_pELFObjReader;
};
} // namespace of mcldtest
diff --git a/unittests/LEB128Test.cpp b/unittests/LEB128Test.cpp
index e8083b1..b310262 100644
--- a/unittests/LEB128Test.cpp
+++ b/unittests/LEB128Test.cpp
@@ -9,6 +9,7 @@
#include <mcld/Support/LEB128.h>
#include "LEB128Test.h"
+#include <mcld/Support/SystemUtils.h>
#include <ctime>
#include <cstdlib>
@@ -20,7 +21,7 @@
LEB128Test::LEB128Test()
{
// Initialize the seed for random number generator using during the tests.
- ::srandom(::time(NULL));
+ sys::SetRandomSeed(::time(NULL));
}
// Destructor can do clean-up work that doesn't throw exceptions here.
@@ -459,7 +460,7 @@
leb128::ByteType buffer[9];
for (int i = 0; i < 20; i++) {
- unsigned long int value = random();
+ unsigned long int value = sys::GetRandomNum();
uint64_t value2 = value * value;
int64_t value3 = value * value;
leb128::ByteType *result;
diff --git a/unittests/LinkerTest.cpp b/unittests/LinkerTest.cpp
index ab439cb..16c6448 100644
--- a/unittests/LinkerTest.cpp
+++ b/unittests/LinkerTest.cpp
@@ -51,12 +51,12 @@
Initialize();
LinkerConfig config("arm-none-linux-gnueabi");
-
- Module module("test");
+ LinkerScript script;
+ Module module("test", script);
config.setCodeGenType(LinkerConfig::DynObj);
Linker linker;
- linker.config(config);
+ linker.emulate(script, config);
IRBuilder builder(module, config);
// create inputs here
@@ -80,6 +80,7 @@
Initialize();
Linker linker;
+ LinkerScript script;
///< --mtriple="armv7-none-linux-gnueabi"
LinkerConfig config("armv7-none-linux-gnueabi");
@@ -87,17 +88,17 @@
/// -L=${TOPDIR}/test/libs/ARM/Android/android-14
Path search_dir(TOPDIR);
search_dir.append("test/libs/ARM/Android/android-14");
- config.options().directories().insert(search_dir);
+ script.directories().insert(search_dir);
/// To configure linker before setting options. Linker::config sets up
/// default target-dependent configuration to LinkerConfig.
- linker.config(config);
+ linker.emulate(script, config);
config.setCodeGenType(LinkerConfig::DynObj); ///< --shared
config.options().setSOName("libplasma.so"); ///< --soname=libplasma.so
config.options().setBsymbolic(); ///< -Bsymbolic
- Module module("libplasma.so");
+ Module module("libplasma.so", script);
IRBuilder builder(module, config);
/// ${TOPDIR}/test/libs/ARM/Android/android-14/crtbegin_so.o
@@ -141,20 +142,21 @@
///< --mtriple="armv7-none-linux-gnueabi"
LinkerConfig config1("armv7-none-linux-gnueabi");
+ LinkerScript script1;
/// -L=${TOPDIR}/test/libs/ARM/Android/android-14
Path search_dir(TOPDIR);
search_dir.append("test/libs/ARM/Android/android-14");
- config1.options().directories().insert(search_dir);
+ script1.directories().insert(search_dir);
/// To configure linker before setting options. Linker::config sets up
/// default target-dependent configuration to LinkerConfig.
- linker.config(config1);
+ linker.emulate(script1, config1);
config1.setCodeGenType(LinkerConfig::DynObj); ///< --shared
config1.options().setSOName("libplasma.once.so"); ///< --soname=libplasma.twice.so
config1.options().setBsymbolic(false); ///< -Bsymbolic
- Module module1("libplasma.once.so");
+ Module module1("libplasma.once.so", script1);
IRBuilder builder1(module1, config1);
/// ${TOPDIR}/test/libs/ARM/Android/android-14/crtbegin_so.o
@@ -191,18 +193,19 @@
///< --mtriple="armv7-none-linux-gnueabi"
LinkerConfig config2("armv7-none-linux-gnueabi");
+ LinkerScript script2;
/// -L=${TOPDIR}/test/libs/ARM/Android/android-14
- config2.options().directories().insert(search_dir);
+ script2.directories().insert(search_dir);
/// To configure linker before setting options. Linker::config sets up
/// default target-dependent configuration to LinkerConfig.
- linker.config(config2);
+ linker.emulate(script2, config2);
config2.setCodeGenType(LinkerConfig::DynObj); ///< --shared
config2.options().setSOName("libplasma.twice.so"); ///< --soname=libplasma.twice.exe
config2.options().setBsymbolic(); ///< -Bsymbolic
- Module module2("libplasma.so");
+ Module module2("libplasma.so", script2);
IRBuilder builder2(module2, config2);
/// ${TOPDIR}/test/libs/ARM/Android/android-14/crtbegin_so.o
@@ -236,20 +239,21 @@
///< --mtriple="armv7-none-linux-gnueabi"
LinkerConfig config1("armv7-none-linux-gnueabi");
+ LinkerScript script1;
/// -L=${TOPDIR}/test/libs/ARM/Android/android-14
Path search_dir(TOPDIR);
search_dir.append("test/libs/ARM/Android/android-14");
- config1.options().directories().insert(search_dir);
+ script1.directories().insert(search_dir);
/// To configure linker before setting options. Linker::config sets up
/// default target-dependent configuration to LinkerConfig.
- linker.config(config1);
+ linker.emulate(script1, config1);
config1.setCodeGenType(LinkerConfig::DynObj); ///< --shared
config1.options().setSOName("libplasma.once.so"); ///< --soname=libplasma.twice.so
config1.options().setBsymbolic(false); ///< -Bsymbolic
- Module module1("libplasma.once.so");
+ Module module1("libplasma.once.so", script1);
IRBuilder *builder1 = new IRBuilder(module1, config1);
/// ${TOPDIR}/test/libs/ARM/Android/android-14/crtbegin_so.o
@@ -291,18 +295,19 @@
///< --mtriple="armv7-none-linux-gnueabi"
LinkerConfig config2("armv7-none-linux-gnueabi");
+ LinkerScript script2;
/// -L=${TOPDIR}/test/libs/ARM/Android/android-14
- config2.options().directories().insert(search_dir);
+ script2.directories().insert(search_dir);
/// To configure linker before setting options. Linker::config sets up
/// default target-dependent configuration to LinkerConfig.
- linker.config(config2);
+ linker.emulate(script2, config2);
config2.setCodeGenType(LinkerConfig::DynObj); ///< --shared
config2.options().setSOName("libplasma.twice.so"); ///< --soname=libplasma.twice.exe
config2.options().setBsymbolic(); ///< -Bsymbolic
- Module module2("libplasma.so");
+ Module module2("libplasma.so", script2);
IRBuilder* builder2 = new IRBuilder(module2, config2);
/// ${TOPDIR}/test/libs/ARM/Android/android-14/crtbegin_so.o
@@ -337,15 +342,16 @@
///< --mtriple="armv7-none-linux-gnueabi"
LinkerConfig config("armv7-none-linux-gnueabi");
+ LinkerScript script;
/// To configure linker before setting options. Linker::config sets up
/// default target-dependent configuration to LinkerConfig.
- linker.config(config);
+ linker.emulate(script, config);
config.setCodeGenType(LinkerConfig::DynObj); ///< --shared
config.options().setSOName("libgotplt.so"); ///< --soname=libgotplt.so
- Module module;
+ Module module(script);
IRBuilder builder(module, config);
Path gotplt_o(TOPDIR);
diff --git a/unittests/PathTest.cpp b/unittests/PathTest.cpp
index 2a44368..1a73de2 100644
--- a/unittests/PathTest.cpp
+++ b/unittests/PathTest.cpp
@@ -43,7 +43,8 @@
// Testcases
//
TEST_F( PathTest, should_exist ) {
- const std::string root = "/etc/hosts";
+ std::string root(TOPDIR);
+ root += "/test/lit.cfg";
m_pTestee->assign(root);
EXPECT_TRUE(exists(*m_pTestee));
@@ -63,7 +64,6 @@
}
TEST_F( PathTest, should_is_directory ) {
-// const std::string root = "/proj/mtk03931/temp/pndk-luba/../";
const std::string root = "../././..";
m_pTestee->assign(root);
EXPECT_TRUE(exists(*m_pTestee));
@@ -122,15 +122,15 @@
delete m_pTestee;
m_pTestee = new Path("aa/");
m_pTestee->append("/aaa");
- EXPECT_TRUE(m_pTestee->string()=="aa/aaa");
+ EXPECT_TRUE(m_pTestee->native()=="aa/aaa");
delete m_pTestee;
m_pTestee = new Path("aa");
m_pTestee->append("/aaa");
- EXPECT_TRUE(m_pTestee->string()=="aa/aaa");
+ EXPECT_TRUE(m_pTestee->native()=="aa/aaa");
delete m_pTestee;
m_pTestee = new Path("aa");
m_pTestee->append("aaa");
- EXPECT_TRUE(m_pTestee->string()=="aa/aaa");
+ EXPECT_TRUE(m_pTestee->native()=="aa/aaa");
}
TEST_F( PathTest, should_become_generic_string ) {
diff --git a/unittests/SymbolCategoryTest.cpp b/unittests/SymbolCategoryTest.cpp
index fae146b..f1de1d7 100644
--- a/unittests/SymbolCategoryTest.cpp
+++ b/unittests/SymbolCategoryTest.cpp
@@ -129,7 +129,7 @@
++sym;
ASSERT_STREQ("e", (*sym)->name());
- m_pTestee->changeLocalToDynamic(*bb);
+ m_pTestee->changeToDynamic(*bb);
sym = m_pTestee->begin();
ASSERT_STREQ("c", (*sym)->name());