Skip to contentSkip to conversation

LTP May 2009 build fail fix for ssgetmask() syscall

PATCH In review Subrata Modak 3 participants 4 messages Jun 4, 2009 – Jun 9, 2009

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 LTP May 2009 build fail fix for ssgetmask() syscall

Quoted 41 lines · Munipradeep Beerakam

Hi,

It failed on both x86 and x86_64 architectures

Regards
Muni

Quoted 31 lines · Nobuhiro Iwamatsu

Hi,

Quoted 28 lines · Munipradeep Beerakam

Hi,

I tried to build the LTP tarball ltp-full-20090531.tgz on RHEL5.4 pre-Alpha Distribution. But build failed with the following error:

------------------------------------------------------------------

make[4]: Entering directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' gcc -g -O2 -I../../include -g -Wall -I../../../../include -Wall sgetmask01.c -L../../../../lib -lltp -o sgetmask01 sgetmask01.c: In function ���main���:
sgetmask01.c:142: error: ���__NR_ssetmask��� undeclared (first use in this function)
sgetmask01.c:142: error: (Each undeclared identifier is reported only once
sgetmask01.c:142: error: for each function it appears in.) make[4]: *** [sgetmask01] Error 1
make[4]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' make[3]: *** [all] Error 2
make[3]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/ltp-full-20090531/testcases/kernel' make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/ltp-full-20090531/testcases'
make: *** [all] Error 2

Can you please try out this patch and see whether you are still able to reproduce it in any of your architecture ?

---

testcases/kernel/syscalls/sgetmask/sgetmask01.c renamed from testcases/kernel/syscalls/sgetmask/sgetmask01.c.orig +6 -1
@@ -49,7 +49,7 @@
 
 #include <stdio.h>
 #include <signal.h>
-#include <sys/syscall.h>
+#include <syscall.h>
 #include <unistd.h>
 #include <stdio.h>
 #include <errno.h>
@@ -125,6 +125,7 @@ int main(int ac, char **av) {
 	int lc;                 /* loop counter */
         char *msg;              /* message returned from parse_opts */
 	
+#ifdef __NR_ssetmask
         /* parse standard options */
         if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){
              tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
@@ -155,5 +156,9 @@ int main(int ac, char **av) {
         }	
 	cleanup();
         tst_exit();
+#else
+	tst_resm(TCONF,"__NR_ssetmask not defined for this Distro/Arch");
+	tst_exit();
+#endif
 }
 

---
Regards--
Subrata

Quoted 11 lines
Quoted 11 lines
Quoted 11 lines

------------------------------------------------------------------

The variable '__NR_ssetmask' declaration is available in /usr/include

~# grep -r "__NR_ssetmask" /usr/include/ /usr/include/bits/syscall.h:#define SYS_ssetmask __NR_ssetmask
/usr/include/asm-i386/unistd.h:#define __NR_ssetmask 69

What could be the reason for failure?

Quoted 8 lines
Quoted 7 lines

What kind of arch do you use?
x86_64? I became the same problem too.
x86_64 does not seem to have this systemcall.

Best regards,
Nobuhiro

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get

_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

#1 lore raw
Quoted 42 lines · Subrata Modak
Quoted 41 lines · Munipradeep Beerakam

Hi,

It failed on both x86 and x86_64 architectures

Regards
Muni

Quoted 31 lines · Nobuhiro Iwamatsu

Hi,

Quoted 28 lines · Munipradeep Beerakam

Hi,

I tried to build the LTP tarball ltp-full-20090531.tgz on RHEL5.4 pre-Alpha Distribution. But build failed with the following error:

------------------------------------------------------------------

make[4]: Entering directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' gcc -g -O2 -I../../include -g -Wall -I../../../../include -Wall sgetmask01.c -L../../../../lib -lltp -o sgetmask01 sgetmask01.c: In function ‘main’:
sgetmask01.c:142: error: ‘__NR_ssetmask’ undeclared (first use in this function)
sgetmask01.c:142: error: (Each undeclared identifier is reported only once
sgetmask01.c:142: error: for each function it appears in.) make[4]: *** [sgetmask01] Error 1
make[4]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' make[3]: *** [all] Error 2
make[3]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/ltp-full-20090531/testcases/kernel' make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/ltp-full-20090531/testcases'
make: *** [all] Error 2

Quoted 2 lines

Can you please try out this patch and see whether you are still able to reproduce it in any of your architecture ?

Don't `syscall()' macro already take care ot this ? What about adding the __NR_sgetmask/__NR_ssetmask to <arch>.in files instead ?

Just to test, i added the following lines to
testcases/kernel/include/i386.in :

__NR_sgetmask 68
__NR_ssetmask 69

and the problem on x86_64 is gone, without any further modification.

njoly@lanfeust [syscalls/sgetmask]> ./sgetmask01

sgetmask01    1  CONF  :  syscall __NR_ssetmask not supported on your arch
sgetmask01    2  CONF  :  Remaining cases not appropriate for configuration
Signature · 15 lines
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
#2 lore raw
Quoted 49 lines · Nicolas Joly
Quoted 42 lines · Subrata Modak
Quoted 41 lines · Munipradeep Beerakam

