head 1.2; access; symbols netbsd-11-0-RC4:1.2 netbsd-11-0-RC3:1.2 netbsd-11-0-RC2:1.2 netbsd-11-0-RC1:1.2 perseant-exfatfs-base-20250801:1.2 netbsd-11:1.2.0.60 netbsd-11-base:1.2 netbsd-10-1-RELEASE:1.2 perseant-exfatfs-base-20240630:1.2 perseant-exfatfs:1.2.0.58 perseant-exfatfs-base:1.2 netbsd-8-3-RELEASE:1.2 netbsd-9-4-RELEASE:1.2 netbsd-10-0-RELEASE:1.2 netbsd-10-0-RC6:1.2 netbsd-10-0-RC5:1.2 netbsd-10-0-RC4:1.2 netbsd-10-0-RC3:1.2 netbsd-10-0-RC2:1.2 netbsd-10-0-RC1:1.2 netbsd-10:1.2.0.56 netbsd-10-base:1.2 netbsd-9-3-RELEASE:1.2 cjep_sun2x-base1:1.2 cjep_sun2x:1.2.0.54 cjep_sun2x-base:1.2 cjep_staticlib_x-base1:1.2 netbsd-9-2-RELEASE:1.2 cjep_staticlib_x:1.2.0.52 cjep_staticlib_x-base:1.2 netbsd-9-1-RELEASE:1.2 phil-wifi-20200421:1.2 phil-wifi-20200411:1.2 is-mlppp:1.2.0.50 is-mlppp-base:1.2 phil-wifi-20200406:1.2 netbsd-8-2-RELEASE:1.2 netbsd-9-0-RELEASE:1.2 netbsd-9-0-RC2:1.2 netbsd-9-0-RC1:1.2 phil-wifi-20191119:1.2 netbsd-9:1.2.0.48 netbsd-9-base:1.2 phil-wifi-20190609:1.2 netbsd-8-1-RELEASE:1.2 netbsd-8-1-RC1:1.2 pgoyette-compat-merge-20190127:1.2 pgoyette-compat-20190127:1.2 pgoyette-compat-20190118:1.2 pgoyette-compat-1226:1.2 pgoyette-compat-1126:1.2 pgoyette-compat-1020:1.2 pgoyette-compat-0930:1.2 pgoyette-compat-0906:1.2 netbsd-7-2-RELEASE:1.2 pgoyette-compat-0728:1.2 netbsd-8-0-RELEASE:1.2 phil-wifi:1.2.0.46 phil-wifi-base:1.2 pgoyette-compat-0625:1.2 netbsd-8-0-RC2:1.2 pgoyette-compat-0521:1.2 pgoyette-compat-0502:1.2 pgoyette-compat-0422:1.2 netbsd-8-0-RC1:1.2 pgoyette-compat-0415:1.2 pgoyette-compat-0407:1.2 pgoyette-compat-0330:1.2 pgoyette-compat-0322:1.2 pgoyette-compat-0315:1.2 netbsd-7-1-2-RELEASE:1.2 pgoyette-compat:1.2.0.44 pgoyette-compat-base:1.2 netbsd-7-1-1-RELEASE:1.2 matt-nb8-mediatek:1.2.0.42 matt-nb8-mediatek-base:1.2 perseant-stdc-iso10646:1.2.0.40 perseant-stdc-iso10646-base:1.2 netbsd-8:1.2.0.38 netbsd-8-base:1.2 prg-localcount2-base3:1.2 prg-localcount2-base2:1.2 prg-localcount2-base1:1.2 prg-localcount2:1.2.0.36 prg-localcount2-base:1.2 pgoyette-localcount-20170426:1.2 bouyer-socketcan-base1:1.2 pgoyette-localcount-20170320:1.2 netbsd-7-1:1.2.0.34 netbsd-7-1-RELEASE:1.2 netbsd-7-1-RC2:1.2 netbsd-7-nhusb-base-20170116:1.2 bouyer-socketcan:1.2.0.32 bouyer-socketcan-base:1.2 pgoyette-localcount-20170107:1.2 netbsd-7-1-RC1:1.2 pgoyette-localcount-20161104:1.2 netbsd-7-0-2-RELEASE:1.2 localcount-20160914:1.2 netbsd-7-nhusb:1.2.0.30 netbsd-7-nhusb-base:1.2 pgoyette-localcount-20160806:1.2 pgoyette-localcount-20160726:1.2 pgoyette-localcount:1.2.0.28 pgoyette-localcount-base:1.2 netbsd-7-0-1-RELEASE:1.2 netbsd-7-0:1.2.0.26 netbsd-7-0-RELEASE:1.2 netbsd-7-0-RC3:1.2 netbsd-7-0-RC2:1.2 netbsd-7-0-RC1:1.2 netbsd-6-0-6-RELEASE:1.2 netbsd-6-1-5-RELEASE:1.2 netbsd-7:1.2.0.24 netbsd-7-base:1.2 yamt-pagecache-base9:1.2 yamt-pagecache-tag8:1.2 netbsd-6-1-4-RELEASE:1.2 netbsd-6-0-5-RELEASE:1.2 tls-earlyentropy:1.2.0.22 tls-earlyentropy-base:1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2 riastradh-drm2-base3:1.2 netbsd-6-1-3-RELEASE:1.2 netbsd-6-0-4-RELEASE:1.2 netbsd-6-1-2-RELEASE:1.2 netbsd-6-0-3-RELEASE:1.2 netbsd-6-1-1-RELEASE:1.2 riastradh-drm2-base2:1.2 riastradh-drm2-base1:1.2 riastradh-drm2:1.2.0.16 riastradh-drm2-base:1.2 netbsd-6-1:1.2.0.20 netbsd-6-0-2-RELEASE:1.2 netbsd-6-1-RELEASE:1.2 netbsd-6-1-RC4:1.2 netbsd-6-1-RC3:1.2 agc-symver:1.2.0.18 agc-symver-base:1.2 netbsd-6-1-RC2:1.2 netbsd-6-1-RC1:1.2 yamt-pagecache-base8:1.2 netbsd-6-0-1-RELEASE:1.2 yamt-pagecache-base7:1.2 matt-nb6-plus-nbase:1.2 yamt-pagecache-base6:1.2 netbsd-6-0:1.2.0.14 netbsd-6-0-RELEASE:1.2 netbsd-6-0-RC2:1.2 tls-maxphys:1.2.0.12 tls-maxphys-base:1.2 matt-nb6-plus:1.2.0.10 matt-nb6-plus-base:1.2 netbsd-6-0-RC1:1.2 yamt-pagecache-base5:1.2 yamt-pagecache-base4:1.2 netbsd-6:1.2.0.8 netbsd-6-base:1.2 yamt-pagecache-base3:1.2 yamt-pagecache-base2:1.2 yamt-pagecache:1.2.0.6 yamt-pagecache-base:1.2 cherry-xenmp:1.2.0.4 cherry-xenmp-base:1.2 bouyer-quota2-nbase:1.2 bouyer-quota2:1.2.0.2 bouyer-quota2-base:1.2 matt-mips64-premerge-20101231:1.2; locks; strict; comment @// @; 1.2 date 2010.11.30.18.38.53; author joerg; state Exp; branches; next 1.1; 1.1 date 2010.07.28.13.51.38; author joerg; state Exp; branches; next ; desc @@ 1.2 log @Test alignment of constructor / destructor calls as well as the stack of new threads. Currently implement for i386 and AMD64. @ text @#include #ifdef CHECK_STACK_ALIGNMENT #include extern "C" int check_stack_alignment(void); #endif class Test { public: Test() { static const char msg[] = "constructor executed\n"; write(STDOUT_FILENO, msg, sizeof(msg) - 1); #ifdef CHECK_STACK_ALIGNMENT if (!check_stack_alignment()) { static const char msg2[] = "stack unaligned \n"; write(STDOUT_FILENO, msg2, sizeof(msg2) - 1); exit(1); } #endif } ~Test() { static const char msg[] = "destructor executed\n"; write(STDOUT_FILENO, msg, sizeof(msg) - 1); #ifdef CHECK_STACK_ALIGNMENT if (!check_stack_alignment()) { static const char msg2[] = "stack unaligned \n"; write(STDOUT_FILENO, msg2, sizeof(msg2) - 1); exit(1); } #endif } }; Test test; @ 1.1 log @Replace csu test case with a C++ based version. This makes the various assembler routines obsolete. Be more exhaustive by testing dynamically linked, statically linked and dynamically loaded. XXX currently hard-codes /usr/tests due to limitations of bsd.test.mk @ text @d3 6 d15 7 d27 7 @