Applied. Thanks.
[ Charset ISO-8859-1 unsupported, converting... ]
> Bruce Momjian <[EMAIL PROTECTED]> writes:
>
> |> The Makefile.shlib changes will have to be discussed with other Linux
> |> developers so we are sure it will work on all platforms.
>
> The problem with the current settings is that the linker is called
> directly. This is wrong, it should always be called through the compiler
> driver (the only exception is `ld -r'). This will make sure that the
> necessary libraries like libgcc are linked in.
>
> But there is still a different problem with the setting of LDFLAGS_ODBC.
> The psqlodbc module defines the functions _init and _fini which are
> reserved for the shared library initialisation. These should be changed
> to constructor functions. Then LDFLAGS_ODBC can be changed to be just
> `-lm'. Btw, why does it use -Bsymbolic?
>
> Here is a patch to implement this:
>
> --- src/Makefile.shlib
> +++ src/Makefile.shlib 2000/07/05 16:51:27
> @@ -145,9 +145,9 @@
> ifeq ($(PORTNAME), linux)
> install-shlib-dep := install-shlib
> shlib :=
>lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> - LDFLAGS_SL := -Bdynamic -shared -soname $(shlib)
> - LDFLAGS_ODBC := -Bsymbolic -lc -lm
> - SHLIB_LINK += -lc
> + LD := $(CC)
> + LDFLAGS_SL := -shared -Wl,-soname,$(shlib)
> + LDFLAGS_ODBC := -lm
> CFLAGS += $(CFLAGS_SL)
> endif
>
> --- src/interfaces/odbc/psqlodbc.c
> +++ src/interfaces/odbc/psqlodbc.c 2000/07/06 10:01:04
> @@ -33,8 +33,6 @@
>
> GLOBAL_VALUES globals;
>
> -BOOL _init(void);
> -BOOL _fini(void);
> RETCODE SQL_API SQLDummyOrdinal(void);
>
> #ifdef WIN32
> @@ -96,6 +94,20 @@
> #ifndef FALSE
> #define FALSE (BOOL)0
> #endif
> +
> +#ifdef __GNUC__
> +
> +/* This function is called at library initialization time. */
> +
> +static BOOL
> +__attribute__((constructor))
> +init(void)
> +{
> + getGlobalDefaults(DBMS_NAME, ODBCINST_INI, FALSE);
> + return TRUE;
> +}
> +
> +#else
>
> /* These two functions do shared library initialziation on UNIX, well at least
> * on Linux. I don't know about other systems.
>
> Andreas.
>
> --
> Andreas Schwab "And now for something
> SuSE Labs completely different."
> [EMAIL PROTECTED]
> SuSE GmbH, Schanz?ckerstr. 10, D-90443 N?rnberg
>
--
Bruce Momjian | http://candle.pha.pa.us
[EMAIL PROTECTED] | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026