Hi,

It failed on both x86 and x86_64 architectures

Regards
Muni

Quoted 31 lines · Nobuhiro Iwamatsu

Hi,

Quoted 28 lines · Munipradeep Beerakam

Hi,

I tried to build the LTP tarball ltp-full-20090531.tgz on RHEL5.4 pre-Alpha Distribution. But build failed with the following error:

------------------------------------------------------------------

make[4]: Entering directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' gcc -g -O2 -I../../include -g -Wall -I../../../../include -Wall sgetmask01.c -L../../../../lib -lltp -o sgetmask01 sgetmask01.c: In function ‘main’:
sgetmask01.c:142: error: ‘__NR_ssetmask’ undeclared (first use in this function)
sgetmask01.c:142: error: (Each undeclared identifier is reported only once
sgetmask01.c:142: error: for each function it appears in.) make[4]: *** [sgetmask01] Error 1
make[4]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' make[3]: *** [all] Error 2
make[3]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/ltp-full-20090531/testcases/kernel' make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/ltp-full-20090531/testcases'
make: *** [all] Error 2

Quoted 2 lines

Can you please try out this patch and see whether you are still able to reproduce it in any of your architecture ?

Don't `syscall()' macro already take care ot this ? What about adding the __NR_sgetmask/__NR_ssetmask to <arch>.in files instead ?

Quoted 7 lines

Just to test, i added the following lines to
testcases/kernel/include/i386.in :

__NR_sgetmask 68
__NR_ssetmask 69

and the problem on x86_64 is gone, without any further modification.

Great. Much better solution. Thanks, and, made the changes.

Regards--
Subrata

Quoted 5 lines

njoly@lanfeust [syscalls/sgetmask]> ./sgetmask01

sgetmask01    1  CONF  :  syscall __NR_ssetmask not supported on your arch
sgetmask01    2  CONF  :  Remaining cases not appropriate for configuration

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

#3 lore raw
In reply to Subrata Modak

Hi,

I applied this patch. Now, LTP is compiling successfully on both x86 and x86_64 architectures.

Thanks
Muni

Quoted 78 lines · Subrata Modak
Quoted 41 lines · Munipradeep Beerakam

Hi,

It failed on both x86 and x86_64 architectures

Regards
Muni

Quoted 31 lines · Nobuhiro Iwamatsu

Hi,

Quoted 28 lines · Munipradeep Beerakam

Hi,

I tried to build the LTP tarball ltp-full-20090531.tgz on RHEL5.4 pre-Alpha Distribution. But build failed with the following error:

------------------------------------------------------------------

make[4]: Entering directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' gcc -g -O2 -I../../include -g -Wall -I../../../../include -Wall sgetmask01.c -L../../../../lib -lltp -o sgetmask01 sgetmask01.c: In function bmainb:
sgetmask01.c:142: error: b__NR_ssetmaskb undeclared (first use in this function)
sgetmask01.c:142: error: (Each undeclared identifier is reported only once
sgetmask01.c:142: error: for each function it appears in.) make[4]: *** [sgetmask01] Error 1
make[4]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls/sgetmask' make[3]: *** [all] Error 2
make[3]: Leaving directory `/root/ltp-full-20090531/testcases/kernel/syscalls'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/ltp-full-20090531/testcases/kernel' make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/ltp-full-20090531/testcases'
make: *** [all] Error 2

Can you please try out this patch and see whether you are still able to reproduce it in any of your architecture ?

---

testcases/kernel/syscalls/sgetmask/sgetmask01.c renamed from testcases/kernel/syscalls/sgetmask/sgetmask01.c.orig +6 -2
@@ -49,7 +49,7 @@
 
 #include <stdio.h>
 #include <signal.h>
-#include <sys/syscall.h>
+#include <syscall.h>
 #include <unistd.h>
 #include <stdio.h>
 #include <errno.h>
@@ -125,6 +125,7 @@ int main(int ac, char **av) {
 	int lc;                 /* loop counter */
         char *msg;              /* message returned from parse_opts */
 
+#ifdef __NR_ssetmask
         /* parse standard options */
         if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){
              tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
@@ -155,5 +156,9 @@ int main(int ac, char **av) {
         }	
 	cleanup();
         tst_exit();
+#else
+	tst_resm(TCONF,"__NR_ssetmask not defined for this Distro/Arch");
+	tst_exit();
+#endif
 }
 
---
Quoted 22 lines

Regards--
Subrata

Quoted 19 lines
Quoted 18 lines
Quoted 11 lines

------------------------------------------------------------------

The variable '__NR_ssetmask' declaration is available in /usr/include

~# grep -r "__NR_ssetmask" /usr/include/ /usr/include/bits/syscall.h:#define SYS_ssetmask __NR_ssetmask
/usr/include/asm-i386/unistd.h:#define __NR_ssetmask 69

What could be the reason for failure?

What kind of arch do you use?
x86_64? I became the same problem too.
x86_64 does not seem to have this systemcall.

Best regards,
Nobuhiro

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list