aboutsummaryrefslogtreecommitdiff
path: root/backends/plugins/elf
AgeCommit message (Collapse)Author
2017-07-10Revert "COMMON: Change way the Singleton instances are instantiated"Eugene Sandulenko
This reverts commit eefa72afa1978a9dea10f5b1833fcc8f58a3468e. With this patch ConfigManager is broken.
2017-07-10COMMON: Change way the Singleton instances are instantiatedThierry Crozat
This fixes tons of warnings with clang from a recent xcode version on macOS (and possibly other systems) complaining that an instantiation of _singleton is required but no definition is available.
2014-04-28Merge pull request #426 from sunmax/masterEugene Sandulenko
PS2: Pull request to master for latest PS2 code
2014-02-18BACKENDS: Make GPL headers consistent in themselves.Johannes Schickel
2014-01-18PS2: removed plugins cksum deps on build timeMax Lingua
2014-01-18PS2: removed plugins cksum deps on build timeMax Lingua
2012-02-15JANITORIAL: Fix missing whitespace in pointer castTarek Soliman
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g' This seems to have caught some params as well which is not undesirable IMO. It also caught some strings containing this which is undesirable so I excluded them manually. (engines/sci/engine/kernel_tables.h)
2011-08-07JANITORIAL: Remove trailing empty lines.Christoph Mallon
2011-06-30ALL: Require DECLARE_SINGLETON to be used in the Common namepsaceOri Avtalion
Silences the clang warning: static data member specialization of '_singleton' must originally be declared in namespace 'Common'; accepted as a C++0x extension [-Wc++0x-extensions] Wrapping "namespace Common {}" around the macro assignment causes clang to complain about a spurious semicolon, and removing the semicolon at the end of the macro causes some editors to misbehave. Changing the requirement of using the macro in one namespace (the global) to another (Common) seems a small price to pay to silence a warning.
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-28BACKENDS: Fix compilation for various backendsOri Avtalion
Affects: * PS2 * GPH * ELF * MOTO * IPHONE * N64 * DINGUX * WINCE * PSP
2011-02-09AUDIO: Rename sound/ dir to audio/Max Horn
svn-id: r55850
2010-12-30PLUGINS: rename ONE_PLUGIN_AT_A_TIME define to UNCACHED_PLUGINSYotam Barnoy
ONE_PLUGIN_AT_A_TIME is too long. svn-id: r55064
2010-12-29PLUGINS: single plugin model now saves plugin filename to config fileYotam Barnoy
After searching for the right plugin once, the filename will be saved to the config file under the domain 'plugin_files'. The key is the gameid and the value is the plugin file. The backup mechanism is searching plugin by plugin. svn-id: r55061
2010-12-26PLUGINS: fixed resource leak that caused PSP to crashYotam Barnoy
The leaky file handles didn't show up when debugging using the shell since that uses the Windows file handles, of which there are many more. svn-id: r55048
2010-12-22PLUGINS: replace all size_t's with uint32's and add #include <malloc.h> to ↵Yotam Barnoy
memory manager uint32 is all we need since we only handle ELF32 anyway. svn-id: r55012
2010-12-22PLUGINS: Only enable ELFMemoryManager when dynamic plugins and the ELF ↵Johannes Schickel
loader is enabled. This should fix compilation on desktop systems, where for example memalign is not present. svn-id: r55011
2010-12-22PLUGINS: Fix ELFMemoryManager::pluginAllocate signature.Johannes Schickel
svn-id: r55010
2010-12-22PLUGINS: add ELF memory manager to solve fragmentationYotam Barnoy
Following lordhoto's suggestion, I implemented a simple allocator that grabs the size of the biggest available plugin in memory. This is an elegant solution to the fragmentation problem, with the caveat that memory is wasted. As such, it's not suited for the DS, so I added a #define to disable it there. svn-id: r55009
2010-11-05PLUGINS: Simplify ELF plugin providers & DLObject subclassesMax Horn
* Remove DLObject virtual methods allocSegment and freeSegment. As long as all DLObject implementations use memalign + free to allocate/release segments, there is no point in wrapping those. This enables further simplifications. * Add TemplatedELFPlugin template class. Use this instead of explicit ELFPlugin subclasses. * Rename DLObject::discard_symtab to discardSymtab svn-id: r54082
2010-11-05PLUGINS: Add EM_SH to elf32.h (e_machine type used by DC backend)Max Horn
svn-id: r54081
2010-11-04PSP: cleaning up some stuff from plugin mergeYotam Barnoy
svn-id: r54060
2010-11-04COMMON: Undo changes to common/ptr.h, remove Common::ScopedPtrCMax Horn
The deletePointer() method approach cannot work, as it is called by the destructor of the base class. A possible correct solution would be to enhance ScopedPtr with a "deleter" object like SharedPtr. But this seems overkill as long as we need it in only one place. svn-id: r54057
2010-11-03Merge from gsoc2010-pluginsYotam Barnoy
This merge was extremely difficult to carry out. It wasn't entirely SVN's fault -- there were several merges to the branch that were done by hand. Please check for any issues and regressions. Also note that the DS makefile was not copied over since the "one at a time" plugin mode currently has too much fragmentation ie. it doesn't work. svn-id: r54051
2010-11-03Dummy file creation through SVN to allow merging gsoc plugins via mercurialYotam Barnoy
svn-id: r54046
2010-10-31Updated with latest from trunkYotam Barnoy
svn-id: r53976
2010-09-16PLUGINS: fixed issue with R_MIPS_32 relocationsYotam Barnoy
Caused crash in some games. The problem was referring to the right segment. R_MIPS_32 relocations can be found in the Shorts segment, but still need to refer to the main segment if the symbol is found there. svn-id: r52750
2010-09-16PLUGINS: Fix function arguments in MIPS loaderYotam Barnoy
Derived virtual function wasn't overwriting base function. svn-id: r52749
2010-09-15PLUGINS: Additional plugin check for the ELF loader.Andre Heider
The ELF loader does not have access to the symbols of the main executable, it just relocates symbols to it via fixed offsets. We need to make sure that loaded plugins are from the same link process to prevent crashes. An embedded build date is used for that. svn-id: r52730
2010-09-15PLUGINS: Cleanup.Andre Heider
- Unify ELF loader handling in configure - Rename ELF_LOADER_TARGET to USE_ELF_LOADER svn-id: r52728
2010-09-06PLUGINS: Only resolve __dso_handle if loading was successful.Andre Heider
svn-id: r52612
2010-09-06PLUGINS: Use the C++ ABI to call dtors when unloading a plugin.Andre Heider
Avoid linking all plugins against libstdc++ to free up some memory (about ~40kb on Wii per plugin). Enable it on GameCube, Wii, DS and PSP (PS2 doesn't have __cxa_atexit support in its libc). svn-id: r52607
2010-09-06PLUGINS: used variation of ScopedPtr to clean up load() functionYotam Barnoy
svn-id: r52592
2010-09-06PLUGINS: fixed MIPS plugin loaderYotam Barnoy
Adjusted to new VMA handling and fixed a few errors which caused crashes. Also removed unneeded expansion of alignment value. svn-id: r52589
2010-09-06PLUGINS: added missing call in destructor which caused crashingYotam Barnoy
svn-id: r52588
2010-09-05PLUGINS: Added _segmentVMA to the MIPS loader.Andre Heider
Also added 2 TODOs for all loaders not respection that offset. svn-id: r52577
2010-09-05PLUGINS: Remove spurious extra allocation.Andre Heider
Elf32_Phdr.p_align is to align the memory location of the loaded segment, not to extend its size. The size of the scratch area (like .bss and .sbss) is p_memsz-p_filesz, which has to be set to zero by the loader. svn-id: r52576
2010-09-05PLUGINS: Plug some memleaks.Andre Heider
svn-id: r52575
2010-09-05PLUGINS: Move doxygen to the base class header.Andre Heider
No point in documenting it on every derived class. svn-id: r52574
2010-09-05PLUGINS: Add missing variable initialization.Andre Heider
svn-id: r52573
2010-09-05PLUGINS: Formatting.Andre Heider
Misformatted casts in an earier commit, oops. svn-id: r52572
2010-09-05PLUGINS: Set svn:keywords property on all new files.Andre Heider
svn-id: r52566
2010-09-05PLUGINS: Make the file stream a member of DLObject.Andre Heider
No point in passing it to functions all over the place. Release the stream when it's not required anymore. svn-id: r52558
2010-09-05PLUGINS: Type cleanup.Andre Heider
Use our types, get rid of some casts. svn-id: r52557
2010-09-05PLUGINS: Move platform specific code out of the generic ELF loader.Andre Heider
Instead overwrite pure virtual functions in a backend specific class. svn-id: r52556
2010-09-05PLUGINS: Move all ELF loader related files to its own directory.Andre Heider
svn-id: r52555