-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Commit the module named TestDlopen, on 20161214.
- Loading branch information
Showing
6 changed files
with
203 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | ||
<storageModule moduleId="org.eclipse.cdt.core.settings"> | ||
<cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1706190211"> | ||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1706190211" moduleId="org.eclipse.cdt.core.settings" name="Debug"> | ||
<externalSettings/> | ||
<extensions> | ||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> | ||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
</extensions> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1706190211" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug"> | ||
<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1706190211." name="/" resourcePath=""> | ||
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1346470057" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug"> | ||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.24743491" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/> | ||
<builder buildPath="${workspace_loc:/TestDlopen}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.1214354477" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/> | ||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.950505343" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> | ||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.802670328" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"> | ||
<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1794864100" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | ||
<option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1650322577" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1003674327" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"> | ||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1031277951" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/> | ||
<option id="gnu.c.compiler.exe.debug.option.debugging.level.2130887864" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> | ||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.382393314" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.816040955" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"> | ||
<option id="gnu.c.link.option.libs.124914528" superClass="gnu.c.link.option.libs" valueType="libs"> | ||
<listOptionValue builtIn="false" value="dl"/> | ||
</option> | ||
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.970248113" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> | ||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | ||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | ||
</inputType> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.60350743" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"/> | ||
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.905995450" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"> | ||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1645925001" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | ||
</tool> | ||
</toolChain> | ||
</folderInfo> | ||
</configuration> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | ||
</cconfiguration> | ||
<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.657297139"> | ||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.657297139" moduleId="org.eclipse.cdt.core.settings" name="Release"> | ||
<externalSettings/> | ||
<extensions> | ||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> | ||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
</extensions> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.657297139" name="Release" parent="cdt.managedbuild.config.gnu.exe.release"> | ||
<folderInfo id="cdt.managedbuild.config.gnu.exe.release.657297139." name="/" resourcePath=""> | ||
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1483964047" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release"> | ||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.22577733" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/> | ||
<builder buildPath="${workspace_loc:/TestDlopen}/Release" id="cdt.managedbuild.target.gnu.builder.exe.release.1273493570" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/> | ||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.108653572" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> | ||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.512827425" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release"> | ||
<option id="gnu.cpp.compiler.exe.release.option.optimization.level.52135397" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/> | ||
<option id="gnu.cpp.compiler.exe.release.option.debugging.level.1911767169" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.984811546" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release"> | ||
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.2067535813" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/> | ||
<option id="gnu.c.compiler.exe.release.option.debugging.level.158034090" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/> | ||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.257100770" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1290408885" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"> | ||
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.62772447" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> | ||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | ||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | ||
</inputType> | ||
</tool> | ||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.362860141" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/> | ||
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.215209222" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release"> | ||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.188728628" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | ||
</tool> | ||
</toolChain> | ||
</folderInfo> | ||
</configuration> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | ||
</cconfiguration> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<project id="TestDlopen.cdt.managedbuild.target.gnu.exe.1581834518" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/> | ||
</storageModule> | ||
<storageModule moduleId="scannerConfiguration"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.657297139;cdt.managedbuild.config.gnu.exe.release.657297139.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.984811546;cdt.managedbuild.tool.gnu.c.compiler.input.257100770"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
</scannerConfigBuildInfo> | ||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1706190211;cdt.managedbuild.config.gnu.exe.debug.1706190211.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1003674327;cdt.managedbuild.tool.gnu.c.compiler.input.382393314"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
</scannerConfigBuildInfo> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> | ||
<storageModule moduleId="refreshScope"/> | ||
</cproject> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>TestDlopen</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> | ||
<triggers>clean,full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> | ||
<triggers>full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>org.eclipse.cdt.core.cnature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> | ||
</natures> | ||
</projectDescription> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
libcalc.so: lib_calc.o | ||
gcc -o libcalc.so lib_calc.c lib_calc.h -fPIC -shared | ||
|
||
TestDlopen: TestDlopen.c | ||
gcc -o TestDlopen TestDlopen.c -ldl | ||
|
||
clean: | ||
rm -rf *.so *.o *.gch TestDlopen |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
/* | ||
* TestDlopen.c | ||
* | ||
* Created on: Dec 8, 2016 | ||
* Author: root | ||
*/ | ||
|
||
#include<dlfcn.h> | ||
#include<string.h> | ||
#include<signal.h> | ||
#include<unistd.h> | ||
|
||
void (*fp_swap)(int*, int *); | ||
|
||
int main(int argc, char **argv) | ||
{ | ||
void *dl_hdl = NULL; | ||
int x = 8, y = 10; | ||
dl_hdl = dlopen("./libcalc.so", RTLD_LAZY); | ||
fp_swap = dlsym(dl_hdl, "swap"); | ||
|
||
printf("before swap: x = %d, y = %d\n", x, y); | ||
fp_swap(&x, &y); | ||
printf("after swap: x = %d, y = %d\n", x, y); | ||
|
||
dlclose(dl_hdl); | ||
return 0; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
/* | ||
* lib_calc.c | ||
* | ||
* Created on: Dec 8, 2016 | ||
* Author: root | ||
*/ | ||
#include <stdio.h> | ||
#include "lib_calc.h" | ||
|
||
void swap(int *x, int *y) | ||
{ | ||
printf("enter swap of dynamic library......\n"); | ||
int temp = *x; | ||
*x = *y; | ||
*y = temp; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
/* | ||
* lib_calc.h | ||
* | ||
* Created on: Dec 8, 2016 | ||
* Author: root | ||
*/ | ||
|
||
#ifndef LIB_CALC_H_ | ||
#define LIB_CALC_H_ | ||
|
||
void swap(int *, int *); | ||
|
||
#endif /* LIB_CALC_H_ */ |