[uClinux-dev] uClinux-dist-20070130 and Intel Access Libs 2.1.1
Steve Witt
sawitt at electra.rsc.raytheon.com
Fri Mar 9 16:52:37 EST 2007
On Fri, 9 Mar 2007, Greg Ungerer wrote:
>> - The 'uts_name' stuff has changed in 2.6.19, which also necessitates a
>> minor mod to the Access Library code. The thing I don't know how to handle
>> correctly is that the new variable 'init_uts_ns' (in
>> linux-2.6.x/init/version.c) is exported as EXPORT_SYMBOL_GPL, which as I've
>> learned, means that a non-GPL module can't link to the symbol. So the
>> ixp400.ko module has an 'unknown symbol' error when it is loaded. This
>> could be easily fixed, but not correctly or (dare I say) legally. So what's
>> the best way to solve this problem?
>
> I don't recall hitting this. What did you have to change in the
> AccessLibrary code for this?
>
I've attached a diff of what I did for this. It still has the original
code, I just conditionally compiled in my slight change to get to it
build.
-------------- next part --------------
diff -upr uClinux-dist-orig/modules/ixp425/ixp400-2.1/ixp_osal/os/linux/src/platforms/ixp400/IxOsalOsIxp400.c uClinux-dist/modules/ixp425/ixp400-2.1/ixp_osal/os/linux/src/platforms/ixp400/IxOsalOsIxp400.c
--- uClinux-dist-orig/modules/ixp425/ixp400-2.1/ixp_osal/os/linux/src/platforms/ixp400/IxOsalOsIxp400.c 2005-09-24 20:59:09.000000000 -0700
+++ uClinux-dist/modules/ixp425/ixp400-2.1/ixp_osal/os/linux/src/platforms/ixp400/IxOsalOsIxp400.c 2007-02-28 13:08:41.000000000 -0800
@@ -53,7 +53,11 @@ static volatile UINT32 *ixOsalOstsRegAdd
PRIVATE BOOL IxOsalOemInitialized = FALSE;
+#ifdef NO_COMPILE_SAW
extern struct new_utsname system_utsname;
+#else
+extern struct uts_namespace init_uts_ns;
+#endif
PUBLIC UINT32
ixOsalOsIxp400TimestampGet (void)
@@ -119,15 +123,24 @@ ixOsalOemInit (void)
PUBLIC IX_STATUS
ixOsalOsIxp400NameGet(INT8* osName, INT32 maxSize)
{
+#ifdef NO_COMPILE_SAW
strncpy(osName, system_utsname.sysname, maxSize);
+#else
+ strncpy(osName, init_uts_ns.name.sysname, maxSize);
+#endif
return IX_SUCCESS;
+
}
PUBLIC IX_STATUS
ixOsalOsIxp400VersionGet(INT8* osVersion, INT32 maxSize)
{
+#ifdef NO_COMPILE_SAW
strncpy(osVersion, system_utsname.release, maxSize);
+#else
+ strncpy(osVersion, init_uts_ns.name.release, maxSize);
+#endif
return IX_SUCCESS;
}
More information about the uClinux-dev
mailing list