1//===- AndroidSectLinker.cpp ----------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include <mcld/Target/AndroidSectLinker.h>
11
12#include <llvm/Support/ErrorHandling.h>
13#include <mcld/MC/MCLDDirectory.h>
14#include <mcld/CodeGen/SectLinkerOption.h>
15
16using namespace mcld;
17
18//==========================
19// AndroidSectLinker
20
21AndroidSectLinker::AndroidSectLinker(SectLinkerOption &pOption,
22                                     TargetLDBackend &pLDBackend)
23  : SectLinker(pOption, pLDBackend) {
24}
25
26AndroidSectLinker::~AndroidSectLinker()
27{
28  // SectLinker will delete m_pLDBackend and m_pLDDriver;
29}
30
31void AndroidSectLinker::addTargetOptions(llvm::Module &pM,
32                                         SectLinkerOption &pOption)
33{
34  // -----  Set up General Options  ----- //
35  MCLDInfo &info = pOption.info();
36  MCLDDirectory search_path("=/system/lib");
37  search_path.setSysroot(info.options().sysroot());
38  if (exists(search_path.path()) && is_directory(search_path.path()))
39    info.options().directories().add(search_path);
40  else {
41    // FIXME: need a warning function
42    llvm::errs() << "WARNING: can not open search directory: `-L" << search_path.name() << "'.\n";
43  }
44}
45
46