зеркало из https://github.com/mozilla/pjs.git
bug 748797 - support MOZ_LINKER_EXTRACT=1 as a configure option to turn on linker extraction all the time. r=glandium,blassey, a=android-only
CLOSED TREE
This commit is contained in:
Родитель
1259651055
Коммит
07694c12cf
|
@ -715,6 +715,8 @@ MOZ_SYSTEM_PLY = @MOZ_SYSTEM_PLY@
|
|||
|
||||
MOZ_PACKAGE_JSSHELL = @MOZ_PACKAGE_JSSHELL@
|
||||
|
||||
MOZ_LINKER_EXTRACT = @MOZ_LINKER_EXTRACT@
|
||||
|
||||
# We only want to do the pymake sanity on Windows, other os's can cope
|
||||
ifeq ($(HOST_OS_ARCH),WINNT)
|
||||
# Ensure invariants between GNU Make and pymake
|
||||
|
|
|
@ -8490,6 +8490,7 @@ AC_SUBST(MOZ_OS2_TOOLS)
|
|||
|
||||
AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
|
||||
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
|
||||
AC_SUBST(MOZ_LINKER_EXTRACT)
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Mac bundle name prefix
|
||||
|
|
|
@ -79,5 +79,12 @@ public class App extends GeckoApp {
|
|||
#endif
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
#ifdef MOZ_LINKER_EXTRACT
|
||||
@Override
|
||||
public boolean linkerExtract() {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -2831,4 +2831,8 @@ abstract public class GeckoApp
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
public boolean linkerExtract() {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -310,21 +310,26 @@ public class GeckoAppShell
|
|||
|
||||
File cacheFile = getCacheDir(context);
|
||||
putenv("GRE_HOME=" + getGREDir(context).getPath());
|
||||
File[] files = cacheFile.listFiles();
|
||||
if (files != null) {
|
||||
Iterator<File> cacheFiles = Arrays.asList(files).iterator();
|
||||
while (cacheFiles.hasNext()) {
|
||||
File libFile = cacheFiles.next();
|
||||
if (libFile.getName().endsWith(".so"))
|
||||
libFile.delete();
|
||||
}
|
||||
}
|
||||
|
||||
// setup the libs cache
|
||||
String linkerCache = System.getenv("MOZ_LINKER_CACHE");
|
||||
if (System.getenv("MOZ_LINKER_CACHE") == null) {
|
||||
GeckoAppShell.putenv("MOZ_LINKER_CACHE=" + cacheFile.getPath());
|
||||
if (linkerCache == null) {
|
||||
linkerCache = cacheFile.getPath();
|
||||
GeckoAppShell.putenv("MOZ_LINKER_CACHE=" + linkerCache);
|
||||
}
|
||||
|
||||
if (GeckoApp.mAppContext != null &&
|
||||
GeckoApp.mAppContext.linkerExtract()) {
|
||||
GeckoAppShell.putenv("MOZ_LINKER_EXTRACT=1");
|
||||
// Ensure that the cache dir is world-writable
|
||||
File cacheDir = new File(linkerCache);
|
||||
if (cacheDir.isDirectory()) {
|
||||
cacheDir.setWritable(true, false);
|
||||
cacheDir.setExecutable(true, false);
|
||||
cacheDir.setReadable(true, false);
|
||||
}
|
||||
}
|
||||
|
||||
sLibsSetup = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -212,6 +212,10 @@ DEFINES += \
|
|||
-DUA_BUILDID=$(UA_BUILDID) \
|
||||
$(NULL)
|
||||
|
||||
ifdef MOZ_LINKER_EXTRACT
|
||||
DEFINES += -DMOZ_LINKER_EXTRACT=1
|
||||
endif
|
||||
|
||||
GARBAGE += \
|
||||
AndroidManifest.xml \
|
||||
classes.dex \
|
||||
|
|
Загрузка…
Ссылка в новой задаче