-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAN-3.01
2173 lines (1464 loc) · 74.8 KB
/
AN-3.01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
***************** Important news ****************************
For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
***************** Please Test *********************************
NEW features of cdrtools-3.01:
This is the first localization step for cdrtools. All programs now (hopefully)
call gettext() for all strings that need localization.
- The next step will include dgettext() calls for the libraries.
- The following step will include the extracted strings
- The last step will include German translations and install support
for the resulting binary message object files.
----------> Please test and report compilation problems! <---------
***** NOTE: As mentioned since 2004, frontends to cdrtools should *****
***** call all programs from cdrtools in the "C" locale *****
***** by e.g. calling: LC_ALL=C cdrecord .... *****
***** unless these frontends support localized strings *****
***** used by the cdrtools with NLS support. *****
This version compiles on Win-DOS using the Microsoft compiler cl.exe but
warning: due to missing POSIX compliance with basic features (e.g. stat()
does not return inode numbers), there are many problems with the resulting
code and thus it is recommended to better use a POSIX layer on top of
WIN-DOS.
*** WARNING ***
*** Need new smake ***
*** Due to the fact that schily-2014-04-03 introduced to use new macro
*** expansions and a related bug fix in smake, you need a new smake
*** to compile this source. To ensure this, get a recent "schily"
*** tarball from http://sourceforge.net/projects/schilytools/files/
*** and call:
cd ./psmake
./MAKE-all
cd ..
psmake/smake
psmake/smake install
The new smake version mentioned above is smake-1.2.4.
Note that smake-1.2.5 exists and is preferrable.
Now you have a new smake that is able to compile this source.
Note that the major makefile restructuring introduced in
schily-2014-04-03 is now more than one month ago and thus seems
to work without problems.
WARNING: the new version of the isoinfo program makes use of the
*at() series of functions that have been introduced by Sun
in August 2001 and added to POSIX.1-2008. For older platforms,
libschily now includes emulations for these functions but
these emulations have not yet been tested thoroughly.
Please report problems!
All:
- The macros XARCH_GEN & XARCH_OPT are now in RULES/cc-sunpro*.rul
- The include file include/schily/ccomdefs.h now allows to disable
the printf() format checks for GCC with -DNO_PRINTFLIKE
This is needed in order to allow star to compile in the Solaris ON
consolidation as GCC id too dumb for the printf() extensions.
- All include files (even those created by autoconf) are now protected
against multiple inclusion.
- New autoconf test for pathconf() and fpathconf()
- New autoconf test for /dev/stdin, /dev/stdout, /dev/stderr,
/dev/fd/0, /dev/fd/1, /dev/fd2
- New autoconf tests for: qecvt() qfcvt() qgcvt()
_ldecvt() _ldfcvt() _ldgcvt() _ldecvt_r() _ldfcvt_r() _ldgcvt_r()
qeconvert() qfconvert() qgconvert()
needed for long double support.
- New autoconf test for _qecvt() _qfcvt() _qgcvt()
and _qecvt_r() _qfcvt_r() _qgcvt_r() on AIX
- All linker map files have been modified to allow platform
dependent #ifdef's
- include/schily/wchar.h now includes a workaround for platforms
that do not have wcwidth().
- Make NLS the default (i.e. gettext() is called in case that schily/nlsdefs.h
was included)
- include/schily/nlsdefs.h now includes macros _(s) and __(s) to support
gettext() and xgettext(1)
- The makefile system now by default disables smake Simple Suffix Rules
and the POSIX Suffix Rules in order to speed up inference rule search.
- A new rule RULES/profiled.lnk allows to call:
smake COPTX=-pg LDOPTX=-pg LINKMODE=profiled
to create binaries that use gprof.
- The Makefile System is now able to switch gmake-3.82 into a more POSIX
compliant mode to tell the shell to report problems back to gmake.
- New autoconf tests on whether printf supoorts %lld and %jd
- Fixed the vc9-setup files to make VC9 work.
- Newer Cygwin "tail" versions do no longer support UNIX syntax.
change tail +2 to tail -n +2 in RULES/cc-mcs.rul to allow to use
the Microsoft compiler again
- A new environment variable MKLINKS_COPY allows to tell all
MKLINKS scripts to generate file copies rather than symlinks.
Call:
MKLINKS_COPY=true
export MKLINKS_COPY
to enable this feature
- Run an additional test -h command in MKLINKS to verify whether mingw
supports symlinks
- MKLINKS now creates copies instead of symlinks when we use MSC
as MSC does not support to read symlink files
- Fixed a typo in include/schily/libport.h (group functions have been
defined to return struct passwd* instead of struct group*
- Fixed wrong bracketing for C++ in include/schily/stdlib.h
- Fixed wrong bracketing for C++ in include/schily/utypes.h
- Added a workaround for MSC to include/schily/utypes.h
MSC believes that a 32 bit int and a 32 bit long are incompatible
and cannot even be casted, so we need to make uint32_t a n unsigned long
- Let include/schily/archdefs.h define the standard processor #defines
when compiling with MSC.
- New include file include/schily/windows.h works around the oddities
from the MSC include file windows.h
- include/schily/stdio.h now defines popen()/pclose() to _popen()/_pclose()
if on WIN-DOS
- include/schily/limits.h now defines PIPE_BUF
- include/schily/utsname.h now defines struct utsname for our MSC uname()
emulation.
- The setup for the PATHs needed by Visual Studio 9 has been
corrected.
- autoconf has been modified to avoid optimizing away code that
is intended for testing. This help to work against a problem
with detecting mbrtowc() on MinGW
- autoconf now tests for mbtowc() and wctomb()
- RULES/i*86-mingw32_nt-gcc.rul now link against -lmingw32 instead
of -lmgw32.
- include/schily/stat.h now defines S_IREAD/S_IWRITE/S_IEXEC
These macros are available on typical UNIX systems but not
on Android. The definition comes from UNIX V7 and is not in
POSIX. Needed by SCCS and the Bourne Shell
- include/schily/wait.h now defines WIFCONTINUED() if needed
- include/schily/wchar.h now defines mbtowc() to mbrtowc() if
needed (e.g. on Android)
- include/schily/ccomdefs.h now correctly knows about the GCC
release that introduced __attribute__ (used).
- Android is not POSIX (by not defining various functions as functions
in libc as required by POSIX) because it tries to define many
functions that are part of the standard as inline macros in
include files only. This breaks autoconf, so we needed to rewrite
some tests (e.g for getpagesize, tcgetpgrp, tcsetpgrp)
- The Schily autoconf system has been enhanced to support cross
compilation. Schily autoconf is based on GNU autoconf and
GNU autoconf does not support cross compilation because it needs
to run scripts on the target system for some of the tests.
The "configure" script that is delivered with the Schily makefile
system runs 718 tests and 68 of them need to be run on the target
system.
The Schily autoconf system now supports a method to run these 68
tests natively on a target system. You either need a machine with
remote login features or you need an emulator with a method to
copy files into the emulated system and to run binaries on the
emulated system as e.g. the Android emulator.
We currently deliver three scripts for "remote" execution of
programs on the target system:
runrmt_ssh runs the commands remove via ssh
runrmt_rsh runs the commands remove via rsh
runrmt_android runs the commands remove via the debug bridge
If you need to remotely run programs on a system that is not
supported by one of there three scripts, you need to modify one
of them to match your needs.
To enable Cross Compilation use the following environment variables:
CONFIG_RMTCALL= Set up to point to a script that does
the remote execution, e.g.:
CONFIG_RMTCALL=`pwd`/conf/runrmt_ssh
CONFIG_RMTHOST= Set up to point to your remote host, e.g.:
CONFIG_RMTHOST=hostname
or
CONFIG_RMTHOST=user@hostname
use a dummy if you like to use something
like to the Android emulator.
CONFIG_RMTDEBUG= Set to something non-null in order to
let the remote execution script mark
remote commands. This will result in
configure messages like:
checking bits in minor device number... REMOTE 8
Note that smake includes automake features that automatically
retrieve system ID information. For this reason, you need to overwrite
related macros from the command line if you like to do a
cross compilation.
Related make macros:
K_ARCH= # (sun4v) Kernel ARCH filled from uname -m / arch -k
M_ARCH= # (sun4) Machine filled from arch
P_ARCH= # (sparc) CPU ARCH filled from uname -p / mach
OSNAME= # sunos, linux, ....
OSREL= # 5.11
OSVERSION= # snv_130
CCOM= # generic compiler name (e.g. "gcc")
CC_COM= # compiler to call (name + basic args)
ARCH= overwrites M_ARCH and P_ARCH
It is usually sufficient to set ARCH and OSNAME.
In order to use a cross compiler environment instead of a native compiler,
set the make macro CC_COM to something different than "cc".
If you are on Linux and like to compile for Android, do the following:
1) set up CC acording to the instructions from the cross compiler
tool chain
2) set environment variables CONFIG_RMTCALL / CONFIG_RMTHOST, e.g.:
setenv CONFIG_RMTCALL `pwd`/conf/runrmt_android
setenv CONFIG_RMTHOST NONE
3) call smake:
smake ARCH=armv5 OSNAME=linux CCOM=gcc "CC_COM=$CC"
- Several programs no longer test for HAVE_DEV_* but for HAVE__DEV_*
as we did switch from hand written tests for /dev/tty, /dev/null
and similar to AC_CHECK_FILES(/dev/tty /dev/null /dev/zero)
- The Makefile system now links dynamic libraries on Mac OS X against
libgcc_s.1 instead of libgcc.
- The file COPYING has been reworded to be more obvious with
explaining work limits.
- A workaround for a bug in llvm-gcc-4.2 has been introduced in
inc/avoffset.c. The llvm-gcc-4.2 bug caused an endless loop at an
unexpected place.
- New target "htmlxn" to only rebuild html versions of man pages
only in case there was a change
- The CSW packaging definitions in the schily makefilesystem was
enhanced to permit referencing files in the package definition directory
- include/schily/sigset.h added new macros: blocked_sigs(),
block_sigs()
- include/schily/fcntl.h now includes O_SEARCH for POSIX.1-2008 compliance.
- Schily autoconf now tests for the size of mode_t, uid_t, gid_t, pid_t,
dev_t, major_t, minor_t
- Schily autoconf now defines a promoted type for mode_t that can be
used together with varargs. This is needed as mode_t is smaller than
int on some systems.
- New autoconf tests for getdelim() and strncasecmp()
- Added a workaround for a auto-dependency creation bug in the HP-UX
c-compiler that resulted in wrong dependency files for all files
in libshcily/stdio/ and for these files prevented an automated
recompilation in case that an include file was changed.
- Added links for:
amd64-freebsd-cc.rul
amd64-freebsd-gcc.rul
amd64-openbsd-cc.rul
amd64-openbsd-gcc.rul
x86_64-darwin-cc.rul
x86_64-darwin-gcc.rul
x86_64-darwin-cc64.rul
x86_64-darwin-gcc64.rul
x86_64-darwin-cc32.rul
x86_64-darwin-gcc32.rul
- RULES/rules.loc now makes $(PTARGET) depend on $(ARCHDIR) to
support make -j 2
- New include files include/schily/inttypes.h and include/schily/stdint.h
- The script conf/makeinc is no longer confused by OpenBSD
that has man.7 and mandoc.7 and both match on man*
- conf/runrmt_android has been enhanced to better deal with the
"runrmt -r file-to-test" calling variant.
- configure now ignores a stramge directory that is created on Mac OS X
when compiling with cc -g and that is in conflict with other rules.
- Introduce a dependency for man page subdiretories to allow syncing
parallel make calls.
- Try to support Debian with FreeBSD kernel
- Better support for Win32 sockets when using cl.exe
- Avoid problems with the non-standard prototypes for link() unlink()
read() and write() from cl.exe
- Support for Pyro (a Syllable clone) was added.
Thanks to Flemming H. Sørensen
- Add support for semi-static (preconfigured) include files for Android:
include/schily/armv5tejl-linux-gcc/xconfig.h
- New include files include/schily/err_*.h are used to encapsulate
#error CPP statements that would otherwise always prevent compilation
with K&R compilers.
- The make program specific configuration files for the Schily Makefilesystem
RULES/mk-.id (for SunPro make), RULES/mk-smake.id RULES/mk-gmake.id
now include definitions for the macros:
SPACE A single space character (' ')
NUMBER_SIGN The ASCII number sing ('#')
Note that the POSIX standard otherwise requires the make program
to be unable to have the '#' appear in non-comment sections of
Makefiles.
- Try to work around an imprudent change in the file windef.h from
Cygwin-1.7.17 (Autumn 2012) related to the type BOOL that makes
windefs.h from the recent Cygwin no longer compatible to the
original file from Microsoft. The fix is in include/schily/windows.h
Thanks to Alain Hoang, Thomas Plank and others for reporting and
help with getting a fix for the problem named above
- The Schily makefilesystem now supports CC++_COM for all platforms to
allow to overwrite the low level command for the C++-compiler.
- include/schily/stat.h now contains macros to set the nanoseconds
in timestamps in a OS-independent way
- Fixed a typo in include/schily/stat.h related to nanosecond
handling for NetBSD and OpenBSD
- New autoconf tests for sys/capability.h and cap_*() functions
from Linux -lcap
WARNING: If you do not see this:
checking for cap_get_proc in -lcap... yes
checking for cap_get_proc... yes
checking for cap_set_proc... yes
checking for cap_set_flag... yes
checking for cap_clear_flag... yes
your Linux installation is insecure in case you ever use the
command "setcap" to set up file capabilities for executable commands.
Note that cdrtools (as any other command) need to be capabylity-aware
in order to avoid security leaks with enhanced privileges. In most
cases, privileges are only needed for a very limited set of operations.
If cdrtools (cdrecord, cdda2wav, readcd) are installed suid-root, the
functions to control privileges are in the basic set of supported
functions and thus there is no problem for any program to control it's
privileges - if they have been obtained via suid root, you are on a
secure system.
If you are however on an incomplete installation, that supports to
raise privileges via fcaps but that does not include developer support
for caps, the programs get the privileges without being able to know
about the additional privileges and thus keep them because they cannot
control them.
WARNING: If you are on a Linux system that includes support for
fcaps (this is seems to be true for all newer systems with
Linux >= 2.6.24) and there is no development support for capabilities
in the base system, you are on an inherently insecure system that allows
to compile and set up programs with enhanced privileges that cannot
control them.
In such a case, try to educate the security manager for the related
Linux distribution. Note that you may turn your private installation
into a secure installation by installing development support for libcap.
- The autofconf tests for broken Linux kernel headers now avoid to
warn for /usr/src/linux/include if this directory is missing.
- include/schily/priv.h now includes sys/capabilitiy.h if available.
- Due to an incorrect message from last release, here is corrected
information on when a Linux installation is potentially dangerous:
New autoconf tests for sys/capability.h and cap_*() functions
from Linux -lcap
WARNING: If you do not see this:
checking for sys/capability.h... yes
...
checking for cap_get_proc in -lcap... yes
checking for cap_get_proc... yes
checking for cap_set_proc... yes
checking for cap_set_flag... yes
checking for cap_clear_flag... yes
your Linux installation is insecure in case you ever use the
command "setcap" to set up file capabilities for executable commands.
Note that cdrtools (as any other command) need to be capabylity-aware
in order to avoid security leaks with enhanced privileges. In most
cases, privileges are only needed for a very limited set of operations.
If cdrtools (cdrecord, cdda2wav, readcd) are installed suid-root, the
functions to control privileges are in the basic set of supported
functions and thus there is no problem for any program to control it's
privileges - if they have been obtained via suid root, you are on a
secure system.
If you are however on an incomplete installation, that supports to
raise privileges via fcaps but that does not include developer support
for caps, the programs get the privileges without being able to know
about the additional privileges and thus keep them because they cannot
control them.
WARNING: If you are on a Linux system that includes support for
fcaps (this is seems to be true for all newer systems with
Linux >= 2.6.24) and there is no development support for capabilities
in the base system, you are on an inherently insecure system that allows
to compile and set up programs with enhanced privileges that cannot
control them.
In such a case, try to educate the security manager for the related
Linux distribution. Note that you may turn your private installation
into a secure installation by installing development support for libcap.
- WARNING: the include structure of include/schily/*.h and several sources
has been restructured to cause less warnings with older OS platforms.
If you see any new problem on your personal platform, please report.
- New includefiles:
schily/poll.h Support poll()
schily/stdarg.h An alias to schily/varargs.h (but using the std name)
schily/sunos4_proto.h Missing prototypes for SunOS-4.x to make gcc quiet
schily/timeb.h Needed for users of ftime()
- Many minor bug-fixes for the files include/schily/*.h
- include/schily/archconf.h now defines __SUNOS5 for easier coding
- include/schily/priv.h now defines platform-independent fine-grained privileges
- Updated README.compile:
Some typo patches from Jan Engelhardt <[email protected]>
Documented the "LINKMODE=" macro to explain how to create dynamically
linked bynaries.
- The SCCS keyword expansion for "Mocsw" has been limited to
prevent expansion of date '+%Y%m%d%H%M%S'
- Mocsw now sets link mode to -Bdirect for recent OpenCSW rules
- pkgdefs/OCSW/*/checkpkg_override modified to match current OpenCSW
rules.
- Make sure that all schily include files except the primary wrappers
include schily/*.h instead of including the system include files directly.
- Allow a "static" compilation (a compilation without using dynamic -I
Paths) on Linux x86 by adding static #includes for Linux x86 in:
include/schily//align.h
include/schily//archdefs.h
include/schily//avoffset.h
include/schily//xconfig.h
This is needed if you like to install the schily include files
to /usr/include/schily and allow users to "manually" compile
programs that use e.g libparanoia.
To allow this, the autoconf results need to be installed as:
<schily/i686-linux-gcc/*.h>
and
<schily/x86_64-linux-gcc/*.h>
- The Schily Makefilesystem no longer uses CC= for internal tasks.
People who now set $CC to a different value will fail in a similar
way as they would fail with other build systems.
- Added automatic support for ARMv5 and ARMv6. This makes compilation
on the RaspberryPI also possible with the non automake-aware gmake.
- Allow "static" compilation (a compilation that does not use the
dynamic defines from the Schily Makefilesystem) on Linux ARMv6 (which
is used by RaspberryPI).
- Allow a "static" compilation (a compilation without using dynamic -I
Paths) on Linux on ARMv5 and ARMv6 by adding static #includes for
Linux ARM in:
include/schily//align.h
include/schily//archdefs.h
include/schily//avoffset.h
include/schily//xconfig.h
This is needed if you like to install the schily include files
to /usr/include/schily and allow users to "manually" compile
programs that use e.g libparanoia.
To allow this, the autoconf results need to be installed as:
<schily/armv5l-linux-gcc/*.h>
and
<schily/armv6l-linux-gcc/*.h>
- Many sources have been modified to deal __CYGWIN32__ like __CYGWIN__
This is neded as newer Cygwin versions that run in 64 Bit mode
do no longer define __CYGWIN32__ but __CYGWIN__
- Added rules for non-automake enabled make programs (like gmake)
for: ppc64-linux-cc.rul and ppc64-linux-gcc.rul
- Added new OS version ID rules for various WIN-DOS versions:
os-interix-nt-6.0.id
os-interix-nt-6.1.id
os-cygwin_nt-6.2-wow64.id
os-cygwin_nt-6.2.id
os-cygwin_nt-6.3-wow64.id
os-cygwin_nt-6.3.id
- New autoconf test in whether struct timespec is defined.
- New autoconf tests for:
- NFSv4 ACL support
- issetugid()
- lpathconf()
- utimens()
- futimens()
- lutimens()
- The rules in the Schily Makefilesystem have been restructured in order
to allow to avoid problems on platforms like FreeBSD and Mac OS X:
FreeBSD and Mac OS X banned the not-free-enough (because GPLd)
software to /usr/local, forcing us to add -I/usr/local/include
and -L/usr/local/lib. Unfortunately, /usr/local/include frequently
carries a _very_ outdated and thus wrong copy of "cdda_paranoia.h"
which is more than 10 years old and definitely incompatible with
dynamic linking on Mac OS X. This defective copy was first in the
search path and prevented compilation.
We now have a new macro: DEFOSINCDIRS= that grants to add include
directories to the end of the search PATH to allow us to find the
correct "cdda_paranoia.h" first.
Please test and report in case of problems.
- gmake and SunPro make include COMPILE.c with wrong content in their
built-in rules. We now clear this macro in RULES/rules.top. It is
still possible to provide a modified version from command line
or from the environment.
- include/schily/stdio.h was reordered, as it prevented compilation
of the "bsh" on Linux. This was a problem recently introduced,
when we added #ifndef NO_SCHILY_STDIO_H
- Fixed autoconf typo HAVE_MKNODKAT -> HAVE_MKNODAT
- include/schily/intcvt.h is now self contained.
- include/schily/windows.h now includes the same type workaround
for MINGW32 as for the Microsoft C compiler, as there are the same
autoconf detection problems.
- Added missing include/schily/err_type.h
- New file include/schily/shedit.h
- New Schily Makefiles rules for armv7l-linux
- autoconf/xconfig.h.in now treats MinGW32 the same as when compiling
with cl.exe
- Define DEV_NULL in include/schily/mconfig.h to address the missing
/dev/null on DOS
- New autoconf tests for:
getc_unlocked getchar_unlocked putc_unlocked putchar_unlocked
flockfile funlockfile ftrylockfile
- Symlinks for
armv4tl-linux-cc.rul s390x-linux-cc.rul armv5tel-linux-cc.rul
new, to support non automake-aware make programs such as gmake.
- Do not define a gethostname() prototype in schily/hostname.h
for MinGW, as MinGW as a wrong prototype is in the non-standard
file winsock.h
- include/schily/stdio.h now implements code that partially unhides
the FILE * data structures from the 64 bit Solaris libc.
This allows to implement a getc_unlocked() macro even for 64 bit
Solaris as done by libc, so libschily is able to achieve similar
stdio I/O performance, which is needed to be able to implement
a printf() in libschily that is faster than printf() from libc.
- include/schily/varargs.h now includes a new type va_lists_t
that is a structure that covers va_list.
- include/schily/getargs.h now has comments for the arguments and
return code of the getargs() callback functions.
- The schily makefilesystem now includes a new symlink
ppc64le-linux-cc.rul for non automake-aware make implementations
such as gmake.
- New autoconf tests for strspn() strcspn() wcsspn() wcscspn()
- Typo fix in README.compile for the mail address.
Thanks to Dennis Clarke for the catch!
- Fixed the autoconf test for #pragma weak, so it will not
believe that "clang" supports #pragma weak in a compatible way.
This is needed in order to compile libmdigest/sha2.c using clang.
- New autoconf tests added for:
libexpat
libpcsclite / winscard.lib
libcrypto / libeay32.lib
libssl / ssleay32.lib
- New autoconf test for expat.h
- The makefile system added the INVERSE_SUBARCHDIR= to allow local
autoconfiguration for shared libraries.
- RULES/rules.top now also calls MKLINKS in the directory TEMPLATES
- New compiler configuration files:
RULES/cc-clang.rul
RULES/cc-clang32.rul
RULES/cc-clang64.rul
- The Mac OS X related rules now support a new macro:
LDFRAMEWORKS=
that allows to add Apple specific libraries.
- Added a new WIN32_LIBS= macro for Win-DOS specific libraries.
These libraries have to be specified in the portable -lfoo
format for "libfoo" and also work when compiling for MinGW32.
When cl.exe is used, -lfoo is converted to foo.lib.
- New configuration files:
RULES/i386-darwin-clang.rul
RULES/i386-darwin-clang32.rul
RULES/i386-darwin-clang64.rul
- New configuration files:
RULES/i386-freebsd-clang.rul
RULES/i586-linux-clang.rul
RULES/x86_64-linux-clang.rul
RULES/i86pc-sunos5-clang.rul
RULES/sun4-sunos5-clang.rul
Note that these files have not been tested yet.
- RULES/cc-sunpro.rul now also includes rules for
RULES/cc-sunpro32.rul and
RULES/cc-sunpro64.rul
- RULES/cc-gcc.rul now also includes rules for
RULES/cc-gcc32.rul and
RULES/cc-gcc64.rul
- RULES/cc-sunpro32.rul added for orthogonality
- RULES/cc-sunpro32.rul and
RULES/cc-sunpro64.rul are symlinks to RULES/cc-sunpro.rul
and RULES/cc-sunpro.rul uses a macro to include
cc-sunpro.rul
cc-sunpro32.rul
cc-sunpro64.rul
as needed
- RULES/i86pc-sunos5-cc.rul now also includes rules for
RULES/i86pc-sunos5-cc32.rul and
RULES/i86pc-sunos5-cc64.rul
- RULES/i86pc-sunos5-gcc.rul now also includes rules for
RULES/i86pc-sunos5-gcc32.rul and
RULES/i86pc-sunos5-gcc64.rul
- RULES/sun4-sunos5-cc.rul now also includes rules for
RULES/sun4-sunos5-cc32.rul and
RULES/sun4-sunos5-cc64.rul
- RULES/sun4-sunos5-gcc.rul now also includes rules for
RULES/sun4-sunos5-gcc32.rul and
RULES/sun4-sunos5-gcc64.rul
- RULES/i586-linux-suncc.rul now also includes rules for
RULES/i586-linux-suncc32.rul and
RULES/i586-linux-suncc64.rul
- RULES/9000-725-hp-ux-cc.rul now also includes rules for
RULES/9000-725-hp-ux-cc32.rul and
RULES/9000-725-hp-ux-cc64.rul
- RULES/i486-cygwin32_nt-cc.rul now also includes rules for
RULES/i486-cygwin32_nt-cc32.rul and
RULES/i486-cygwin32_nt-cc64.rul
- RULES/i486-cygwin32_nt-gcc.rul now also includes rules for
RULES/i486-cygwin32_nt-gcc32.rul and
RULES/i486-cygwin32_nt-gcc64.rul
- RULES/ip22-irix-cc.rul now also includes rules for
RULES/ip22-irix-cc64.rul
- RULES/ip22-irix-gcc.rul now also includes rules for
RULES/ip22-irix-gcc64.rul
- RULES/power-macintosh-darwin-cc.rul now also includes rules for
RULES/power-macintosh-darwin-cc32.rul and
RULES/power-macintosh-darwin-cc64.rul
- RULES/power-macintosh-darwin-gcc.rul now also includes rules for
RULES/power-macintosh-darwin-gcc32.rul and
RULES/power-macintosh-darwin-gcc64.rul
- conf/makeinc now knows that a compiler name may not follow
the "cc*" text rule. This helps to support "clang".
- conf/cc-config.sh has been enhanced to detect whether
"cc" or "gcc" are emulated via "clang".
- New files in TEMPLATES/ related to "clang"
- TEMPLATES/ now includes config files for gcc32 and gcc64
- TEMPLATES/ now includes config files for clang, clang32 and clang64
- Add comment to DEFAULTS_CSW/sparc-cc.defs
- config.guess now understands Mac OS X on 64 bit Intel
- Fixed a typo in autoconf/xconfig.h.in that caused the Win-DOS function
LoadLibrary() not to be recognised correctly.
- Added compile support for: amd64-freebsd-clang*.rul
- include/schily/unistd.h now extends some exceptions to work around
problems with the MS C-compiler to MinGW32.
- Various README's, scripts and man pages have been revised to replace
berlios.de by sourceforge.net
Note that some files have not yet been completely updated for that
change as there is no easy way to deal with a site like sourceforge
that does not support ftp:
./conf/src-get
./conf/setup.sh
Because we now assume that any UNIX distro includes a ftp(1) program,
but we cannot assume that there is wget.
- include/schily/dlfcn.h now includes a #define HAVE_LOADABLE_LIBS
in case we compile on a system that implements runtime loadable
libraries and that libschily implements an adoption for this
local method to the POSIX dlopen()/dlsym()/dlclose(). This is currently
true for Solaris (and similar) that implement dlopen()/dlsym()/dlclose()
natively and for HP-UX and Win-DOS.
- The makefile rules for installing man pages have been changed so that
OBJ/<archdir>/man/ is no longer a direct dependency of the man page.
This results in repeated "make install" calls not to reinstall
up-to-date man pages again.
- The makefile rules for installing localized scripts have been changed so
that OBJ/<archdir>/ is no longer a direct dependency of the man page.
This results in repeated "make install" calls not to reinstall
up-to-date scripts again.
- New autoconf test checks whether printf() supports %z
- Some documentation now mentions sourceforge instead of BerliOS
- README.compile now mentions how to use instrumented compilers with
the Schily Makefilesystem.
- Support for ARM-64 (aarch64) was added
- rules.dep (r-make.dep, r-smake.dep, r-gmake.dep) now create
$(ARCHDIR)/man together with $(ARCHDIR) to make sure this
directory exists before someone calls "*make install" as root.
- rules.dep (r-make.dep, r-smake.dep, r-gmake.dep) now make sure
that $(ARCHDIR)/Dnull will not be touched in case it already
exists. This prevents some unneeded file rebuilds if the make
program is changed between two builds.
Note that echo > $(ARCHDIR)/Dnull already enforces a shell (because
the command contains a ">") and the use of an if statement thus
does not cause extra costs.
- $(ARCHDIR)/Dnull no longer depends on $(ARCHDIR), this prevents
attempts to re-create $(ARCHDIR)/Dnull after an update in $(ARCHDIR)
- it is now ensured that $(SRCROOT)/incs/Dnull will not be touched
in case it already exists.
- TEMPLATES/MKLINKS now creates a dummy link to allow it to recognise
whether the links already exist.
- include/schily/sysexits.h adopts to the recent changes on Haiku that
prevent usual autoconf tests as #include <sysexits.h> works but symbols
are only defined with #define _BSD_SOURCE
- include/schily/wait.h now knows about the Haiku specific macro
WIFCORED() and #defines WCOREDUMP() to WIFCORED().
- Support for x86_64-haiku-cc.rul and x86_64-haiku-gcc.rul was added
to the makefile system.
- The file RULES/r-gmake.dep was modified to make sure that the
dependency files (*.d) depend on the include files as well.
Previous versions included xxx.d instead of $(ARCHDIR)/xxx.d
- Makefile system: two new targets have been added:
man creates localized versions of the man pages in the
OBJ directory
installman installs only the manual pages
- include/schily/signal.h now includes siginfo.h to make sure it
compiles even on very old Solaris versions where signal.h did not
yet include siginfo.h.
- include/schily/wait.h add a missing closing bracket for Haiku
- include/schily/wait.h added CLD_* macros and the enum idtype_t in case
they are missing. This allows to implement a waitid() emulation.
- include/schily/wait.h now includes schily/signal.h in case that
the local /usrinclude/sys/wait.h is non-POSIX and does not
define siginfo_t. This is e.g. the case on FreeBSD.
- The configure tests now includes a test that correctly identifies
Mac OS X as non-POSIX with respect to waitid(). This prevents
potential users ofwaitid() from the unusable implementation on
Mac OS X.
The rule for accepting an existing waitid() is the following:
- si.si_pid is set to be equal to the awaited pid
- si.si_code == CLD_EXITED for a chilt terminated by exit(2)
- si.si_status contains at least 16 bits from the exit(2)
code. This is still not POSIX but better than what we would
get from a historical wait*() call.
- The configure tests now check for the new FreeBSD wait6() and for
idtype_t.
- A new symlink for x86_64-cygwin32_nt-gcc.rul was added
- Added support for cygwin32_wow (not the already present cygwin32_wow64).
- The makefile system now allows to use:
COPTX=-DNO_PRAGMA_WEAK
to disable the use of #pragma weak. This may help to debug some
oddities of the GNU linker.
- The makefile system now includes a new test that needs constraints
that are not really supported by autoconf: it checks whether the
linker supports to link against external weak symbols in another
file. For this reason, a handcrafted conftest was written.
This (currently) should fail on Cygwin due to a Cygwin bug.
A platform that allows to link against weak symbols defines
HAVE_LINK_WEAK. This permits the system to automatically detect
usability once e.g. linking on Cygwin will be fixed.
Thanks to Thomas Plank for reporting the known #pragma weak problem
in a new source file (libschily/error.c). Note that error() is a
UNIX (UNOS) libc function that exists since 1980 but some libc
implementors do not follow the rule not to introduce incompatible
interfaces for existing names. So we need to find a workaround
on these platforms.
- autoconf now checks for the type rlim_t in sys/resource.h
- README.compile now includes an example on how to cross compile
on Linux for Android.
- include/schily/find.h modified to avoid a GCC warning from
using libfind in the Bourne Shell.
- include/schily/dlfcn.h modified to avoid a GCC warning from
the new builtin management code in the Bourne Shell.
- Support for Win-10 when compiling with no automake-aware
make implementations like "gmake" was added.
- include/schily/mconfig.h fixed a typo: "-DDBD_MALLOC"
- include/schily/resource.h better comment
- include/schily/stat.h fixed a typo S_ISCNT -> S_ISCTG and
S_IFCNT -> S_IFCTG
- include/schily/stat.h now includes #define lstat stat in case lstat()
does not exist on the current platform.