<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Evolution Systems &#187; Module</title>
	<atom:link href="http://evolution-systems.co.uk/tag/module/feed/" rel="self" type="application/rss+xml" />
	<link>http://evolution-systems.co.uk</link>
	<description>Web Development, Software Development and Linux Consultancy services</description>
	<lastBuildDate>Fri, 08 Aug 2025 09:18:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Compiling Linux Modules Dependant On Exported Symbols</title>
		<link>http://evolution-systems.co.uk/2009/05/12/compiling-linux-modules-dependant-on-exported-symbols-2/</link>
		<comments>http://evolution-systems.co.uk/2009/05/12/compiling-linux-modules-dependant-on-exported-symbols-2/#comments</comments>
		<pubDate>Tue, 12 May 2009 22:20:08 +0000</pubDate>
		<dc:creator><![CDATA[Matthew Jakeman]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Matts Blog]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Module]]></category>
		<category><![CDATA[Symbols]]></category>

		<guid isPermaLink="false">http://evolution-systems.co.uk/wordpress/?p=493</guid>
		<description><![CDATA[I have been playing around with the NP++ Linux Kernel module today and it all seems to be working as planned at present. However I was in the process of writing a sample physical mapping module that uses the API from the NP++ module and ran into a bit of a problem. Within the NP++ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I have been playing around with the NP++ Linux Kernel module today and it all seems to be working as planned at present. However I was in the process of writing a sample physical mapping module that uses the API from the NP++ module and ran into a bit of a problem.</p>
<p>Within the NP++ kernel module I have exported a few symbols (functions and variables) using the EXPORT_SYMBOL() macro. I expected to be able to use them quite simply in any other modules I created by simply including the NP++ header file. I had declared them as &#8216;extern&#8217; in the header file and used the EXPORT_SYMBOL macro in the .c files as per all the documentation I had come across.</p>
<p>When I came to compile the mapping module that was trying to use these exported symbols however I came across a problem that the function I was trying to use was being shown as undefined during the link stage. This had me a bit stumped as I had convinced myself that the symbol should be visible.</p>
<p>It turns out that understandably as I had just compiled the module the kernel symbols table didn&#8217;t actually know about the symbols I had exported so compiling the new module still couldn&#8217;t see them. It turns out that the simple solution to this problem is to copy the Module.symvers file from the directory of the NP++ module to the directory of the mapping module.</p>
<p>The moral of this rambling is that you need to copy the Module.symvars file from the directory of a module once you have compiled it to the directory of any other out-of-tree module you are writing that relies on exported symbols from the first.</p>
]]></content:encoded>
			<wfw:commentRss>http://evolution-systems.co.uk/2009/05/12/compiling-linux-modules-dependant-on-exported-symbols-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
